MapReduceジョブを作成するには、古いorg.Apache.hadoop.mapred
パッケージまたは新しいorg.Apache.hadoop.mapreduce
マッパーとリデューサー、ジョブ用のパッケージ...最初のパッケージは非推奨としてマークされていましたが、その間に元に戻りました。古いmapredパッケージまたは新しいmapreduceパッケージを使用してジョブを作成する方が良いのか、なぜかと思います。それとも、古いマップされたパッケージでのみ利用可能なMultipleTextOutputFormatのようなものが必要かどうかに依存していますか?
機能面では、古い(o.a.h.mapred
)と新しい(o.a.h.mapreduce
)API。唯一の大きな違いは、古いAPIではレコードがマッパー/リデューサーにプッシュされることです。新しいAPIはプル/プッシュメカニズムの両方をサポートしています。プルメカニズムについての詳細情報 here を取得できます。
また、古いAPIは0.21以降 非推奨ではありません です。新しいAPIについての詳細情報 こちら をご覧ください。
いくつかのクラス(MultipleTextOutputFormatなど)は新しいAPIに移行されていません。これと上記の理由により、古いAPIを使用することをお勧めします(通常、翻訳は非常に簡単です)。
古いAPIと新しいAPIの両方が優れています。新しいAPIはよりクリーンです。可能な限り新しいAPIを使用し、新しいAPIにはない特定のクラス(MultipleTextOutputFormat
など)が必要な場合は古いAPIを使用してください
ただし、同じMapreduceジョブで古いAPIと新しいAPIを混在させないように注意してください。それは奇妙な問題につながります。