2011-12-01 57 views
1

在許多開發人員工作站(即它們具有不同的本地配置)上建立的小型Hadoop集羣中,我有一個6的TaskTracker存在問題。每當接收到一個任務,該任務將立即失敗與ChildErrorHadoop任務:「execvp:權限被拒絕」

java.lang.Throwable: Child Error 
    at org.apache.hardoop.mapred.TaskRunner.run(TaskRunner.java:242) 
Caused by: java.io.IOException: Task process exit with nonzero status of 1. 
    at org.apache.hardoop.mapred.TaskRunner.run(TaskRunner.java:229) 

當我看stdoutstderr日誌任務,stdout日誌爲空,而stderr日誌只有:

execvp: Permission denied 

我的工作完成了,因爲tasktracker最終被列入黑名單並在運行任務時沒有問題的其他節點上運行。我無法從任何數量的作業中獲得在這個節點上運行的任何任務,所以這是一個普遍問題。

我有一個DataNode在這個節點上運行沒有問題。

我想可能有某種形式的Java問題在這兒,它有一個很難生成一個JVM或東西...

回答

0

不管它試圖execvp沒有在其上的可執行位設置。您可以使用命令行中的chmod來設置可執行位。

+0

你有什麼想法,什麼是試圖execvp?或者我可以在哪裏找到這些信息?這發生在Hadoop框架的內部,並不是我的工作直接做的事情。 –

0

我遇到了同樣的問題。

您可以嘗試更改jdk版本32位到64位或64位到32位。

3

我們有同樣的問題。我們通過將「執行」添加到下面的文件來修復它。

$JAVA_HOME/jre/bin/java 

因爲Hadoop的使用$ JAVA_HOME/JRE /斌/ java的產卵任務程序,而不是$ JAVA_HOME /斌/ java的。

如果您仍然有變化本次發行後的文件模式,建議你用遠程調試找到其產卵任務外殼CMD,看到debugging hadoop task