Hadoop“在写入TokenizerMapper时出现错误,权限被拒绝”

3

我正在使用Google开发者控制台来运行Hadoop示例"WordCount"。当我运行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 返回 java version "1.6.0_36" OpenJDK Runtime Environment (IcedTea6 1.13.8) (6b36-1.13.8-1~deb7u1) OpenJDK 64-Bit Server VM (build 23.25-b01, mixed mode)

我将javac文件和WordCount.java文件的权限设置为777,但什么都没有发生。

3个回答

2

这是一个糟糕的解决方法,我不建议这样做,但是我将/home/hadoop目录的权限更改为777,它可以工作。我无法找到TokenizedMapper在我的用户文件中的位置。虽然这是个糟糕的选择,但是我接受它以关闭这个问题。


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

0

如果编译时无法正常工作,您需要为您的Hadoop用户正确且安全地授予root权限,然后以root身份编译它。您可以通过编辑/etc/sudoers文件来完成此操作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接