0

いつ使うべきか、使わないべき FileOutputFormat.setCompressOutput(conf, true);か?

マッパー出力を圧縮すると聞きました。レデューサー側の出力を圧縮する可能性はありますか?

(私の仮定が間違っている場合は、マッパー出力とリデューサー出力を圧縮する方法を教えてください!)

4

1 に答える 1

4

レデューサー出力のmapred.output.compress圧縮は で、マッパー出力の圧縮はで制御できmapred.compress.map.outputます。これらの構成キーは、サイト全体の構成ファイル、ジョブのセットアップ、またはジョブの実行時に Hadoop に渡されるオプションとして (trueまたはに) 設定できます。false-D

通常、マップ出力を圧縮することをお勧めします。出力が最終結果ではない場合、たとえば、前のジョブの出力に対して別のジョブを実行している場合など、reduce 出力を圧縮します。

圧縮は I/O の量を大幅に減らすことができるため、多くの場合、(圧縮/圧縮解除のために余分な処理が必要ですが) ジョブをより速く終了させるのに役立ちます。

圧縮コーデックも選択できます。LZO を使用します。LZO は Hadoop には付属していませんが、次の場所にあります。

https://github.com/kevinweil/hadoop-lzo

LZO は、最小限の CPU オーバーヘッドでかなり適切に圧縮します。Bzip2 は非常によく圧縮されますが、オーバーヘッドが大きくなります。gzip は圧縮率が低く、オーバーヘッドが中程度です。(あくまで一般論です。) LZOが一番特性のバランスが取れていると思います。

于 2011-08-30T16:59:39.030 に答える