我正在关注这个链接上找到的文档
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
我不确定错误背后的原因,或者我是否丢失了另一个密钥配置?
1条答案
按热度按时间kmynzznz1#
这在那个循环中没有意义。。。也不是先检查变量的存在
你需要设置
HADOOP_CLASSPATH="$JAVA_HOME/lib/tools.jar"
,正如文档中所说的那样。这个类只在jdk中可用但是,你可以直接跑
javac
命令来编译代码。不知道为什么医生让你叫那个班。如何编译hadoop程序
要创建jar:
要运行:
建议使用maven/gradle创建合适的jar文件,使用ide编写代码。
p、 在美国,没有多少人真的写简单的mapreduce