gpt4 book ai didi

java - Hadoop WordCount 错误

转载 作者:可可西里 更新时间:2023-11-01 15:09:39 25 4
gpt4 key购买 nike

我正在关注此链接中的文档

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_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",如文档所述,以便找到该类。并且该类仅在 JDK 中可用

但是,您可以只运行javac 命令来编译代码。不知道为什么文档让你调用那个类。

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 编写代码。

附言没有多少人真正编写纯 MapReduce

关于java - Hadoop WordCount 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48759502/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com