kunpengbds
编译相关依赖
更新时间:2020/12/21 GMT+08:00
编译_posixsubprocess.so
- 通过命令安装python2-subprocess。
1
yum install -y python2-subprocess.aarch64
- 在“/usr/lib64/python2.7/site-packages/_posixsubprocess.so”处获得_posixsubprocess.so。
- 在ambari的源码中“ambari-common/src/main/python/ambari_commons/libs”目录下复制x86_64为aarch64。
1
cp -r x86_64 aarch64
- 使用2中的_posixsubprocess.so替换掉aarch64目录下_posixsubprocess.so。
_posixsubprocess.so源码地址:https://github.com/google/python-subprocess32/archive/3.5.3.tar.gz
编译_speedups.so
- 从ambari源码中“ambari-common/src/main/python/ambari_simplejson/__init__.py”文件中第100行可知simplejson的版本为2.0.9。
1
__version__ = '2.0.9'
- 下载simplejson源码并解压。
1 2
wget https://files.pythonhosted.org/packages/da/8c/a45815b421e49acad7d3d0db4ba65ba1e5cfa02a30c794fe55954106cb0b/simplejson-2.0.9.tar.gz tar -zxf simplejson-2.0.9.tar.gz
此步骤需保证有外网访问权限。
- 进入解压后的目录。
1
cd simplejson-2.0.9
- 编译simplejson。
1
python setup.py build
编译好的so文件在“build/lib.linux-aarch64-2.7/simplejson/_speedups.so”。
- 使用编译完成的_speedups.so替换掉“ambari-common/src/main/python/ambari_simplejson/”目录下的_speedups.so。
_speedups.so源码地址:https://github.com/pallets/markupsafe/archive/1.1.1.tar.gz
编译Phoenix-5.1.0
编译Hadoop-3.1.1
编译HBase-2.0.0
请参考《HDP 3.1.0 HBase 移植指南(CentOS 7.6)》。

Phoenix、Hadoop、HBase编译好后的tar.gz包放到本地“/root/packages/tar”目录下,在编译ambari的时候,修改“ambari-metrics/pom.xml”中这三个tar.gz下载地址为本地文件对应的地址,并修改版本号。
修改前:
修改后:
编译Grafana-2.6.0
- 下载grafana-2.6.0安装包。
1
wget https://github.com/grafana/grafana/archive/v2.6.0.tar.gz
- 解压安装包。
1
tar -zxf v2.6.0.tar.gz
- 搭建好golang环境,并将源码移动到“GOPATH”目录下的“src”目录。
1
mv grafana-2.6.0 ${GOPATH}/src/
- 拷贝grafana-2.6.0项目编译过程中本身的依赖到src对应目录。
1 2 3
cd ${GOPATH}/src/grafana-2.6.0 mkdir -p ../github.com/grafana/grafana/pkg cp pkg/* ../github.com/grafana/grafana/pkg/ -rf
- 执行后端编译。
1 2
go run build.go setup go run build.go build
- 配置npm。
1 2
npm config set registry http://registry.npmjs.org/ npm config set strict-ssl false
若配置网络代理则需执行操作如下:
1 2
npm config set proxy http://{代理ip}:{代理端口} npm config set https-proxy http://{代理ip}:{代理端口}
- 跳过phantomjs报错(因为系统中已安装),执行前端编译。
1 2 3 4
npm install npm install grunt@1.0.0 karma@3.0.0 grunt-karma@3.0.0 karma-phantomjs-launcher npm install -g grunt-cli grunt --force
- 拷贝phantomjs可执行文件到相应目录,打包时将自动将phantomjs打包到grafana的rpm包中。
1
cp /opt/tools/phantomjs/phantomjs/bin/phantomjs vendor/phantomjs/
- 打包。
1
go run build.go package
- 最终结果将会生成到tmp目录,直接对tmp目录进行压缩。
mv tmp grafana-2.6.0 tar -zcf grafana-2.6.0.tar.gz grafana-2.6.0 mv grafana-2.6.0.tar.gz /root/packages/tar
