3

私はjavaとhadoop1.0.1を使用していくつかのMRジョブを開発しました。ただし、EMRはHadoop0.20までしかサポートしていません。EMRでHadoop1.0.1ジョブを実行することは可能ですか、それともEMR hadoopバージョンに準拠するためにライブラリスタックをダウングレードする必要がありますか?

4

1 に答える 1

3

1.0.1固有のクラスを使用しているかどうかによって異なります。コアのMapperクラスとReducerクラス(新しいAPIタイプと古いAPIタイプの両方)は、0.20と1.0.1の間で変更されていません。

Hadoopの依存関係を0.20.2に変更して、MRジョブjarを再構築することができます-コンパイルエラーがない場合は、かなり近いです(0.20と1.0.1の間にいくつかのバグ修正があるかもしれませんが、私はあなたがそうするだろうと想像します大丈夫です)。

ジョブのコンパイルに失敗し、0.20で使用できない一部の入力/出力形式(一部のマルチ入力/出力など)に関連している場合は、Hadoopソースで1.0.1(または実際に)を確認できます。 Cloudera 0.20.2ソース)で、不足しているフォーマットを「バックポート」して、ジョブjarに追加できるかどうかを確認します。

コンパイルエラーを元の質問に再投稿して、潜在的な回避策についてコメントできるようにしてください。

于 2012-04-07T12:03:41.550 に答える