Java Hadoop字数错误
我正在关注此链接中的文档 当我尝试编译WordCount.java并创建一个jar时,我得到以下错误Java Hadoop字数错误,java,hadoop,mapreduce,Java,Hadoop,Mapreduce,我正在关注此链接中的文档 当我尝试编译WordCount.java并创建一个jar时,我得到以下错误 bin/hadoop com.sun.tools.javac.Main WordCount.java Error: Could not find or load main class com.sun.tools.javac.Main 我已经在HADOOP-env.sh文件中验证了$JAVA_HOME和$HADOOP_类路径,还验证了我是否有jdk 以下是hadoop env.sh的内容 ex
bin/hadoop com.sun.tools.javac.Main WordCount.java
Error: Could not find or load main class com.sun.tools.javac.Main
我已经在HADOOP-env.sh文件中验证了$JAVA_HOME和$HADOOP_类路径,还验证了我是否有jdk
以下是hadoop env.sh的内容
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/"
.......
.........
for f in $HADOOP_HOME/contrib/capacity-scheduler/*.jar; do
if [ "$HADOOP_CLASSPATH" ]; then
export HADOOP_CLASSPATH="$JAVA_HOME/lib/tools.jar"
else
export HADOOP_CLASSPATH=$f
fi
我不确定错误背后的原因,或者我是否缺少另一个密钥配置?这在该循环中没有意义。。。也不是先检查变量的存在性
if [ "$HADOOP_CLASSPATH" ]; then
export HADOOP_CLASSPATH="$JAVA_HOME/lib/tools.jar"
else
您需要设置HADOOP\u CLASSPATH=“$JAVA\u HOME/lib/tools.jar”
,如文档所述,才能找到该类。而该类仅在JDK中可用
但是,您可以运行javac
命令来编译代码。我不知道为什么文档让你调用那个类
要创建jar,请执行以下操作:
$ jar -cvf WordCount.jar -C WordCount/ .
要运行:
$ hadoop jar WordCount.jar WordCount input/ output
建议请使用Maven/Gradle创建适当的JAR文件,并使用IDE编写代码
顺便说一句,实际上并没有多少人会写简单的MapReduce@shmosel我确实遇到过这个问题,但还是不走运error@cricket_007只是跟着文件走
$ hadoop jar WordCount.jar WordCount input/ output