Hadoop任务:“execvp:权限被拒绝”

时间:2011-12-01 16:15:41

标签: hadoop exec

在许多开发人员工作站上设置的小型Hadoop集群(即,它们具有不同的本地配置),我有一个6的TaskTracker存在问题。每当收到任务时,该任务会立即失败并显示ChildError

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或其他东西......

3 个答案:

答案 0 :(得分:3)

我们有同样的问题。我们通过在下面的文件中添加'execute'来修复它。

$JAVA_HOME/jre/bin/java

因为hadoop使用$ JAVA_HOME / jre / bin / java来生成任务程序而不是$ JAVA_HOME / bin / java。

如果在更改文件模式后仍有此问题,建议您使用远程调试查找产生任务的shell cmd,请参阅debugging hadoop task

答案 1 :(得分:0)

无论尝试execvp是什么,都没有设置可执行位。您可以使用命令行中的chmod设置可执行位。

答案 2 :(得分:0)

我遇到了同样的问题。

您可以尝试将jbit版本32位更改为64位或64位更改为32位。