使hadoop拆分Lzo输入文件

使hadoop拆分Lzo输入文件,hadoop,lzo,Hadoop,Lzo,我正在使用hadoop lzo处理大型压缩数据上的MR。实际上,我的作业是由工具自动生成的,但这不是问题所在。我的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

我正在使用hadoop lzo处理大型压缩数据上的MR。实际上,我的作业是由工具自动生成的,但这不是问题所在。我的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文件只使用一个映射进行处理。所以我的问题是

通常hadoop会根据压缩编解码器使用输入格式?我的hadoop-lzo-0.4.3.jar在路径中,所以我真的不明白为什么它仍然使用默认的文本格式

有没有办法强迫hadoop使用LzoTextInputFormat?


感谢阅读。

另一个jar是否允许您指定输入格式?你怎么称呼它?不,我不能指定输出格式。但例如,对于Wordcount示例,lzo文件应该像流媒体一样进行拆分?我相信Wordcount示例默认使用
TextInputFormat
。如果您实现自己的工具,您可以设置输入格式。我知道,但问题是我使用lingual作为数据请求工具。因此,不可能为每个作业设置输入共振峰。我搜索了一个迫使hadoop使用LzoTextInputFormat的技巧,如果没有其他可用的格式,这不是问题。你有什么线索吗我不太在乎这些。。。很抱歉