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

时间:2016-12-09 04:59:09

标签: java hadoop compiler-errors javac

我正在尝试使用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_HOME / lib目录并确认tools.jar文件在那里。

我的其他haddop功能似乎正常工作。我可以运行hadoop version并返回我的hadoop版本号。我可以运行hdfs dfs -ls并返回我的hdfs目录列表。

任何帮助,找出我无法编译的原因将非常感谢

1 个答案:

答案 0 :(得分:1)

您的错误可能是JAVA_HOME环境变量未正确设置。

要解决此问题,我使用this answer正确设置变量。

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

之后,错误消失了。