【鲲鹏云端实验】之通过鲲鹏Maven仓进行Maven软件构建

举报
真爱无敌 发表于 2020/06/17 17:47:33 2020/06/17
【摘要】 一、Maven简介Maven是一个项目管理和综合工具。Maven提供了开发人员构建一个完整的生命周期框架。开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周期。它是一个Apache的开源项目,主要服务于基于Java平台的项目构建、依赖管理和项目信息管理,为了不重复造轮子。例如:两个项目A B,项目A需要依赖一些jar包,项目B也需要依赖这些jar包,那么此时...

image.png

一、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

下载成功后如下图所示:

image.png

执行如下命令解压安装包:

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

输出结果如下:

image.png


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

输出结果如下:

image.png


【☆重要☆】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

安装成功如下图所示:

image.png


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

执行成功如下图所示:

image.png


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存在依赖!

image.png


3.3.使用Dependency Advisor检查软件包依赖文件(方法二)

3.3.1.通过浏览器登录Dependency Advisor

打开火狐浏览器,然后在浏览器中输入 https://EIP:8082并访问(注意,此处需要将EIP替换为系统为鲲鹏云服务器的【EIP】)。第一次访问时,浏览器会有连接不安全提示,此时需要依次点击页面的 “高级” -> “添加例外” -> “确认安全例外“ ,如下图所示:

image.png


安全例外添加成功后会进入到登录页面,在登录框中输入用户名和密码即可登录。登录的默认用户名和密码分别是: depadmin , Admin@9000 

如下图所示:

image.png

登录后需要修改默认密码,修改完后进入主页:

image.png


3.3.2 依赖检查

登录到Dependency Advisor软件的操作界面,然后选中“分析软件安装包”,并在“软件安装包存放路径或安装包名称” 下面的输入框中输入需要分析的软件包hive_2_6_3_0_235-1.2.1000.2.6.3.0-235.noarch.rpm ,然后点击分析按钮即可,如下图所示:

image.png

点击分析后出结果:

image.png


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

编译完成如下图所示:

image.png


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依赖,移植到了鲲鹏平台。

image.png


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。