千家信息网

cdh编译安装支持各种压缩格式

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,在安装CDH版本的hadoop的时候, 我们下载下来的CDH的hadoop安装包中, 并没有native包,不支持各个任务阶段的压缩功能,但在生产任务中是必须要支持压缩功能的,所以要对CDH进行编译以
千家信息网最后更新 2025年12月02日cdh编译安装支持各种压缩格式

在安装CDH版本的hadoop的时候, 我们下载下来的CDH的hadoop安装包中, 并没有native包,不支持各个任务阶段的压缩功能,但在生产任务中是必须要支持压缩功能的,所以要对CDH进行编译以支持压缩功能;


本次编译使用的各软件版本:

cdh:hadoop-2.6.0-cdh6.7.0-src.tar.gzjdk:1.7(经多位同学踩坑,不要使用1.8版本的)maven:apache-maven-3.3.9-bin.tar.gz protobuf:protobuf-2.5.0.tar.gz系统:Centos 7.5cdh官方下载地址:http://archive.cloudera.com/cdh6/cdh/5

依赖的软件百度网盘地址

repo.tar.gz链接:https://pan.baidu.com/s/1wGCgV_3R3VUm2ka_aVA8GQ提取码:lrej
Hadoop Hadoop-2.6.0-cdh6.7.0-src.tar.gz链接:https://pan.baidu.com/s/1uRMGIhLSL9QHT-Ee4F16jw提取码:jb1d
jdk jdk-7u80-linux-x64.tar.gz链接:https://pan.baidu.com/s/1xSCQ8rjABVI-zDFQS5nCPA提取码:lfze
maven apache-maven-3.3.9-bin.tar.gz链接:https://pan.baidu.com/s/1ddkdkLW7r7ahFZmgACGkVw提取码:fdfz
protobuf protobuf-2.5.0.tar.gz链接:https://pan.baidu.com/s/1RSNZGd_ThwknMB3vDkEfhQ提取码:hvc2


首先安装各种依赖:

yum install -y svn ncurses-develyum install -y gcc gcc-c++ make cmakeyum install -y openssl openssl-devel svn ncurses-devel zlib-devel libtoolyum install -y snappy snappy-devel bzip2 bzip2-devel lzo lzo-devel lzop autoconf automake cmake

配置jdk的环境变量:

[root@hadoop004 soft]# cat /etc/profile.d/java.sh export JAVA_HOME=/usr/java/jdkexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport PATH=$JAVA_HOME/bin:$PATH[root@hadoop004 soft]# java -versionjava version "1.7.0_79"Java(TM) SE Runtime Environment (build 1.7.0_79-b15)Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

配置maven的环境变量:

#配置环境变量[root@hadoop004 soft]# cat /etc/profile.d/maven.sh MAVEN_HOME=/usr/local/mavenexport PATH=$MAVEN_HOME/bin:$PATH[root@hadoop004 local]# mvn --versionApache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)Maven home: /usr/local/mavenJava version: 1.7.0_79, vendor: Oracle CorporationJava home: /usr/java/jdk1.7.0_79/jreDefault locale: en_US, platform encoding: UTF-8OS name: "linux", version: "3.10.0-862.3.2.el7.x86_64", arch: "amd64", family: "unix"#配置mvn的本地存放地址/usr/local/maven/repo将上面下载repo.tar.gz解压后的内容放在此本地仓库目录下,以便于cdh编译时直接使用,否则下载将浪费大量的时间#配置mvn下载源为阿里云的maven仓库        alimaven        aliyun maven        http://maven.aliyun.com/nexus/content/groups/public/        central

编译安装protobuf并配置环境变量:

#编译安装命令tar -zxvf protobuf-2.5.0.tar.gzcd protobuf-2.5.0./configure  --prefix=/root/protobuf/makemake install#配置环境变量[root@hadoop004 soft]# cat /etc/profile.d/protobuf.sh PROTOC_HOME=/usr/local/protobufexport PATH=$PROTOC_HOME/bin:$PATH#查看是否安装成功source /etc/profile.d/protobuf.sh[root@hadoop004 soft]# protoc --versionlibprotoc 2.5.0

编译cdh的hadoop源码:

tar -xzvf hadoop-2.6.0-cdh6.7.0-src.tar.gzcd hadoop-2.6.0-cdh6.7.0mvn clean package -Pdist,native -DskipTests -Dtar

遇到的错误:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.7:run (make) on project hadoop-pipes: An Ant BuildException has occured: exec returned: 1[ERROR] around Ant part ...... @ 5:126 in /data/soft/hadoop-2.6.0-cdh6.7.0/hadoop-tools/hadoop-pipes/target/antrun/build-main.xml[ERROR] -> [Help 1][ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.[ERROR] Re-run Maven using the -X switch to enable full debug logging.[ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles:[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException[ERROR] [ERROR] After correcting the problems, you can resume the build with the command[ERROR]   mvn  -rf :hadoop-pipes

问题原因:在安装依赖的过程,漏装了openssl-devel;yum install -y openssl-devel

再次执行上面的安装命令:

tar -xzvf hadoop-2.6.0-cdh6.7.0-src.tar.gzcd hadoop-2.6.0-cdh6.7.0mvn clean package -Pdist,native -DskipTests -Dtar注:由于已经提前将cdh需要下载的依赖,放入了maven的本地仓库中了,所以节省了大量的下载时间

编译后的文件:

位置:./hadoop-dist/target目录下

文件:hadoop-2.6.0-cdh6.7.0

压缩文件:hadoop-2.6.0-cdh6.7.0.tar.gz

测试查看是否支持各种压缩:

[root@hadoop004 hadoop-2.6.0-cdh6.7.0]# ./bin/hadoop checknative19/04/18 15:09:34 INFO bzip2.Bzip2Factory: Successfully loaded & initialized native-bzip2 library system-native19/04/18 15:09:34 INFO zlib.ZlibFactory: Successfully loaded & initialized native-zlib libraryNative library checking:hadoop:  true /data/soft/hadoop-2.6.0-cdh6.7.0/hadoop-dist/target/hadoop-2.6.0-cdh6.7.0/lib/native/libhadoop.so.1.0.0zlib:    true /lib64/libz.so.1snappy:  true /lib64/libsnappy.so.1lz4:     true revision:99bzip2:   true /lib64/libbz2.so.1openssl: true /lib64/libcrypto.so

移动到其它机器时的报错及解决方案:

注意如果拷贝tar包到新的机器安装检查checknative报错

openssl: false Cannot load libcrypto.so (libcrypto.so: 无法打开共享对象文件: 没有那个文件或目录)!

centos中运行yum install openssl-devel -y


0