2017-01-04 13 views
0

私はLZO圧縮ファイル/data/mydata.lzoを持っていますが、私は持っているいくつかのMapReduceコードを使ってこれを実行したいと思います。私が最初に以下のコマンドでhadoop-lzoパッケージを使用してインデックスファイルを作成します。これは、正常Hadoop lzoインデックス後の単一の分割

17/01/04 11:06:31 INFO mapreduce.Job: Running job: job_1472572940387_17794 
17/01/04 11:06:41 INFO mapreduce.Job: Job job_1472572940387_17794 running in uber mode : false 
17/01/04 11:06:41 INFO mapreduce.Job: map 0% reduce 0% 
17/01/04 11:06:52 INFO mapreduce.Job: map 86% reduce 0% 
17/01/04 11:06:54 INFO mapreduce.Job: map 100% reduce 0% 
17/01/04 11:06:54 INFO mapreduce.Job: Job job_1472572940387_17794 completed successfully 

を実行し、ファイル/data/mydata.lzo.indexを作成

>> hadoop jar hadoop-lzo-0.4.21.jar \ 
    com.hadoop.compression.lzo.DistributedLzoIndexer \ 
    /data/mydata.lzo 

。私は今、それが正しく実行されるが、FOREVER取り

hadoop jar myjar.jar -input /data/mydata.lzo 

いくつかの他のHadoopのJavaコードを介してこれを実行したいです。 (私はそれはそれの約25倍分割非LZOファイルの上に、この同じジョブを実行すると)私が間違って何をやっている

mapreduce.JobSubmitter: number of splits:1 

それは一度だけファイルを分割気づきましたか?

hadoop-lzoのドキュメントは少し欠けています。 「」というメッセージが表示されます。新しいファイルには、wordcountなどのジョブが実行されます。私は最初に/data/mydata.lzo.indexファイルを入力として使用するべきだと考えましたが、それを使用すると空の出力が得られます。ドキュメントには「」と表示されます.lzoファイルのインデックスを忘れると、ジョブは機能しますが、ファイル全体が1つの分割で処理されるため、効率が低下します。 "理由は問わずindexファイル。

インデックスファイルを渡す適切な方法は何ですか?

編集this issue on GitHubによれば、インデックスファイルは自動的に推測され、ファイルサイズに従って分割されます。なぜ私がなぜ1つの分割を得ているのかまだ分かりません。

+0

元のファイルのサイズは何ですか?そして圧縮後?あなたのファイルサイズが「分割サイズ」のプロパティよりも大きければ –

答えて

0

これを試してみてください。

hadoop jar myjar.jar -input /data/mydata.lzo -input /data/mydata.lzo.index 
関連する問題