hadoop编译错误:无法找到或加载主类com.sun.tools.javac.main

gab6jxml  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(365)

我正在尝试使用hadoop mapreduce编译简单的wordcount.java程序,使用以下命令: hadoop com.sun.tools.javac.Main WordCount.java 但我一直得到这样的信息:
错误:无法找到或加载主类com.sun.tools.javac.main
我的出口产品如下:

export JAVA_HOME=/Library/Java/JavaVirtualMachine/jdk1.8.0_101.jdk/Contents/Home
export HADOOP_HOME=/usr/local/Cellar/hadoop/2.7.1
export HADOOP_PREFIX=$HADOOP_HOME/libexec
export HADOOP_MAPRED_HOME=$HADOOP_PREFIX
export HADOOP_COMMON_HOME=$HADOOP_PREFIX
export HADOOP_HDFS_HOME=$HADOOP_PREFIX
export YARN_HOME=$HADOOP_PREFIX
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_PREFIX
export HADOOP_CLASSPATH=$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

我已经检查了我的java\u home/lib目录,并确认tools.jar文件在那里。
我的其他haddop函数似乎工作正常。我能跑 hadoop version 它返回我的hadoop版本号。我能跑 hdfs dfs -ls 它返回hdfs目录的列表。
如果您能帮我找出我不能编译的原因,我将不胜感激

bjp0bcyl

bjp0bcyl1#

你的错误可能是 JAVA_HOME 环境变量设置不正确。
为了解决这个问题,我使用这个答案来正确设置变量。

Set HADOOP_CLASSPATH environment variable
export HADOOP_CLASSPATH=$JAVA_HOME/lib/tools.jar

之后,错误就消失了。

相关问题