编译环境与基本软件安装
- centos 7.6
- maven 3.6.3
由于编译相关jar包较难下载,所以本文提供仅用于ambari编译的maven repository,将该repository替换原.m2/repository目录即可。
提取密码:ambari
软件安装
yum install -y wget git psutils python-devel rpm-build java-1.8.0-openjdk-devel
搭建http服务
yum install httpd
systemctl enable httpd
systemctl start httpd
提前下载如下安装包
- hadoop-3.1.1.tar.gz
- hbase-2.0.2.tar.gz
- grafana-6.7.4.linux-amd64.tar.gz
- apache-phoenix-5.0.0-HBase-2.0-bin.tar.gz
并将其放置到http服务的/var/www/html/compile-ambari目录下(新建compile-ambari目录)
源码下载与修改
wget https://mirrors.tuna.tsinghua.edu.cn/apache/ambari/ambari-2.7.6/apache-ambari-2.7.6-src.tar.gz
tar zxvf apache-ambari-2.7.6-src.tar.gz
cd apache-ambari-2.7.6-src
修改主目录下的pom文件,新增hdp仓库:
<repository>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<enabled>false</enabled>
<updatePolicy>never</updatePolicy>
<checksumPolicy>fail</checksumPolicy>
</snapshots>
<id>HDPReleases</id>
<name>HDP Releases</name>
<url>https://repo.hortonworks.com/content/repositories/releases/</url>
<layout>default</layout>
</repository>
修改ambari-metrics/pom.xml,将hbase、hadoop以及grafana的下载地址替换为本地地址:
<hbase.tar>http://localhost/compile-ambari/hbase-2.0.2-bin.tar.gz</hbase.tar>
<hadoop.tar>http://localhost/compile-ambari/hadoop-3.1.1.tar.gz</hadoop.tar>
<grafana.tar>http://localhost/compile-ambari/grafana-6.7.4.linux-amd64.tar.gz</grafana.tar>
<phoenix.tar>http://localhost/compile-ambari/apache-phoenix-5.0.0-HBase-2.0-bin.tar.gz</phoenix.tar>
执行编译
mvn clean install rpm:rpm -DskipTests
便可得到:
问题与解决方法
如果出现如下问题:
[INFO] [2/4] Fetching packages...
[ERROR] warning fsevents@2.3.2: The platform "linux" is incompatible with this module.
[INFO] info "fsevents@2.3.2" is an optional dependency and failed compatibility check. Excluding it from installation.[INFO] [3/4] Linking dependencies...
[INFO] [4/4] Building fresh packages...
[INFO] info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
[ERROR] error /root/ambari/ambari-admin/src/main/resources/ui/admin-web/node_modules/phantomjs: Command failed.
[ERROR] Exit code: 1
[ERROR] Command: sh
[ERROR] Arguments: -c node install.js
[ERROR] Directory: /root/ambari/ambari-admin/src/main/resources/ui/admin-web/node_modules/phantomjs
[ERROR] Output:
[ERROR] PhantomJS not found on PATH
[ERROR] Download already available at /tmp/npm_config_tmp/phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2
[ERROR] Verified checksum of previously downloaded file
[ERROR] Extracting tar contents (via spawned process)
[ERROR] Removing /root/ambari/ambari-admin/src/main/resources/ui/admin-web/node_modules/phantomjs/lib/phantom
[ERROR] Copying extracted folder /tmp/npm_config_tmp/phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2-extract-1639887716005/phantomjs-2.1.1-linux-x86_64 -> /root/ambari/ambari-admin/src/main/resources/ui/admin-web/node_modules/phantomjs/lib/phantom
[ERROR] Install exited unexpectedly
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] Ambari Main 2.7.6.0.0 .............................. SUCCESS [ 3.717 s]
[INFO] Apache Ambari Project POM 2.7.6.0.0 ................ SUCCESS [ 0.195 s]
[INFO] Ambari Web 2.7.6.0.0 ............................... SUCCESS [01:43 min]
[INFO] Ambari Views 2.7.6.0.0 ............................. SUCCESS [ 6.583 s]
[INFO] Ambari Admin View 2.7.6.0.0 ........................ FAILURE [ 47.472 s]
[INFO] ambari-utility 1.0.0.0-SNAPSHOT .................... SKIPPED
[INFO] ambari-metrics 2.7.6.0.0 ........................... SKIPPED
[INFO] Ambari Metrics Common 2.7.6.0.0 .................... SKIPPED
那么将/tmp/npm_config_tmp/phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2-extract-1639887716005/phantomjs-2.1.1-linux-x86_64中所有内容拷贝到 /root/ambari/ambari-admin/src/main/resources/ui/admin-web/node_modules/phantomjs/lib/phantom目录下,重新执行即可