下面是我的系统配置: windows8.1、vmware v12、2个centOS VM。我已经在我的VM上安装了hadoop,一个作为主服务器,另一个作为slave1。服务在两个节点上正确地启动和运行。
我想编译我的第一个mapreduce程序,wordcount教程:我试图使用以下方法编译:
[hadoop@master ~]$ javac -classpath $HADOOP_HOME/share/common/hadoop-common-2.6.3.jar:$HADOOP-HOME/share/hadoop/mapreduce/hadoop-mapreduce-client-core-2.6.3.jar:$HADOOP_HOME/share/common/lib/common-cli-1.2.jar -d /home/hadoop *.java但我得到的答案是:
WordCount.java:4: error: package org.apache.hadoop.conf does not exist
import org.apache.hadoop.conf.Configuration;
^
WordCount.java:5: error: package org.apache.hadoop.fs does not exist
import org.apache.hadoop.fs.Path;
^
WordCount.java:6: error: package org.apache.hadoop.io does not exist
import org.apache.hadoop.io.IntWritable;
^
WordCount.java:7: error: package org.apache.hadoop.io does not exist
import org.apache.hadoop.io.Text;
^
WordCount.java:8: error: package org.apache.hadoop.mapreduce does not exist
(.
.
.) ^
symbol: class Path
location: class WordCount
WordCount.java:58: error: cannot find symbol
FileOutputFormat.setOutputPath(job, new Path(args[1]));
^
symbol: variable FileOutputFormat
location: class WordCount
40 errors我在谷歌上搜索,每个人都说这是$CLASSPATH的功劳。
这是我的/etc/bashrc文件:
export JAVA_HOME=/opt/jdk
export JRE_HOME=/opt/jdk/jre
export PATH=$PATH:/opt/jdk/bin:/opt/jdk/jre/bin
export HADOOP_CLASSPATH=$JAVA_HOME/lib/tools.jar
export HADOOP_HOME=/opt/hadoop/
export CLASSPATH=$CLASSPATH:$HADOOP_HOME/share/common/hadoop-common-2.6.3.jar:$HADOOP-HOME/share/hadoop/mapreduce/hadoop-mapreduce-client-core-2.6.3.jar:$HADOOP_HOME/share/common/lib/common-cli-1.2.jar知道我为什么会犯这个错误吗?我看没问题..。:(
发布于 2016-01-24 12:47:28
根据文档,您可以执行以下操作(在我的系统和工作上进行测试)
export HADOOP_CLASSPATH=${JAVA_HOME}/lib/tools.jar$HADOOP_HOME/bin/hadoop com.sun.tools.javac.Main WordCount.java并最终创建jarjar cf wc.jar WordCount*.classhttps://stackoverflow.com/questions/34975788
复制相似问题