Hadoop API を使用してさまざまなリモート mapreduce ジョブを起動する jar があります (つまり、コマンドラインを使用してジョブを開始していません)。さまざまなジョブを実行するサービス jar は、maven の「jar-with-dependencies」で構築されています。
commons-codec 1.7 を使用するジョブを除いて、私のジョブはすべて正常に実行されます。
FATAL org.apache.hadoop.mapred.Child: 子の実行中にエラーが発生しました: java.lang.NoSuchMethodError: org.apache.commons.codec.binary.Base64.encodeAsString([B)Ljava/lang/String;
これは、jar に commons-codec 1.7 が含まれているのに対し、Hadoop インストールの lib には commons-codec 1.4 が含まれているためだと思います ...
Hadoop 1.0.3コアライブラリのcommons-codec 1.4ではなく、配布されたcommons-codec 1.7(これはジョブの依存関係として配布されていると思います)を使用するようにHadoopに指示する方法はありますか?
どうもありがとう!
注: Commons-codec-1.4.jar を Hadoop ライブラリ フォルダーから削除すると問題は解決しますが、あまり正気ではないようです。うまくいけば、より良い代替手段があります。