目录
背景
安装好的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仓库源:
<repository>
<id>kunpengmaven</id>
<name>kunpeng maven</name>
<url>https://mirrors.huaweicloud.com/kunpeng/maven</url>
</repository>

除了依赖仓库源,还要添加插件仓库源,pluginRepositories和repositories的节点级别一样:
<pluginRepositories>
<pluginRepository>
<id>huaweicloud-plugin</id>
<url>http://mirrors.huaweicloud.com/repository/maven</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>

开始编译
执行基础编译命令。
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包
安装Hadoop
下面就和X86版本的安装步骤类似了,配置是根据自己的开发需求来改的,不必照搬
1、解压编译出来的tar.gz包
tar -zxvf hadoop-dist/target/hadoop-3.2.2.tar.gz -C /opt/software
重命名
mv /opt/software/hadoop-3.2.2 /opt/software/hadoop
2、配置系统变量
编辑 /etc/profile
vi /etc/profile
在文件末尾添加
#Hadoop Env
export HADOOP_HOME=/opt/software/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
立即生效
source /etc/profile
创建文件夹
指定hadoop的工作目录
mkdir -p /mnt/data/hadoop/tmp
mkdir -p /mnt/data/hadoop/dfs/name
mkdir -p /mnt/data/hadoop/dfs/data
mkdir -p /mnt/data/hadoop/dfs/namesecondary
mkdir -p /mnt/data/hadoop/dfs/edits
mkdir -p /mnt/data/hadoop/logs
配置免密登陆
cd
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
测试 ssh localhost能否成功
如果改了端口号,则是
ssh localhost -p 20022
3、修改Hadoop配置
3.1、配置hadoop-env.sh
vi /opt/software/hadoop/etc/hadoop/hadoop-env.sh
在末尾插入以下内容</

本文详细介绍了在ARM架构服务器上编译并配置Hadoop 3.2.2源码的过程,包括环境准备、依赖包安装、源码解压、配置文件修改、系统变量设置、文件夹创建及免密登录,重点解决因硬件限制导致的LZ4压缩算法问题,适合Hadoop在鲲鹏平台部署需求。




最低0.47元/天 解锁文章
3335





