サードパーティの jar を Hadoop ジョブに追加しようとしています。DistributedCache.addFileToClassPath
メソッドを使用して各jarを追加しています。mapred.job.classpath.files
がジョブ xml ファイルに適切に取り込まれていることがわかります。
-libjars も機能しません (ほとんどの場合、toolrunner を使用していないためです)
何か提案、何が間違っている可能性がありますか?
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>
期待どおりにからのファイルを使用します。