Hadoop支持Lzo压缩配置及案例
程序源代码
共 2085字,需浏览 5分钟
·
2020-09-02 14:48
点击上方蓝色字体,选择“设为星标”
hadoop支持Lzo压缩配置
1)hadoop本身并不支持lzo压缩,故需要使用twitter提供的hadoop-lzo开源组件。hadoop-lzo需依赖hadoop和lzo进行编译,编译步骤如下。
2)将编译好后的hadoop-lzo-0.4.20.jar 放入hadoop-2.7.2/share/hadoop/common/
[atguigu@hadoop102 common]$ pwd
/opt/module/hadoop-2.7.2/share/hadoop/common
[atguigu@hadoop102 common]$ ls
hadoop-lzo-0.4.20.jar
[atguigu@hadoop102 common]$ xsync hadoop-lzo-0.4.20.jar
4)core-site.xml增加配置支持LZO压缩
<configuration>
<property>
<name>io.compression.codecsname>
<value>
org.apache.hadoop.io.compress.GzipCodec,
org.apache.hadoop.io.compress.DefaultCodec,
org.apache.hadoop.io.compress.BZip2Codec,
org.apache.hadoop.io.compress.SnappyCodec,
com.hadoop.compression.lzo.LzoCodec,
com.hadoop.compression.lzo.LzopCodecvalue>
property>
<property>
<name>io.compression.codec.lzo.classname>
<value>com.hadoop.compression.lzo.LzoCodecvalue>
property>
configuration>
[atguigu@hadoop102 hadoop]$ xsync core-site.xml
[atguigu@hadoop102 hadoop-2.7.2]$ sbin/start-dfs.sh
[atguigu@hadoop103 hadoop-2.7.2]$ sbin/start-yarn.sh
7)创建lzo文件的索引,lzo压缩文件的可切片特性依赖于其索引,故我们需要手动为lzo压缩文件创建索引。若无索引,则lzo文件的切片只有一个。
hadoop jar /path/to/your/hadoop-lzo.jar big_file.lzo
1.创建word.txt文件,并写上几个单词上传到hdfs上
[atguigu@hadoop202 bin]$ vim word.txt
[atguigu@hadoop202 bin]$ hdfs dfs -put word.txt /input
2.运行wordcount案例
[atguigu@hadoop202 bin]$ hadoop jar /opt/module/hadoop-2.7.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount -D mapreduce.output.fileoutputformat.compress=true -D maputformat.compress.codec=com.hadoop.compression.lzo.LzopCodec /input /output
此时的lzo文件如果去执行mr任务时任然只会产生一个切片,lzo压缩文件的可切片特性依赖于其索引,故我们需要手动为lzo压缩文件创建索引。
[atguigu@hadoop202 bin]$ hadoop jar /opt/module/hadoop-2.7.2/share/hadoop/common/hadoop-lzo-0.4.20.jar com.hadoop.compression.lzo.DistributedLzoIndexer /output/part-r-00000.lzo
版权声明:
文章不错?点个【在看】吧! ?
评论