如何在MRS服务中编译和使用LZO压缩算法

举报
司靖 发表于 2020/06/17 16:52:59 2020/06/17
【摘要】 LZO是一种非常高效的压缩算法,相比其它Hadoop支持的压缩算法,它提供极高的解压缩速度,且解压缩速度不受压缩比影响,对压缩包制作索引以后支持文件分片操作,非常适合用于hadoop的分布式处理场景。但由于其开源License问题,MRS和开源Hadoop一样,并没有默认集成hadoop-lzo。下面,我给大家分享一下如何手动编译hadoop-lzo并配置到在Hive服务中。一. 环境准备准...

LZO是一种非常高效的压缩算法,相比其它Hadoop支持的压缩算法,它提供极高的解压缩速度,且解压缩速度不受压缩比影响,对压缩包制作索引以后支持文件分片操作,非常适合用于hadoop的分布式处理场景。但由于其开源License问题,MRS和开源Hadoop一样,并没有默认集成hadoop-lzo。下面,我给大家分享一下如何手动编译hadoop-lzo并配置到在Hive服务中。


一. 环境准备

准备一个绑定了EIP(弹性公网IP)的Euler操作系统的ECS,用于编译lzo、hadoop-lzo包。操作系统版本需要与你购买的MRS集群的ECS系统版本一致。

我在操作时直接使用了MRS集群的一个Master节点作为编译环境,如果你的MRS集群是生产环境,不建议这样操作。节点准备好以后,执行以下操作准备编译工具:

1.  安装gcc。用于编译lzo native library。(MRS节点已安装)

1
yum          install          gcc    

2. 下载maven,并解压到/opt目录下。用于编译hadoop-lzo。

下载地址:http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz

解压后指定JAVA_HOME路径,并将maven的bin目录添加到PATH环境变量。

1
2
export          JAVA_HOME=         /opt/client/JDK/jdk/    
export          PATH=         /opt/apache-maven-3         .6.1         /bin         :$PATH    


二. 安装lzo

  1. 下载lzo包 (例如下载2.10版本),并解压到/opt/lzo目录下

    下载地址: http://www.oberhumer.com/opensource/lzo/download/lzo-2.10.tar.gz

  2. 编译安装

1
2
.         /configure          --         enable         -shared --prefix          /usr/local/lzo-2         .10    

make && sudo make install

  1. 添加lzo环境变量

1
2
export          C_INCLUDE_PATH=         /usr/local/lzo-2         .10         /include    
export          LIBRARY_PATH=         /usr/local/lzo-2         .10         /lib    



三. 下载hadoop-lzo并编译

  1. 下载hadoop-lzo,并解压到/opt/lzo目录下

    下载地址:https://github.com/twitter/hadoop-lzo/tree/release-0.4.20


执行编译。这一步需要从公网下载依赖的jar包,根据网络情况,可能需要几分钟到几十分钟不等。建议给EIP分配一个较大的带宽以节省时间,华为云入网流量不收费。

1
mvn  clean package -Dmaven.javadoc.skip=         true    


编译后,得到hadoop-lzo-0.4.20.jar包,路径如下:/opt/lzo/hadoop-lzo/hadoop-lzo-release-0.4.20/target/hadoop-lzo-0.4.20.jar


四. 拷贝包到相应节点的客户端和服务端目录(以MRS 1.9.x版本为例)

1. Master节点客户端目录(如果是HA部署,两个Master节点都需要操作)

hadoop-lzo-0.4.20.jar包拷贝到HDFS客户端lib目录下

cd /opt/client/HDFS/hadoop/share/hadoop/common/lib
cp /opt/lzo/hadoop-lzo/hadoop-lzo-release-0.4.20/target/hadoop-lzo-0.4.20.jar  ./
chmod 777 hadoop-lzo-0.4.20.jar
chown omm:wheel hadoop-lzo-0.4.20.jar

2. Master节点HDFS/Hive服务端目录(如果是HA部署,两个Master节点都需要操作)

hadoop-lzo-0.4.20.jar包拷贝到HDFS服务端安装目录(注意用你自己的环境里的实际值替换下面那些“x”)

cd /opt/Bigdata/MRS_1.9.x/1_x_NameNode/install/hadoop/share/hadoop/common/lib/
cp /opt/lzo/hadoop-lzo/hadoop-lzo-release-0.4.20/target/hadoop-lzo-0.4.20.jar ./
chmod 777 hadoop-lzo-0.4.20.jar
chown omm:wheel hadoop-lzo-0.4.20.jar

hadoop-lzo-0.4.20.jar包拷贝到Hive服务端安装目录(依然注意路径里的那个“x”)

# 这个包给HiveServer/WebHCat等组件用
cd /opt/Bigdata/MRS_1.9.x/install/FusionInsight-Hive-2.3.3/hive/lib
cp /opt/lzo/hadoop-lzo/hadoop-lzo-release-0.4.20/target/hadoop-lzo-0.4.20.jar ./
chmod 777 hadoop-lzo-0.4.20.jar
chown omm:wheel hadoop-lzo-0.4.20.jar

# 这个包给hive的MR引擎用
cd /opt/Bigdata/MRS_1.9.x/install/FusionInsight-Hive-2.3.3/hive
mkdir auxlib
cp /opt/lzo/hadoop-lzo/hadoop-lzo-release-0.4.20/target/hadoop-lzo-0.4.20.jar auxlib
chmod -R 777 auxlib
chown -R omm:ficommon auxlib

# 这个包给Hive的Spark引擎用
hdfs dfs -put /opt/lzo/hadoop-lzo/hadoop-lzo-release-0.4.20/target/hadoop-lzo-0.4.20.jar hdfs://hacluster/user/hive/sparklib/jars/
chmod 666 hdfs://hacluster/user/hive/sparklib/jars/ hadoop-lzo-0.4.20.jar
chown omm:hive hdfs://hacluster/user/hive/sparklib/jars/ hadoop-lzo-0.4.20.jar


五. 修改服务参数

修改HDFS服务端参数,io.compression.codecs”值增加  “com.hadoop.compression.lzo.LzoCodec,com.hadoop.compression.lzo.LzopCodec”。注意不要覆盖原有的值

修改HDFS服务端参数,添加自定义参数“io.compression.codec.lzo.class”,值为“com.hadoop.compression.lzo.LzoCodec,com.hadoop.compression.lzo.LzopCodec

修改Hive服务端参数,添加自定义参数“io.compression.codecs”,值为“com.hadoop.compression.lzo.LzoCodec,com.hadoop.compression.lzo.LzopCodec

修改Hive服务端参数,hive.user.aux.jars.path”值增加“file:///opt/Bigdata/MRS_1.9.x/install/FusionInsight-Hive-2.3.3/hive/auxlib/”。注意这里的路径就是上面给MR引擎拷贝的包路径。

重启Hive和HDFS相关服务。注意选上“重新启动受影响的服务或实例”。


好了,到此HDFS和Hive的LZO配置完成。



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。