本文主要是介绍lzo压缩之配置文件与程序对应关系,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
lzo压缩之配置文件与程序对应关系
1.core-site.xml中的:
<property>
<name>io.compression.codecs</name>
<value>org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.DefaultCodec,com.hadoop.compression.lzo.LzoCodec,com.hadoop.compression.lzo.LzopCodec,org.apache.hadoop.io.compress.BZip2Codec</value>
</property>
<property>
<name>io.compression.codec.lzo.class</name>
<value>com.hadoop.compression.lzo.LzoCodec</value>
对应程序中的:
conf.set("io.compression.codecs",
"org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.DefaultCodec," +
"com.hadoop.compression.lzo.LzoCodec,com.hadoop.compression.lzo.LzopCodec," +
"org.apache.hadoop.io.compress.BZip2Codec");
conf.set("io.compression.codec.lzo.class", "om.hadoop.compression.lzo.LzoCodec");
2.mapred-site.xml中的:
<!--设置map输出 -->
<property>
<name>mapred.compress.map.output</name>
<value>true</value>
</property>
<property>
<name>mapred.map.output.compression.codec</name>
<value>com.hadoop.compression.lzo.LzopCodec</value>
</property>
对应程序中的:
//设置map输出
conf.setCompressMapOutput(true);
conf.setMapOutputCompressorClass(LzopCodec.class);//如果为LzoCodec则生成的文件的后缀名为.lzo_deflate
注:
如果一个作业的 Inputformat 是 TextInputFormat , 并且框架检测到输入文件的后缀是 .gz 和 .lzo ,就会使用对应的 CompressionCodec 自动解压缩这些文件。 但是需要注意,上述带后缀的压缩文件不会被切分,并且整个压缩文件会分给一个mapper来处理。
3.mapred-site.xml中的:
<!--设置reduce输出 -->
<property>
<name>mapred.output.compress</name>
<value>true</value>
</property>
<property>
<name>mapred.output.compression.codec</name>
<value>com.hadoop.compression.lzo.LzopCodec</value>
</property>
对应程序中的:
//设置reduce输出
conf.setBoolean("mapred.output.compress", true);
conf.setClass("mapred.output.compression.codec", LzopCodec.class, CompressionCodec.class);//LzopCodec(.lzo)
这篇关于lzo压缩之配置文件与程序对应关系的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!