Hadoop "error while writing TokenizerMapper permission denied"

Hadoop "error while writing TokenizerMapper permission denied"

我正在使用 Google Developer Console 运行Ning 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

有一个箭头指向最后一行的 class。
echo $HADOOP_CLASSPATH returns /usr/lib/jvm/java-7-openjdk-amd64/lib/tools.jar
echo $HADOOP_HOME returns /home/hadoop/hadoop-install
echo $JAVA_HOME returns /usr/lib/jvm/java-7-openjdk-amd64/jre
javac -version returns javac 1.6.0_36
java -version returns 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 文件的权限更改为 777 和 WordCount.java 但没有任何反应。

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

对于通过创建不同的 hadoop 用户安装 hadoop 的用户,请确保您的 WordCount.java 文件也位于相同的 hadoop 安装目录中(在我的例子中为“/usr/local/hadoop/”) .否则 Hadoop 将无法获得访问该 java 文件的权限。

如果不能运行,请以 root 身份编译它,你必须正确安全地为你的 hadoop 用户提供 root 权限 您可以通过编辑 /etc/sudoers