CDH5 配置LZO

30 篇文章 1 订阅
14 篇文章 1 订阅

本文通过实例讲述在CDH5下面配置LZO压缩的过程,

1 下载parcel(选择合适的版本),下载地址: http://archive-primary.cloudera.com/gplextras/parcels/latest/ ;下载.parcel文件及manifest.json文件,下载完成后在manifest.json中找到对应的hash值并写到.parcel.sha文件

[root@cent-1 lzo]# ls
HADOOP_LZO-0.4.15-1.gplextras.p0.123-el6.parcel  HADOOP_LZO-0.4.15-1.gplextras.p0.123-el6.parcel.sha  manifest.json

2 将上述下载及生成的parcel及parcel.sha文件复制到/opt/cloudera/parcel-repo下面

[root@cent-1 parcel-repo]# pwd
/opt/cloudera/parcel-repo
[root@cent-1 parcel-repo]# ls
CDH-5.6.0-1.cdh5.6.0.p0.45-el6.parcel  CDH-5.6.0-1.cdh5.6.0.p0.45-el6.parcel.sha  HADOOP_LZO-0.4.15-1.gplextras.p0.123-el6.parcel  HADOOP_LZO-0.4.15-1.gplextras.p0.123-el6.parcel.sha

3 打开CDH Manager,从主机->parcel下面找到HADOOP_LZO,并分配激活

这里写图片描述
这里写图片描述
这里写图片描述

4 修改hdfs配置,将io.compression.codecs追加属性com.hadoop.compression.lzo.LzopCodec

这里写图片描述

5 修改yarn配置(如果没有yarn先安装下yarn),将mapreduce.application.classpath的属性值修改为:
HADOOPMAPREDHOME/, HADOOP_MAPRED_HOME/lib/,$MR2_CLASSPATH,/opt/cloudera/parcels/HADOOP_LZO/lib/hadoop/lib/,将mapreduce.admin.user.env的属性值修改为:
LD_LIBRARY_PATH= HADOOPCOMMONHOME/lib/native: JAVA_LIBRARY_PATH:/opt/cloudera/parcels/HADOOP_LZO/lib/hadoop/lib/native

这里写图片描述
这里写图片描述

6 进入hive CLI,创建LZO压缩格式表

hive>  create external table lzo(id int,name string)
    >  row format delimited fields terminated by ','
    >  STORED AS INPUTFORMAT 'com.hadoop.mapred.DeprecatedLzoTextInputFormat'
    >  OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
    >  location '/user/hive';
OK
Time taken: 0.867 seconds

7 创建测试文件,并使用lzop命令压缩,然后上传到hdfs上

[root@cent-1 ~]# cat lzo.txt
1, AAA
2, BBB
3, CCC
4, DDD
5, EEE
[root@cent-1 ~]# lzop lzo.txt
[root@cent-1 ~]# ls
lzo.txt  lzo.txt.lzo
[root@cent-1 ~]# cat lzo.txt.lzoLZO

  0     @▒▒Xs
             lzo.txtD▒▒##v▒▒1, AAA
2, BBB
3, CCC
4, DDD
5, EEE
[hdfs@cent-1 ~]$ hadoop fs -copyFromLocal lzo.txt.lzo /user/hive/
[hdfs@cent-1 ~]$ hadoop fs -ls /user/hive
Found 2 items
-rw-r--r--   3 hdfs hive         96 2017-01-09 11:32 /user/hive/lzo.txt.lzo
drwxrwxrwt   - hive hive          0 2017-01-03 11:20 /user/hive/warehouse

8 从hive CLI中查询表

hive> select * from lzo;
OK
1        AAA
2        BBB
3        CCC
4        DDD
5        EEE

9 注:如果是需要在session中通过insert向hive LZO表插入数据,需要在insert之前添加以下两条设置命令

SET hive.exec.compress.output=true;
SET mapred.output.compression.codec=com.hadoop.compression.lzo.LzopCodec;
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据源的港湾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值