2011-12-01 177 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