生ログを保存するファイル形式を選択しています。主な要件は、圧縮され、分割可能であることです。これまでのところ、ブロック圧縮された (コーデックに関係なく) SequenceFilesとHadoop-LZOが最も適しているようです。
Map-Reduce で処理する方が効率的で、全体的に扱いやすいのはどれですか?
生ログを保存するファイル形式を選択しています。主な要件は、圧縮され、分割可能であることです。これまでのところ、ブロック圧縮された (コーデックに関係なく) SequenceFilesとHadoop-LZOが最も適しているようです。
Map-Reduce で処理する方が効率的で、全体的に扱いやすいのはどれですか?
生ログの場合、圧縮と分割の両方をサポートする SequenceFileFormat などのコンテナー ファイル形式を使用することをお勧めします。この形式を使用してログを保存するには、キーとしてタイムスタンプを選択し、値としてログに記録された行を選択する必要があります。私たちのチームでは、SequenceFiles を広く使用しています。
分割可能な LZO の場合、ファイルを前処理してインデックスを生成する必要があります。インデックスがないと、MapReduce フレームワークはファイル全体を 1 つの分割 (1 つのマッパー) として処理し、処理が非効率になります。
「Hadoop The Definitive Guide」という本 (「圧縮」のセクションを読むことをお勧めします) には、使用する圧縮形式を推奨するセクションがあります。推奨事項によると、以下は最も効果的なものから最も効果的でないものまでの選択肢です。
SequenceFile、Avro、ORCFiles、LZO、LZ4、Snappy などの高速コンプレッサーを備えた Parquet ファイルなどのコンテナー ファイル形式
分割をサポートする圧縮形式: bzip2 または分割可能な LZO
ファイルをチャンクに分割し、圧縮形式を使用して各チャンクを個別に圧縮します