编写TokenizerMapper权限时Hadoop"错误被拒绝"

时间:2015-10-27 01:08:15

标签: java hadoop google-cloud-platform

我正在使用Google Developer Console运行Hadoop示例" WordCount"。我运行Array ( [ 0] => Array ( [cat_id] => 1 [0] => 1 ) [1] => Array ( [cat_id] => 2 [0] => 2 ) [2] => Array ( [cat_id] => 4 [0] => 4 ) ) 时遇到的错误是:

hadoop com.sun.tools.javac.Main WordCount.java

有一个箭头指向最后一行的类 WordCount.java:26: error: error while writing TokenizerMapper: WordCount$TokenizerMapper.class (Permission denied) public static class TokenizerMapper 返回echo $HADOOP_CLASSPATH
/usr/lib/jvm/java-7-openjdk-amd64/lib/tools.jar返回echo $HADOOP_HOME
/home/hadoop/hadoop-install返回echo $JAVA_HOME
/usr/lib/jvm/java-7-openjdk-amd64/jre返回javac -version
javac 1.6.0_36返回java -version

我将javac文件的权限更改为777和WordCount.java但没有任何反应。

3 个答案:

答案 0 :(得分:2)

这是一个糟糕的工作,我不推荐它,但我将/ home / hadoop目录的权限更改为777并且它可以工作。我无法找到TokenizedMapper在我的用户文件中的位置。这是一个可怕的选择,但我接受它是为了结束这个问题

答案 1 :(得分:1)

对于那些通过创建不同的hadoop用户进行hadoop安装的用户,请确保您的WordCount.java文件也驻留在同一hadoop安装目录中(在我的情况下为“ / usr / local / hadoop /”)。否则,Hadoop将不会获得访问该Java文件的权限。

答案 2 :(得分:0)

如果无法正常运行,请以root身份编译,您必须为hadoop用户正确,安全地授予root特权 您可以通过编辑/ etc / sudoers

来实现