hadoop字数错误

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

我正在关注这个链接上找到的文档
https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapreducetutorial.html#usage
当我试图为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\u home和$hadoop\u类路径,还验证了我是否拥有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

我不确定错误背后的原因,或者我是否丢失了另一个密钥配置?
kmynzznz

kmynzznz1#

这在那个循环中没有意义。。。也不是先检查变量的存在

if [ "$HADOOP_CLASSPATH" ]; then
  export HADOOP_CLASSPATH="$JAVA_HOME/lib/tools.jar"
else

你需要设置 HADOOP_CLASSPATH="$JAVA_HOME/lib/tools.jar" ,正如文档中所说的那样。这个类只在jdk中可用
但是,你可以直接跑 javac 命令来编译代码。不知道为什么医生让你叫那个班。
如何编译hadoop程序

$ javac -classpath ${HADOOP_CLASSPATH} -d WordCount/ WordCount.java

要创建jar:

$ jar -cvf WordCount.jar -C WordCount/ .

要运行:

$ hadoop jar WordCount.jar WordCount input/ output

建议使用maven/gradle创建合适的jar文件,使用ide编写代码。
p、 在美国,没有多少人真的写简单的mapreduce

相关问题