您现在的位置是:首页 > 文章详情

0003-如何在CDH中使用LZO压缩

日期:2018-11-14点击:651

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。

1.问题描述

CDH中默认不支持Lzo压缩编码,需要下载额外的Parcel包,才能让Hadoop相关组件如HDFS,Hive,Spark支持Lzo编码。

具体请参考:

https://www.cloudera.com/documentation/enterprise/latest/topics/cm_mc_gpl_extras.html

https://www.cloudera.com/documentation/enterprise/latest/topics/cm_ig_install_gpl_extras.html#xd_583c10bfdbd326ba-3ca24a24-13d80143249--7ec6

首先我在没做额外配置的情况下,生成Lzo文件并读取。我们在Hive中创建两张表,test_table和test_table2,test_table是文本文件的表,test_table2是Lzo压缩编码的表。如下:

通过beeline访问Hive并执行上面命令:

查询test_table中的数据:

将test_table中的数据插入到test_table2,并设置输出文件为lzo压缩:

在Hive中执行报错如下:

通过Yarn的8088可以发现是因为找不到Lzo压缩编码:

2.解决办法

通过Cloudera Manager的Parcel页面配置Lzo的Parcel包地址:

注意:如果集群无法访问公网,需要提前下载好Parcel包并发布到httpd

下载->分配->激活

配置HDFS的压缩编码加入Lzo:

保存更改,部署客户端配置,重启整个集群。

等待重启成功:

再次插入数据到test_table2,设置为Lzo编码格式:

插入成功:

2.1 Hive验证

首先确认test_table2中的文件为Lzo格式:

在Hive的beeline中进行测试:

Hive基于Lzo压缩文件运行正常。

2.2 Spark SQL验证

SparkSQL基于Lzo压缩文件运行正常。

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。

原文链接:https://yq.aliyun.com/articles/669872
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章