我创建了一个.java文件,可以在cloudera hadoop上运行。要编译它,
javac -classpath $HADOOP_COMMON_HOME/share/hadoop/mapreduce/hadoop-mapreduce-client- core-3.0.0-SNAPSHOT.jar -d multifetch_classes MultiFetch.java
错误:
MultiFetch.java:12: package org.apache.hadoop.conf does not exist
import org.apache.hadoop.conf.Configuration;
^
MultiFetch.java:13: package org.apache.hadoop.conf does not exist
import org.apache.hadoop.conf.Configured;
^
MultiFetch.java:14: package org.apache.hadoop.fs does not exist
import org.apache.hadoop.fs.Path;
^
MultiFetch.java:15: package org.apache.hadoop.io does not exist
import org.apache.hadoop.io.Text;
我选择了错误的jar来执行文件,或者我是否按照错误的程序编译java文件。请让一些纠正此错误。
答案 0 :(得分:1)
上述大多数错误都与无法找到Hadoop库来编译示例应用程序有关。
基于Java的Map / Reduce示例构建命令示例如下:
$javac \
-classpath ${HADOOP_HOME}/hadoop-${HADOOP_VERSION}-core.jar \
-d wordcount_classes \
WordCount.java
就我而言,jar文件是hadoop-0.20.203.1-SNAPSHOT-core.jar
。如果你看看你的命令,你会发现有些事情是不对的:
javac -classpath $HADOOP_COMMON_HOME/share/hadoop/mapreduce/hadoop-mapreduce-client- core-3.0.0-SNAPSHOT.jar -d multifetch_classes MultiFetch.java
您可以做的就是使用上面示例中给出的classpath
为您建立样本。