ambari 2.7.6源码编译指南

编译环境与基本软件安装

  • centos 7.6
  • maven 3.6.3

由于编译相关jar包较难下载,所以本文提供仅用于ambari编译的maven repository,将该repository替换原.m2/repository目录即可。

repository.tar.gz

提取密码: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 

便可得到:

ambari 2.7.6源码编译指南

问题与解决方法

如果出现如下问题:

[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目录下,重新执行即可

上一篇:InfluxDB核心概念系列之数据元素


下一篇:hive metastore配置kerberos认证