我正在尝试使用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目录的列表。
如果您能帮我找出我不能编译的原因,我将不胜感激
1条答案
按热度按时间bjp0bcyl1#
你的错误可能是
JAVA_HOME
环境变量设置不正确。为了解决这个问题,我使用这个答案来正确设置变量。
之后,错误就消失了。