实践:Hadoop-3.0.0-cdh6.3.2 移植指南(CentOS 7)

前言

虽然本文参考了鲲鹏BoostKit大数据使能套件之Hadoop-3.0.0-cdh6.3.2 移植指南(CentOS 7.6)和CentOS 7.2 环境编译 hadoop-2.6.0-cdh5.15.1,参考此两文虽不是很顺畅,但解决了大部分问题。现在只能编译成功部分扩展功能,而暂时无法实现Add Codec for ZStandard Compression,现状如下:
若把华为云上的编译命令由

mvn install -Pdist,native -DskipTests -Dtar -Drequire.isal -Dbundle.isal -Disal.lib=/opt/module/isa-l-2.29.0/.libs/ -Drequire.zstd -Dbundle.zstd -Dzstd.lib=/opt/module/zstd-1.4.4/lib/ -Drequire.snappy -Dbundle.snappy -Dsnappy.lib=/usr/lib64/

改为

mvn install -Pdist,native -DskipTests -Dtar -Drequire.isal -Dbundle.isal -Disal.lib=/opt/module/isa-l-2.29.0/.libs/ -Drequire.snappy -Dbundle.snappy -Dsnappy.lib=/usr/lib64/ -Dmaven.javadoc.skip=true -DskipTests=true

便能够成功编译并使其集成isal、snappy等本地库功能,但若使用facebook的zstd压缩算法,难道必须修改hadoop3的源码?因为我看到了:HADOOP-17125. Use snappy-java in SnappyCodec
参考上面的HADOOP-13578,经尝试:

[root@master hadoop-common-cdh6.3.2-release]# git apply --check HADOOP-13578.v3.patch
fatal: git diff header lacks filename information when removing 1 leading pathname component (line 5)
[root@master hadoop-common-cdh6.3.2-release]# git apply HADOOP-13578.v3.patch
fatal: git diff header lacks filename information when removing 1 leading pathname component (line 5)

此操作的解释性补充:
在这里插入图片描述
呜呜,最终参考:编译 Hadoop 3 并绑定 native 库得以解决,即编译命令中所指定的zstd目录最后不要加"/"单字符。

mvn clean install -DskipTests -Pdist,native -Dtar -Dbundle.snappy=true -Drequire.snappy=true -Dsnappy.prefix=/usr/lib64 -Dsnappy.lib=/usr/lib64 -Drequire.zstd=true -Dbundle.zstd=true -Dzstd.lib=/opt/module/zstd-1.4.4/lib -Dbundle.isal=true -Drequire.isal=true -Disal.prefix=/opt/module/isa-l-2.29.0 -Disal.lib=/opt/module/isa-l-2.29.0/.libs

于是经过一番折腾,最终的结论是
在这里插入图片描述
在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐