2012-03-28 26 views
1

我設置Hadoop,格式化HDFS,運行bin/start-all.sh,運行bin/stop-all.sh並沒有問題。Hadoop:任務跟蹤器不會啓動java.io.IOException

現在,每次運行bin/start-all.sh,任務跟蹤器都無法啓動,並在我的任務跟蹤器日誌中獲得以下條目。

2012-03-27 21:22:03,842 ERROR org.apache.hadoop.mapred.TaskTracker: Can not start task tracker because java.io.IOException: Call to localhost/127.0.0.1:9001 failed on local exception: java.io.IOException: Connection reset by peer 
    at org.apache.hadoop.ipc.Client.wrapException(Client.java:1065) 
    at org.apache.hadoop.ipc.Client.call(Client.java:1033) 
    at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:224) 
    at org.apache.hadoop.mapred.$Proxy5.getProtocolVersion(Unknown Source) 
    at org.apache.hadoop.ipc.RPC.getProxy(RPC.java:364) 
    at org.apache.hadoop.ipc.RPC.getProxy(RPC.java:347) 
    at org.apache.hadoop.ipc.RPC.getProxy(RPC.java:389) 
    at org.apache.hadoop.ipc.RPC.waitForProxy(RPC.java:319) 
    at org.apache.hadoop.ipc.RPC.waitForProxy(RPC.java:295) 
    at org.apache.hadoop.mapred.TaskTracker$3.run(TaskTracker.java:708) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at javax.security.auth.Subject.doAs(Subject.java:396) 
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1059) 
    at org.apache.hadoop.mapred.TaskTracker.initialize(TaskTracker.java:704) 
    at org.apache.hadoop.mapred.TaskTracker.(TaskTracker.java:1328) 
    at org.apache.hadoop.mapred.TaskTracker.main(TaskTracker.java:3430) 
Caused by: java.io.IOException: Connection reset by peer 
    at sun.nio.ch.FileDispatcher.read0(Native Method) 
    at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:21) 
    at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:202) 
    at sun.nio.ch.IOUtil.read(IOUtil.java:175) 
    at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:243) 
    at org.apache.hadoop.net.SocketInputStream$Reader.performIO(SocketInputStream.java:55) 
    at org.apache.hadoop.net.SocketIOWithTimeout.doIO(SocketIOWithTimeout.java:142) 
    at org.apache.hadoop.net.SocketInputStream.read(SocketInputStream.java:155) 
    at org.apache.hadoop.net.SocketInputStream.read(SocketInputStream.java:128) 
    at java.io.FilterInputStream.read(FilterInputStream.java:116) 
    at org.apache.hadoop.ipc.Client$Connection$PingInputStream.read(Client.java:343) 
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:218) 
    at java.io.BufferedInputStream.read(BufferedInputStream.java:237) 
    at java.io.DataInputStream.readInt(DataInputStream.java:370) 
    at org.apache.hadoop.ipc.Client$Connection.receiveResponse(Client.java:767) 
    at org.apache.hadoop.ipc.Client$Connection.run(Client.java:712) 

2012-03-27 21:22:03,843 INFO org.apache.hadoop.mapred.TaskTracker: SHUTDOWN_MSG: 

我在其他地方發現了一些引用,但一直無法找到解決方案。我必須承認,我是Hadoop的新手,並且不知道這個錯誤在說什麼。

任何想法或建議,我可以嘗試的東西將不勝感激。我希望我已經發布了足夠的信息,但不是太多。如果需要更多信息,請告訴我。

在此先感謝!

回答

1

你有沒有確認,作業調度器在端口9001上運行的本地機器:

  • 查找進程ID(PID)爲JobTracker的(jps -v or ps axww | grep JobTracker
  • netstat -atnp | grep ${pid}
  • 檢查作業跟蹤器記錄任何消息(ls -l /proc/${pid}/fd應列出JobTracker的所有打開文件,使日誌文件的位置更容易)
+0

我照你說的做了, e作業跟蹤器正在運行。但是,它似乎名稱節點沒有運行。名稱節點日誌包含以下條目: '2012-03-28 08:26:03,873 ERROR org.apache.hadoop.hdfs.server.namenode.NameNode:org.apache.hadoop.hdfs.server.common.InconsistentFSStateException :目錄/mnt/home/wenderni/hadoop-0.20.203.0/dfs/name處於不一致的狀態:存儲目錄不存在或不可訪問.' 這看起來像比我想像的更嚴重的問題。 – CatShoes 2012-03-28 12:30:53

+1

我從來沒有確切地找到問題所在,但我真的搞砸了。無論如何,我使用的是Alpha版本,所以我更新到最新版本並重新配置了所有內容。請說我現在沒有問題。感謝您的幫助,您的回答幫助我瞭解如何有效使用Hadoop日誌。 – CatShoes 2012-03-31 01:31:51

相關問題