Hadoop 1.0.0を使用するクラスターがあり、巨大なbz2ファイルを処理するMRジョブを実行したいと思います。バージョン0.21.0では、Bz2コーデックは入力ファイルの分割をサポートしていましたが、1.0.0ではこの機能を見つけることができませんでした。1.0.0でbz2入力を分割することに相当するものはありますか?または、このために0.21.0からのパッチを手動で適用する必要がありますか?
4 に答える
Hadoop の 1.x バージョンは、分割可能な圧縮コーデックをまだサポートしていません。Bzip2 はサポートしていますが、分割できません。これは、この問題によって異なり ます https://issues.apache.org/jira/browse/HADOOP-7823 現在、この機能は Hadoop 1.1.0 で表示されるようです。
これを回避する最も簡単な方法は、現在ベータ版の Cloudera パッケージ cdh4 を確認することです。これには、分割を行う最新の Bzip2 実装があります。
参照:
Hadoop 1.0.0 API:
http://hadoop.apache.org/common/docs/r1.0.0/api/org/apache/hadoop/io/compress/BZip2Codec.html
public class BZip2Codec
extends Object
implements CompressionCodec
Hadoop 0.23.1 (AFAIK は Hadoop 2.x になります) API:
http://hadoop.apache.org/common/docs/r0.23.1/api/org/apache/hadoop/io/compress/BZip2Codec.html
public class BZip2Codec
extends Object
implements SplittableCompressionCodec
BZip2 コーデック API は、ここにあります。
org.apache.hadoop.io.compress.BZip2Codec
入力分割に使用できます。