0

大規模な圧縮データで MR を処理するために hadoop-lzo を使用しています。実際、私のジョブはツールによって自動的に生成されますが、それは問題ではありません。私の lzo 圧縮はすべてのノードで動作し (DistributedLzoIndexer を試しました)、次のコマンド ラインを使用して、分割された lzo ファイルでストリーミングを使用することもできます。

hadoop  jar /path/to/jar/hadoop-streaming-1.2.0.1.3.0.0-107.jar \
-input /path/to/testfile.lzo -output wc_test 
-inputformat com.hadoop.mapred.DeprecatedLzoTextInputFormat \
-mapper 'cat' -reducer 'wc -l'

11個のマップを作成し(私のファイルサイズによると)、通常どおり処理します。しかし、他の jar ファイルを試してみると、lzo ファイルは 1 つのマップのみを使用して処理されます。だから私の質問は

通常、hadoop は圧縮コーデックに従って入力形式を使用しますか? 私の hadoop-lzo-0.4.3.jar はパスにあるので、なぜそれがまだデフォルトのテキスト形式を使用しているのか本当にわかりません。

Hadoop に LzoTextInputFormat の使用を強制する方法はありますか?

読んでくれてありがとう。

4

0 に答える 0