我正在使用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在路径中,所以我真的不明白为什么它仍然使用默认的textformat。
有没有办法强制hadoop使用LzoTextInputFormat?
感谢阅读。