2

Hadoop のリリースと新しい API について非常に混乱しています。私は Hadoop 0.20.203 に関するプロジェクトを持っていましたが、それをアップグレードする時が来たと思います。0.23 または 2.0.2 の YARN を含むバージョンを使用したいと考えています。Hadoop サイトによると 2.0.2 は 0.23 に似ていますが、より優れているため、バージョン 2.0.2 をインポートしました。新しい API は、org.apache.hadoop.mapred ではなく org.apache.hadoop.mapreduce にあるはずであり、0.20 バージョンからこのパッケージを既に持っていたので、何も変更する必要はありませんでした。Job クラスにはすべてのコンストラクターが非推奨になっていますが、このクラスをどのように使用すればよいですか? また、プロジェクトを実行すると、mapred パッケージに言及する多くの非推奨警告が表示されます。

出力に非推奨のものを含めるように質問を編集しました

13/02/12 00:52:57 WARN conf.Configuration: mapred.jar is deprecated. Instead, use mapreduce.job.jar
13/02/12 00:52:57 WARN conf.Configuration: mapred.cache.files is deprecated. Instead,   use mapreduce.job.cache.files
13/02/12 00:52:57 WARN conf.Configuration: mapred.reduce.tasks is deprecated. Instead, use mapreduce.job.reduces
13/02/12 00:52:57 WARN conf.Configuration: mapred.output.value.class is deprecated. Instead, use mapreduce.job.output.value.class
13/02/12 00:52:57 WARN conf.Configuration: mapred.mapoutput.value.class is deprecated. Instead, use mapreduce.map.output.value.class
13/02/12 00:52:57 WARN conf.Configuration: mapreduce.map.class is deprecated. Instead, use mapreduce.job.map.class
13/02/12 00:52:57 WARN conf.Configuration: mapred.job.name is deprecated. Instead, use mapreduce.job.name
13/02/12 00:52:57 WARN conf.Configuration: mapreduce.reduce.class is deprecated. Instead, use mapreduce.job.reduce.class
13/02/12 00:52:57 WARN conf.Configuration: mapred.input.dir is deprecated. Instead, use mapreduce.input.fileinputformat.inputdir
13/02/12 00:52:57 WARN conf.Configuration: mapred.output.dir is deprecated. Instead, use mapreduce.output.fileoutputformat.outputdir
13/02/12 00:52:57 WARN conf.Configuration: mapred.max.split.size is deprecated. Instead, use mapreduce.input.fileinputformat.split.maxsize
13/02/12 00:52:57 WARN conf.Configuration: mapred.map.tasks is deprecated. Instead, use mapreduce.job.maps
13/02/12 00:52:57 WARN conf.Configuration: mapred.cache.files.timestamps is deprecated. Instead, use mapreduce.job.cache.files.timestamps
13/02/12 00:52:57 WARN conf.Configuration: mapred.output.key.class is deprecated. Instead, use mapreduce.job.output.key.class
13/02/12 00:52:57 WARN conf.Configuration: mapred.mapoutput.key.class is deprecated. Instead, use mapreduce.map.output.key.class
13/02/12 00:52:57 WARN conf.Configuration: mapred.working.dir is deprecated. Instead, use mapreduce.job.working.dir
4

1 に答える 1

0

20.2xx/1.x と 0.21/0.22/0.23/2.x の間で、mapreduce フレームワークに関して 2 つの大きな変更が行われました。

  • サーバー側の構成プロパティとクライアント側の構成プロパティをより適切に反映するために、いくつかの構成名が変更されました。
    • クライアント側の構成: 古い名前は非推奨であるため、これらの警告が表示されます。
    • 2.0.2 とおっしゃっていましたが、新しいフレームワーク YARN を使用していると思います。この場合、古いサーバー側の構成はどれも有効になりません。
  • mapreduce API には、古い API (org.apache.hadoop.mapred) と新しい API (org.apache.hadoop.mapreduce) の 2 種類があります。少し長い歴史がありますが、現在の状態 (および将来) では、古い API と新しい API の両方がサポートされています。
    • 古い API は依然として安定しており、すべてのバージョンでバイナリ互換の方法でサポートされています。
    • 新しい API には、バージョン間の互換性の問題があります (1.x -> 2.x)。

Hadoop 2 の API 互換性について詳しくは、http: //hortonworks.com/blog/running-existing-applications-on-hadoop-2-yarn/をご覧ください。

于 2013-10-24T17:02:57.803 に答える