ambari
Note
- 本文假设网络通畅,如遇网络问题请自行解决
项目信息
名称 | 描述 |
---|---|
名称 | ambari |
版本 | 2.7.0 |
项目地址 | https://github.com/apache/ambari |
官方指导 | https://github.com/apache/ambari/tree/release-2.7.6/README.md |
环境信息
名称 | 描述 |
---|---|
CPU | 3A5000 |
系统 | 4.19.190-7.6.lns8.loongarch64 |
移植步骤
编译环境及依赖 1. java 8 2. maven 3.3.9 及以下版本 3. python 2.7 and later 4. loongnix maven configure 龙芯maven仓库配置 5. mysql-connector-java gcc python-devel python2-devel.loongarch64
移植步骤
1. 下载源码
git clone -b release-2.7.0 --depth 1 https://github.com/apache/pulsar.git
2. 也可以直接下载适配代码
git clone -b loong64-2.7.0 --depth 1 [https://github.com/apache/pulsar.git](https://github.com/Loongson-Cloud-Community/pulsar.git)
3. 修改配置文件
### 修改所有项目的pom文件
- 项目由于对node依赖较高(4.x 0.x 8.x),需要使用node编译前端界面及资源,而loongarch的node版本只有12.0+可以使用,实际编译发现无法替代,且需要node系列组件phantomjs虽然存在但无法使用,因此需要对ambari-admin ambari-web ambari-logsearch/ambari-logsearch-web ambari-views四个子项目的pom文件中node编译部分进行修改,由于前端资源与架构无关,因此将x86编译得到的相关资源进行下载解压并替代,更改node部分逻辑,关闭本地编译部分,增加下载解压部分
- 对pom文件中部分maven插件版本 jar依赖版本 以及失效的依赖下载地址进行更新
- pom文件中使用rpm-maven-plugin对项目进行rpm打包,而本身2.1.4不支持loongarch,需要修改版本为2.2.0,且修改
### 修改.py的python使用声明 - 暂未排出原因,需要将#!/usr/bin/env python 更改为 #!/usr/bin/env python2 - 同样的 #!/usr/bin/python 到 #!/usr/bin/python2,注意项目中存在直接声明#!/usr/bin/python2.6的无需更改
### 修改源码 - ambari-metrics/ambari-metrics-timelineservice/src/test/java/org/apache/ambari/metrics/core/timeline/AbstractMiniHBaseClusterTest.java部分修改 tearDownMiniCluster();方法需要参数,修改为tearDownMiniCluster(1); - ambari-common/src/main/python/ambari_commons/libs目录下只有ppcl64及x86,在编译时需要添加loongarch部分,其中__init__.py部分相同,所需的 "posixsubprocess.so" 需要手动编译替换(怎么替换?) - ambari-common 部分os_check.py需要适配,该部分影响rpm编译完成安装后的使用,可能会报错:
ERROR: Unexpected error Ambari repo file path not set for current OS.
ERROR: Exiting with exit code 1.
REASON: Failed to create user. Exiting.
- 编译 由于项目需要下载较多依赖耗时较长,可以首先在本地将依赖下载并更改下载地址到本地,假设存储地址为/opt/compile-ambari
下载hbase hadoop grafana phoenix solr 以及 x86编译好的前端资源包 infra项目还需要lucene 和 commons-fileupload-1.3.3.jar 也下载到/opt /compile-ambari,接着将下载到本地的依赖在pom文件进行替换 在主目录执行编译命令,可以先不进行rpm包打包(删掉以下指令的rpm部分),节省时间
mvn -B clean install package rpm:rpm -Drat.skip=true -DnewVersion=2.7.0.0.0 -DbuildNumber=631319b00937a8d04667d93714241d2a0cb17275 -DskipTests -Dpython.ver="python >= 2.6"
cd ambari-logsearch && mvn versions:set -DnewVersion=2.7.0.0.0 && mvn clean install package -P native,rpm -DskipTest