2

Hadoop ジョブで圧縮ツールとして使用する lzo コーデックをセットアップしています。lzo には、分割可能なファイルを作成するという望ましい機能があることを知っています。しかし、lzo に分割可能なファイルを自動的に作成させる方法が見つかりませんでした。私がこれまでに読んだブログはすべて、ジョブの外部でインデクサーを使用し、出力された lzo ファイルを mapreduce ジョブへの入力として供給することについて言及しています。

ベンチマーク コードを変更したくない Hadoop ベンチマークをいくつか使用しています。Hadoop で lzo 圧縮を使用して、ベンチマークへの影響を確認します。マップ出力を圧縮するためのコーデックとして lzo を使用することを計画していますが、出力が分割可能でない場合、次のフェーズではノード内の圧縮された出力全体を機能させる必要があります。

出力ファイルを分割可能にするように lzo に指示する Hadoop 構成オプションはありますか?

4

2 に答える 2

3

BZIP2 は Hadoop で分割可能です。非常に優れた圧縮率を提供しますが、圧縮は CPU を大量に消費するため、CPU 時間とパフォーマンスから最適な結果が得られません。

LZO は Hadoop で分割可能です - hadoop-lzo を利用すると、分割可能な圧縮された LZO ファイルがあります。並列処理できるようにするには、外部の .lzo.index ファイルが必要です。ライブラリは、これらのインデックスをローカルまたは分散方式で生成するすべての手段を提供します。

LZ4 は Hadoop で分割可能です - hadoop-4mc を利用すると、分割可能な圧縮 4mc ファイルが得られます。外部インデックスは必要ありません。提供されているコマンド ライン ツールまたは Java/C コードを使用して、hadoop の内部/外部でアーカイブを生成できます。4mc は、あらゆるレベルの速度/圧縮比で Hadoop LZ4 を利用できるようにします: 500 MB/秒の圧縮速度に達する高速モードから、GZIP とほぼ同等の圧縮比を高める高/ウルトラ モードまで。

ZSTD はさらに優れた圧縮であり、hadoop-4mc でもサポートされています。

于 2016-09-16T07:16:38.860 に答える