Hadoop WordCount 错误
Hadoop WordCount error
我正在关注在此 link
中找到的文档
当我尝试为 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_CLASSPATH 并且还验证了我是否有 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_CLASSPATH="$JAVA_HOME/lib/tools.jar"
,如文档所述,才能找到 class。而且 class 仅在 JDK
中可用
但是,您可以只使用 运行 javac
命令来编译代码。不确定为什么文档让您调用它 class。
How to compile a Hadoop program
$ javac -classpath ${HADOOP_CLASSPATH} -d WordCount/ WordCount.java
To create jar:
$ jar -cvf WordCount.jar -C WordCount/ .
To run:
$ hadoop jar WordCount.jar WordCount input/ output
建议请使用Maven/Gradle创建正确的JAR文件,并使用IDE编写代码。
P.S。没有多少人真正编写纯 MapReduce
我正在关注在此 link
中找到的文档当我尝试为 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_CLASSPATH 并且还验证了我是否有 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_CLASSPATH="$JAVA_HOME/lib/tools.jar"
,如文档所述,才能找到 class。而且 class 仅在 JDK
但是,您可以只使用 运行 javac
命令来编译代码。不确定为什么文档让您调用它 class。
How to compile a Hadoop program
$ javac -classpath ${HADOOP_CLASSPATH} -d WordCount/ WordCount.java
To create jar:
$ jar -cvf WordCount.jar -C WordCount/ .
To run:
$ hadoop jar WordCount.jar WordCount input/ output
建议请使用Maven/Gradle创建正确的JAR文件,并使用IDE编写代码。
P.S。没有多少人真正编写纯 MapReduce