背景:
安装好的hbase2.4.8不能使用hadoop的LZ4压缩算法,hadoop checknative检查所有的算法都是false,x86下安装是支持这些的。搜索得知官方的算法编译的是x86版本的,我们使用arm就需要自己下载源码进行编译后使用
hadoop 不能加载native-hadoop library问题
借鉴x86下的步骤
Hadoop-3.2.2源码编译环境搭建
官网下载hadoop的源码版本Index of /dist/hadoop/common/hadoop-3.2.2 (apache.org)
上传到服务器,解压
tar -zxvf /opt/package/hadoop-3.2.2-src.tar.gz
根据解压出来的文件,查看BUILDING.txt
所以我们需要准备这些包
还有一些其他的包我们也可以根据需要来装
yum install protobuf protobuf-devel
如果看到是2.5.0就直接安装就好
华为云上有所有组件的安装步骤
安装Protobuf_鲲鹏BoostKit大数据使能套件_移植指南(Apache)_Druid 0.
一开始没用yum安装,下载了网上的tgz包,比较坑的一个地方是protobuf2.5.0这个,因为下载的版本不支持arm64的,后来上网找了一圈,原来要打补丁,这里传一个打好补丁的protobuf链接:https://pan.baidu.com/s/1zxUliDQ0woiAWSjVXJlzWw?pwd=o0s4
提取码:o0s4
建议还是用yum安装比较好
PDF是补丁的详情
编译过程中出现common包执行错误
手动去mvn仓库下载
依赖包都安装好后
cd hadoop-3.2.2-src
# 修改pom文件
vi pom.xml
在repositories标签的第一位添加鲲鹏maven仓库源:
kunpengmaven
kunpeng maven
https://mirrors.huaweicloud.com/kunpeng/maven
除了依赖仓库源,还要添加插件仓库源,pluginRepositories和repositories的节点级别一样:
huaweicloud-plugin
http://mirrors.huaweicloud.com/repository/maven
true
执行基础编译命令。
mvn package -DskipTests -Pdist,native -Dtar -Dmaven.javadoc.skip=true
(可选)添加snappy库编译命令。
mvn package -DskipTests -Pdist,native -Dtar -Dsnappy.lib=/usr/local/lib64 -Dbundle.snappy -Dmaven.javadoc.skip=true
-Dsnappy.lib=/usr/local/lib64参数为你安装snappy的位置
编译成功后,将在源码下的“hadoop-dist/target/”目录生成tar.gz包