我正在使用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但没有任何反应。
答案 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
来实现