2013-02-19 9 views
7

こんにちは、私はHadoopが新しくFileSystemです。私はJobConfConfigurationを使って、WordCountの2つの異なる例を見ました。それらの違いは何ですか?JobConf v/s Hadoop 1.0.4のコンフィグレーション

JobConfは古いパッケージorg.apache.hadoop.mapred(0.20.xでは非推奨)の一部ですが、構成は新しいパッケージorg.apache.hadoop.mapreduceの一部です。しかし、v1.0.4では非推奨になりました。

現在、私たちはマップ還元ジョブをjavaで実行する方法と、org.apache.hadoop.mapreduceパッケージでクラスを使用する(拡張する)方法と、org.apache.hadoop.mapredパッケージにクラスを実装する方法があります。

私が知りたい:

  1. mapredmapreduceパッケージ構造とその理由mapredは非推奨されませんとの違いは何ですか?

  2. v1.0.4を使用する方が良い理由は何ですか?その理由は何ですか? JobConfまたはConfiguration

  3. どちらがv1.0.4に適していますか? mapredまたはmapreduce

+0

可能な複製[マップされたマップまたはmapreduceパッケージを使用してHadoopジョブを作成する方がよいでしょうか?](http://stackoverflow.com/questions/7598422/is-it-better-to-use-the- mapred-or-the-mapreduce-package-to-create-a-hadoop-job) –

+0

私はその答えを読んだ。そのアプローチはv0.20とv0.21/22です。しかしここで私はv1.0.4について尋ねています。それに接続しないでください。完全に理解する前に決断を下さないでください。 –

+0

1.0は、0.20と0.22の間のバージョン以外は何もありません。それを磨かれた20.xバージョンと見なしてください。新しい質問を追加する前に既存の回答を検索する必要があります。バージョン番号の調査はもちろんのことです。 –

答えて

6

あなたはthe releases pageで見れば、あなたは1.0.4はここに、いくつかのコンテキストを与えるために0.20.20x

周りの何かに対応on the mailing listを議論されたものであることがわかります。

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で今、あなたのアプリケーションを起動していることが好ましい方法は、今だからあなたがmapredmapreduceを使用してはならない場合

だから、一番下の行は、ですが、あなたが持っている場合は、はまだ古いmapredを使用することができますレガシーアプリケーション。あなたを意味するConfigurationを使用する必要があります。 mapredmapreduceの違いについては

、それ以上の抽出物で説明したように、主にContextオブジェクトの導入から来ているが、他の変更や古いmapredでは利用できません新しいクラスの束があります。