0

サードパーティの jar を Hadoop ジョブに追加しようとしています。DistributedCache.addFileToClassPathメソッドを使用して各jarを追加しています。mapred.job.classpath.filesがジョブ xml ファイルに適切に取り込まれていることがわかります。

-libjars も機能しません (ほとんどの場合、toolrunner を使用していないためです)

何か提案、何が間違っている可能性がありますか?

4

1 に答える 1

0

HADOOP_CLASSPATH に Jar を追加します。

    vi $HADOOP_HOME/etc/hadoop/hadoop-env.sh

最後の行を追加

export HADOOP_CLASSPATH=/root/hadoop/extrajars/java-json.jar:$HADOOP_CLASSPATH

「/root/hadoop/extrajars/java-json.jar」は Linux ボックス自体のパスであり、HDFS のパスではありません

Hadoop を再起動します

指示

hadoop classpath

クラスパスにjarを表示する必要があります

通常どおり MR ジョブを実行します

hadoop jar <MR-program jar> <MR Program class> <input dir> <output dir>

期待どおりにからのファイルを使用します。

于 2015-08-18T13:06:07.407 に答える