2017-01-04 12 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 

. 이제 다른 Hadoop Java 코드를 통해 이것을 실행하고 싶습니다.

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

올바르게 실행되지만 FOREVER는 걸립니다. 내가 한 번만 파일을 분할주의 (I 비 LZO을 통해이 같은 작업을 실행할 때 그것을 분할 파일에 대한 25 배) 내가 잘못하고있는 중이 야 무엇

mapreduce.JobSubmitter: number of splits:1 

?

hadoop-lzo 설명서가 약간 부족합니다. ""이제 새 파일에 대해 wordcount와 같은 작업을 실행하십시오. " 처음에는 /data/mydata.lzo.index 파일을 필자의 입력으로 사용해야한다고 생각했지만 사용하면 빈 출력이 표시됩니다. 또한 문서에 ".lzo 파일의 색인을 만드는 것을 잊어 버리면 작업이 작동하지만 하나의 분할로 전체 파일을 처리하므로 효율성이 떨어집니다." "이유가 무엇이든 볼 수 없으므로 index 파일

인덱스 파일을 전달하는 적절한 방법은 무엇입니까?

편집 : this issue on GitHub에 따르면 색인 파일은 자동으로 유추되며 파일 크기에 따라 분할됩니다. 아직도 내가 왜 하나의 분할을 얻고 있는지 확실하지 않다.

+0

원본 파일의 크기가 무엇인가? 그리고 압축 후에? 파일 크기가 "최소 분할 크기"속성보다 크면 좋겠습니다. –

답변

0

이 시도 :

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