首页 > 解决方案 > 合并 HDFS 中小于 128MB 的压缩 lzo 文件

问题描述

我正在尝试将 Kb 大小的小 hdfs 文件合并为 128MB 大小的文件。所有这些 kb 大小的文件都是 lzo 压缩的 谁能帮忙解决这个问题?这是我到目前为止所尝试的。

hadoop jar
   /opt/cloudera/parcels/CDH/jars/hadoop-streaming-2.6.0-cdh5.15.1.jar
   -Dmapred.reduce.tasks=10 -Dmapred.reduce.output.compression.codec=lzo  -Dmapred.output.compress=true mapred.output.compression.type=lzo -input "/user/input"
   -output "/user/input_tmp"
   -mapper cat -reducer cat

这里的问题是我的输出是未压缩的部分文件,但我希望它是压缩的 .lzo 文件,如 part-r-00001.lzo ...

标签: javaapache-sparkhadoop

解决方案


请参阅此处的示例https://archive.cloudera.com/cdh5/cdh/5/hadoop/hadoop-mapreduce-client/hadoop-mapreduce-client-core/HadoopStreaming.html

-D 和属性名称之间需要空格。你也可以使用

-D mapred.output.compression.codec=com.hadoop.compression.lzo.LzopCodec反而

-Dmapred.reduce.output.compression.codec=lzo

还要检查您的 xsite.xmls,如 core-site 和 mapred-site.xmls 是否与 LZO 正确配置


推荐阅读