找不到或加载主类com.sun.tools.javac.main hadoop mapreduce

mbyulnm0  于 2021-05-30  发布在  Hadoop
关注(0)|答案(3)|浏览(528)

我正在努力学习mapreduce,但是我现在有点迷路了。
http://hadoop.apache.org/docs/r2.6.0/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapreducetutorial.html#usage
尤其是这套说明:

Compile WordCount.java and create a jar:

$ bin/hadoop com.sun.tools.javac.Main WordCount.java

当我输入时 hadoop 在我的终端中,我可以看到“帮助”,它提供了参数,所以我相信我已经安装了hadoop。
键入命令时:
编译wordcount.java并创建一个jar: hadoop com.sun.tools.javac.Main WordCount.java 我得到一个错误: Error: Could not find or load main class com.sun.tools.javac.Main 我知道我已经在我的电脑上安装了java,因为我以前用它来创建其他程序。
此命令输出:

$ /usr/libexec/java_home
/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home

也许我缺少一套java工具?不确定

0x6upsns

0x6upsns1#

我也犯了同样的错误。
我通过添加hadoop\u classpath环境参数解决了这个问题:

export HADOOP_CLASSPATH=/usr/lib/jvm/java-7-openjdk-amd64/lib/tools.jar

请确保已安装openjdk7。我使用的是ubuntu 14.04:

sudo apt-get install openjdk-7-jdk
m1m5dgzv

m1m5dgzv2#

这个 bin/hadoop com.sun.tools.javac.Main WordCount.java 最终以 java com.sun.tools.javac.Main WordCount.java .
如果classpath/javahome是正确的,那么尝试键入 java ... 你自己,查一下名字 com.sun.tools... 使用tab键。也许这个名字不合适(鸡蛋。您使用的是来自oracle而不是sun的java)
另一个建议是修改 $HADOOP_HOME/etc/hadoop/hadoop-env.sh . 添加 tools.jar 进入 HADOOP_CLASSPATH .

jexiocij

jexiocij3#

您不能安装jdk。检查java文件夹中的/lib/tools.jar。
如果没有,sudo apt get install default jdk,错误消失。

相关问题