7

こんにちは、Hadoop は初めてで、FileSystem です。JobConfと を使用したWordCount の 2 つの異なる例を見ましたConfiguration。それらの違いは何ですか。

JobConf古いパッケージorg.apache.hadoop.mapred(0.20.x で非推奨)の一部であったことを調べましたが、構成は新しいパッケージの一部ですorg.apache.hadoop.mapreduce。しかし、現在 v1.0.4 では非推奨ではありません。

現在、Java で map reduce ジョブを実行する方法は 2 つあります。1 つはパッケージで (拡張) クラスを使用する方法で、もう 1 つはorg.apache.hadoop.mapreduceパッケージでクラスを実装する方法org.apache.hadoop.mapredです。

私は知りたいです:

  1. mapredmapreduceパッケージ構造の違いは何mapredですか? 非推奨ではないのはなぜですか?

  2. v1.0.4 で使用するのに適したアプローチとその理由は? JobConfまたはConfiguration

  3. v1.0.4 ではどちらが優れていますか? mapredまたはmapreduce

4

1 に答える 1

6

リリース ページを見ると、1.0.4 が 0.20.20x 付近に相当することがわかります。

状況を説明するために、メーリング リストで議論されていた内容を以下に示します。

The "old" MapReduce API in org.apache.hadoop.mapred was deprecated in the 0.20 
release series when the "new" (Context Objects) MapReduce API was added in
org.apache.hadoop.mapreduce. Unfortunately, the new API was not complete in 0.20
and most users stayed with the old API. This has led to the confusing situation 
where the old API is generally recommended, even though it is deprecated.

ご覧のとおり、主にレトロ互換性の問題です。

つまり、アプリケーションを 1.0.4 で開始する場合は、1.0.4 を使用する必要がありますが、現在はそれが推奨される方法であるため使用mapreduceしないでください。ただし、レガシー アプリケーションがある場合は、古いものを引き続き使用できます。これは、 を使用する必要があることを意味しますmapredmapredConfiguration

mapredとの違いmapreduceについては、上記の抜粋で説明したように、主にContextオブジェクトの導入によるものですが、古い では利用できない他の変更や新しいクラスが多数ありますmapred

于 2013-02-19T20:01:07.670 に答える