1

Cloudera Hadoop で実行する .java ファイルを作成しました。それをコンパイルするには、

   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 ファイルをコンパイルするために間違った手順に従っているのでしょうか。このエラーを修正してください。

4

1 に答える 1

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、上記のサンプルを使用するだけでサンプルを作成できることです。

于 2012-05-11T02:04:46.900 に答える