2013-04-13 43 views
0

我一直在我的雙節點羣集設置上運行一次Hadoop作業(字數統計)幾次,直到現在它一直工作正常。我不斷收到這19%的攤位減少過程一個RuntimeException:Hadoop錯誤失速作業減少過程

2013-04-13 18:45:22,191 INFO org.apache.hadoop.mapred.Task: Task:attempt_201304131843_0001_m_000000_0 is done. And is in the process of commiting 
    2013-04-13 18:45:22,299 INFO org.apache.hadoop.mapred.Task: Task 'attempt_201304131843_0001_m_000000_0' done. 
    2013-04-13 18:45:22,318 INFO org.apache.hadoop.mapred.TaskLogsTruncater: Initializing logs' truncater with mapRetainSize=-1 and reduceRetainSize=-1 
    2013-04-13 18:45:23,181 WARN org.apache.hadoop.mapred.Child: Error running child 
    java.lang.RuntimeException: Error while running command to get file permissions : org.apache.hadoop.util.Shell$ExitCodeException: 
    at org.apache.hadoop.util.Shell.runCommand(Shell.java:255) 
at org.apache.hadoop.util.Shell.run(Shell.java:182) 
at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:375) 
at org.apache.hadoop.util.Shell.execCommand(Shell.java:461) 
at org.apache.hadoop.util.Shell.execCommand(Shell.java:444) 
at org.apache.hadoop.fs.FileUtil.execCommand(FileUtil.java:710) 
at org.apache.hadoop.fs.RawLocalFileSystem$RawLocalFileStatus.loadPermissionInfo(RawLocalFileSystem.java:443) 
at org.apache.hadoop.fs.RawLocalFileSystem$RawLocalFileStatus.getOwner(RawLocalFileSystem.java:426) 
at org.apache.hadoop.mapred.TaskLog.obtainLogDirOwner(TaskLog.java:267) 
at org.apache.hadoop.mapred.TaskLogsTruncater.truncateLogs(TaskLogsTruncater.java:124) 
at org.apache.hadoop.mapred.Child$4.run(Child.java:260) 
at java.security.AccessController.doPrivileged(Native Method) 
at javax.security.auth.Subject.doAs(Subject.java:415) 
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1149) 
at org.apache.hadoop.mapred.Child.main(Child.java:249) 

    at org.apache.hadoop.fs.RawLocalFileSystem$RawLocalFileStatus.loadPermissionInfo(RawLocalFileSystem.java:468) 
at org.apache.hadoop.fs.RawLocalFileSystem$RawLocalFileStatus.getOwner(RawLocalFileSystem.java:426) 
at org.apache.hadoop.mapred.TaskLog.obtainLogDirOwner(TaskLog.java:267) 
at org.apache.hadoop.mapred.TaskLogsTruncater.truncateLogs(TaskLogsTruncater.java:124) 
at org.apache.hadoop.mapred.Child$4.run(Child.java:260) 
at java.security.AccessController.doPrivileged(Native Method) 
at javax.security.auth.Subject.doAs(Subject.java:415) 
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1149) 
at org.apache.hadoop.mapred.Child.main(Child.java:249) 

有沒有人的什麼可能導致任何想法?

編輯:自己解決。 如果有其他人遇到同樣的問題,這是由主節點上的etc/hosts文件引起的。我沒有輸入從節點的主機名和地址。 這是我的主機文件是如何在主節點上的結構:

127.0.0.1 MyUbuntuServer 
    192.xxx.x.xx2 master 
    192.xxx.x.xx3 MySecondUbuntuServer 
    192.xxx.x.xx3 slave 
+0

嗨,請發表您的答案作爲答案,而不是編輯問題。是的,可以對自己的問題發佈答案。 –

+0

我也遭受這個問題。不過,我的/ etc/hosts可以。因此,我不認爲這是解決你的問題。 – avner

+0

與上面相同的問題。我的/ etc/hosts是可以的。 @avner你解決了你的問題還是嘗試增加堆大小? – burgersmoke

回答

0

一個類似的問題說明如下: http://comments.gmane.org/gmane.comp.apache.mahout.user/8898

的信息有可能與Hadoop的其他版本。它說:

了java.lang.RuntimeException:錯誤在運行命令 獲取文件權限:產生java.io.IOException:不能運行程序 「/斌/ LS」:錯誤= 12,沒有足夠的空間

他們是通過mapred.child.java.opts * -Xmx1200M

參見更改堆大小的解決方案:https://groups.google.com/a/cloudera.org/forum/?fromgroups=#!topic/cdh-user/BHGYJDNKMGE

HTH, Avner