【鲲鹏云端实验】之通过鲲鹏Maven仓进行Maven软件构建
一、Maven简介
Maven是一个项目管理和综合工具。Maven提供了开发人员构建一个完整的生命周期框架。开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周期。
它是一个Apache的开源项目,主要服务于基于Java平台的项目构建、依赖管理和项目信息管理,为了不重复造轮子。
例如:两个项目A B,项目A需要依赖一些jar包,项目B也需要依赖这些jar包,那么此时如果都把jar包引入到项目中,就是在重复造轮子,我们应该把这些所有的jar包放到一个地方,需要用的时候过去取即可。
二、基础软件安装
2.1 安装OpenJDK
2.1.1 首先下载并解压OpenJDK安装包
执行如下命令下载OpenJDK安装包,待安装包下载成功后即可进行下一个步骤的操作
cd wget https://sandbox-experiment-resource-north-4.obs.cn-north-4.myhuaweicloud.com/kunpeng-maven/OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gz
下载成功后如下图所示:
执行如下命令解压安装包:
tar -zxvf OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gz
2.2.2 配置JAVA环境变量
执行如下命令配置JAVA环境变量:
echo 'JAVA_HOME=/root/jdk8u191-b12' >> /etc/profile echo 'PATH=$JAVA_HOME/bin:$PATH' >> /etc/profile
然后让上述变量生效:
source /etc/profile
确认变量是否生效:
java -version
输出结果如下:
2.2 安装Maven
2.2.1 下载并解压Maven安装包
不多废话,直接上命令
cd wget tar -zxvf apache-maven-3.5.4-bin.tar.gz
2.2.2 配置环境变量
echo 'MAVEN_HOME=/root/apache-maven-3.5.4' >> /etc/profile echo 'PATH=$PATH:$MAVEN_HOME/bin' >> /etc/profile
让配置生效
source /etc/profile
确认安装是否成功
mvn -v
输出结果如下:
【☆重要☆】2.2.3 配置鲲鹏Maven仓库
执行如下命令添加鲲鹏Maven仓库:
sed -i '246a <profile><id>securecentral</id><activation><activeByDefault>true</activeByDefault></activation><repositories><repository><id>kunpeng</id><url>https://mirrors.huaweicloud.com/kunpeng/maven/</url><releases><enabled>true</enabled></releases></repository><repository><id>huaweicloud</id><url>https://mirrors.huaweicloud.com/repository/maven/</url><releases><enabled>true</enabled></releases></repository></repositories></profile>' /root/apache-maven-3.5.4/conf/settings.xml sed -i '158a <mirror><id>huaweicloud</id><mirrorOf>!kunpeng,!huaweicloud,*</mirrorOf><url>https://mirrors.huaweicloud.com/repository/maven/</url></mirror>' /root/apache-maven-3.5.4/conf/settings.xml
2.3 安装 Dependency Advisor
2.3.1 下载并解压安装包 Dependency Advisor
cd wget https://sandbox-experiment-resource-north-4.obs.cn-north-4.myhuaweicloud.com/kunpeng-maven/Dependency-advisor-Kunpeng-linux-1.1.3.tar.gz
tar -zxvf Dependency-advisor-Kunpeng-linux-1.1.3.tar.gz
2.3.2 安装软件包
cd Dependency-advisor-Kunpeng-linux-1.1.3 ./install.sh web
安装成功如下图所示:
2.4 安装CheckSo工具
2.4.1 下载CheckSo工具包
cd wget https://sandbox-experiment-resource-north-4.obs.cn-north-4.myhuaweicloud.com/kunpeng-maven/checkSo.zip
2.4.2 安装CheckSo工具包
unzip checkSo.zip && chmod +x checkSo/*.sh
执行成功如下图所示:
3. 软件依赖分析(Hive)
3.1 下载Hive软件包
cd wget -P /opt/depadv/depadmin/ https://sandbox-experiment-resource-north-4.obs.cn-north-4.myhuaweicloud.com/kunpeng-maven/hive_2_6_3_0_235-1.2.1000.2.6.3.0-235.noarch.rpm
3.2.使用CheckSo工具检查软件包依赖文件(方法一)
通过CheckSo工具检查当前rpm包是否包含X86依赖文件,以确定是否能在鲲鹏平台上直接运行。执行如下命令即可
cd checkSo && ./main.sh /opt/depadv/depadmin/hive_2_6_3_0_235-1.2.1000.2.6.3.0-235.noarch.rpm
依赖检查结果保存在main.sh脚本所在目录的JarResult.log文件以及NonJarResult.log文件中。JarResult.log 文件中保存的是Jar包中包含的不兼容鲲鹏处理器的so。格式为:组件包名,jar包名,缺乏arm版本的so库文件名。NonJarResult.log文件中保存的是非Jar包中不兼容鲲鹏处理器的so。分别执行如下命令可查看两个文件中的内容:
cat JarResult.log cat NonJarResult.log
结果如下图所示:
此结果表明还对x86存在依赖!
3.3.使用Dependency Advisor检查软件包依赖文件(方法二)
3.3.1.通过浏览器登录Dependency Advisor
打开火狐浏览器,然后在浏览器中输入 https://EIP:8082并访问(注意,此处需要将EIP替换为系统为鲲鹏云服务器的【EIP】)。第一次访问时,浏览器会有连接不安全提示,此时需要依次点击页面的 “高级” -> “添加例外” -> “确认安全例外“ ,如下图所示:
安全例外添加成功后会进入到登录页面,在登录框中输入用户名和密码即可登录。登录的默认用户名和密码分别是: depadmin , Admin@9000
如下图所示:
登录后需要修改默认密码,修改完后进入主页:
3.3.2 依赖检查
登录到Dependency Advisor软件的操作界面,然后选中“分析软件安装包”,并在“软件安装包存放路径或安装包名称” 下面的输入框中输入需要分析的软件包hive_2_6_3_0_235-1.2.1000.2.6.3.0-235.noarch.rpm ,然后点击分析按钮即可,如下图所示:
点击分析后出结果:
4. 迁移软件包
在之前的步骤中我们使用了2种不同的方法对Hive的RPM安装包做了分析后发现当前的Hive RPM安装包中包含了x86依赖,因此不能直接在鲲鹏上运行,需要使用源码重新编译使之能够正常在鲲鹏上运行。
4.1 下载并解压Hive源码
执行如下命令下载Hive源码,待源码下载成功后解压源码包:
cd wget tar -zxvf hive-release-HDP-2.6.3.0-235-tag.tar.gz
4.2 编译源码
执行如下命令编译源码:
cd hive-release-HDP-2.6.3.0-235-tag mvn clean install -Phadoop-2 -DskipTests -Pdist -T 4C
编译完成如下图所示:
4.3 重新进行依赖检查
经过上一个步骤的重新编译,会在源码目录下的packaging/target目录下生成一个名为apache-hive-1.2.1000.2.6.3.0-235-bin.tar.gz 的新安装包,此安装包已经去除了x86依赖,可执行以下命令对新安装包做依赖检查:
cd /root/checkSo rm -f JarResult.log NonJarResult.log ./main.sh /root/hive-release-HDP-2.6.3.0-235-tag/packaging/target/apache-hive-1.2.1000.2.6.3.0-235-bin.tar.gz
执行完可以查看执行结果日志:
cat *.log
可以看到在输出中看不到任何有关于jar或so的信息,说明安装包已经成功去除了x86依赖,移植到了鲲鹏平台。
- 点赞
- 收藏
- 关注作者
评论(0)