Ubuntu平台下源码编译Ambari 2.4

2022-05-06 17:37:29 浏览数 (1)

Ubuntu/UbuntuKylin平台下源码编译Ambari 2.4

1、Ubuntu环境配置

1.1 网络配置

代码语言:javascript复制
kylin@Ubuntu:~$ sudo vim /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
auto ens32
iface ens32 inet static
address 192.168.1.166
gateway 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
重启系统

kylin@Ubuntu:~$ sudo /etc/init.d/networking restart
[ ok ] Restarting networking (via systemctl): networking.service.

1.2 Ubuntu安装SSH

sudo apt-get install ssh

sudo apt-get install rsync

代码语言:javascript复制
kylin@Ubuntu:~$ dpkg -l | grep ssh
ii  libssh-4:amd64                              0.7.3-1                                     amd64        tiny C SSH library (OpenSSL flavor)
ii  libssh-gcrypt-4:amd64                       0.7.3-1                                     amd64        tiny C SSH library (gcrypt flavor)
ii  openssh-client                              1:7.3p1-1                                   amd64        secure shell (SSH) client, for secure access to remote machines
ii  openssh-server                              1:7.3p1-1                                   amd64        secure shell (SSH) server, for secure access from remote machines
ii  openssh-sftp-server                         1:7.3p1-1                                   amd64        secure shell (SSH) sftp server module, for SFTP access from remote machines
ii  ssh                                         1:7.3p1-1                                   all          secure shell client and server (metapackage)
ii  ssh-import-id                               5.6-0ubuntu1                                all          securely retrieve an SSH public key and install it locally

1.3 如何让ubuntukylin开机进入纯命令模式

找了搜索了很多方法都是针对ubuntu,ubuntukylin没有用!!

kylin@Ubuntu:~

sudo service lightdm start kylin@Ubuntu:~

sudo lightdm start Failed to use bus name org.freedesktop.DisplayManager, do you have appropriate permissions?

1.4 JDK

代码语言:javascript复制
kylin@Ubuntu:~$ dpkg -l | grep jdk
kylin@Ubuntu:~$ dpkg -l | grep java
ii  gir1.2-javascriptcoregtk-4.0:amd64          2.14.0-1                                    amd64        JavaScript engine library from WebKitGTK  - GObject introspection data
ii  libjavascriptcoregtk-1.0-0:amd64            2.4.11-3                                    amd64        JavaScript engine library from WebKitGTK 
ii  libjavascriptcoregtk-4.0-18:amd64           2.14.0-1                                    amd64        JavaScript engine library from WebKitGTK 
kylin@Ubuntu:~$ 

kylin@Ubuntu:~$ java -version
程序 'java' 已包含在下列软件包中:
 * default-jre
 * gcj-5-jre-headless
 * openjdk-8-jre-headless
 * gcj-4.8-jre-headless
 * gcj-4.9-jre-headless
 * gcj-6-jre-headless
 * openjdk-9-jre-headless
请尝试:sudo apt install <选定的软件包>


kylin@Ubuntu:~$ sudo vi .profile
#set for java
export JAVA_HOME=/home/kylin/jdk1.7.0_67
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib
export _JAVA_OPTIONS="-Xmx2048m -XX:MaxPermSize=512m -Djava.awt.headless=true"
export PATH=$PATH:$JAVA_HOME/bin


kylin@Ubuntu:~$ source .profile
kylin@Ubuntu:~$ java -version
java version "1.7.0_67"
Java(TM) SE Runtime Environment (build 1.7.0_67-b01)
Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)

1.5 Maven

代码语言:javascript复制
kylin@Ubuntu:~$ vi .profile 
#set for maven
export MAVEN_HOME=/home/kylin/apache-maven-3.0.5
export PATH=$PATH:$MAVEN_HOME/bin
kylin@Ubuntu:~$ source .profile 

maven有2个位置可以选择配置M2_HOME/conf/setting.xml和~/.m2/setting.xml

前者是全局性的,后者是针对用户的。

查询资料是说用户配置优先级高于全局配置

代码语言:javascript复制
kylin@Ubuntu:~/apache-maven-3.0.5/conf$ cp settings.xml ~/.m2/

1.6 Node.js

代码语言:javascript复制
kylin@Ubuntu:~$ sudo tar -zxvf node-v0.10.44-linux-x64.tar.gz -C /opt

kylin@Ubuntu:~$ vi .profile 
#set for nodejs
export NODE_HOME=/home/kylin/node-v0.10.44-linux-x64
export PATH=$PATH:$NODE_HOME/bin
kylin@Ubuntu:~$ source .profile 

配置淘宝源

代码语言:javascript复制
kylin@Ubuntu:~$ npm config set registry https://registry.npm.taobao.org  
kylin@Ubuntu:~$ npm info underscor 

安装brunch

代码语言:javascript复制
kylin@Ubuntu:~$ npm install -g brunch@1.7.20
npm WARN deprecated minimatch@1.0.0: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN optional dep failed, continuing fsevents@0.3.8
npm WARN deprecated minimatch@0.2.14: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated graceful-fs@2.0.3: graceful-fs v3.0.0 and before will fail on node releases >= v7.0. Please update to graceful-fs@^4.0.0 as soon as possible. Use 'npm ls graceful-fs' to find it in the tree.
/home/kylin/node-v0.10.44-linux-x64/bin/brunch -> /home/kylin/node-v0.10.44-linux-x64/lib/node_modules/brunch/bin/brunch
> brunch@1.7.20 postinstall /home/kylin/node-v0.10.44-linux-x64/lib/node_modules/brunch
> node setup.js postinstall
brunch@1.7.20 /home/kylin/node-v0.10.44-linux-x64/lib/node_modules/brunch
├── debug@0.7.4
├── async-waterfall@0.1.5
├── commonjs-require-definition@0.1.2
├── async-each@0.1.6
├── commander@2.0.0
├── ncp@0.4.2
├── mkdirp@0.3.5
├── init-skeleton@0.2.4 (rimraf@2.2.8)
├── read-components@0.6.1 (component-builder@0.10.1)
├── source-map@0.1.43 (amdefine@1.0.1)
├── coffee-script@1.8.0
├── anymatch@1.0.0 (minimatch@1.0.0)
├── chokidar@0.12.6 (readdirp@1.3.0)
├── anysort@1.0.1 (anymatch@1.3.0)
├── pushserve@0.1.6 (connect-slashes@0.0.11, express@3.3.8)
└── loggy@0.2.2 (growl@1.8.1, ansi-color@0.2.1, date-utils@1.2.21)

1.7 安装rpmbuild

ambari编译时依赖rpmbuild打包成rpm安装包,因而需要rpm套件,很幸运,ubuntu可以安装这一套件:

代码语言:javascript复制
kylin@Ubuntu:~$ sudo apt-get install -y rpm yum

1.8 Python

Ubuntu默认是Python 2.7,直接设置setuptools-0.6c11-py2.7.egg

代码语言:javascript复制
kylin@Ubuntu:~$ sudo sh setuptools-0.6c11-py2.7.egg
Processing setuptools-0.6c11-py2.7.egg
Copying setuptools-0.6c11-py2.7.egg to /usr/local/lib/python2.7/dist-packages
Adding setuptools 0.6c11 to easy-install.pth file
Installing easy_install script to /usr/local/bin
Installing easy_install-2.7 script to /usr/local/bin

Installed /usr/local/lib/python2.7/dist-packages/setuptools-0.6c11-py2.7.egg
Processing dependencies for setuptools==0.6c11
Finished processing dependencies for setuptools==0.6c11

1.9 git

代码语言:javascript复制
kylin@Ubuntu:~$ sudo apt-get install -y git

2 源码编译Ambari

2.1 下载源码

apache-ambari-2.4.2-src.tar.gz 解压缩 kylin@Ubuntu:~$ tar -zxvf apache-ambari-2.4.2-src.tar.gz

2.2 安装node-gyp

进入源码根目录安装node-gyp

代码语言:javascript复制
kylin@Ubuntu:~$ cd apache-ambari-2.4.2-src/
kylin@Ubuntu:~/apache-ambari-2.4.2-src$ ls
ambari-admin  ambari-client  ambari-funtest    ambari-metrics  ambari-server  ambari-views  contrib      docs  LICENSE.txt  NOTICE.txt  pom.xml
ambari-agent  ambari-common  ambari-logsearch  ambari-project  ambari-shell   ambari-web    dev-support  KEYS  logo.png     pass.txt    version
kylin@Ubuntu:~/apache-ambari-2.4.2-src$ npm install node-gyp

2.3 准备编译

代码语言:javascript复制
kylin@Ubuntu:~/apache-ambari-2.4.2-src$ mvn versions:set -DnewVersion=2.4.2.0.0
kylin@Ubuntu:~/apache-ambari-2.4.2-src$ pushd ambari-metrics
~/apache-ambari-2.4.2-src/ambari-metrics ~/apache-ambari-2.4.2-src
kylin@Ubuntu:~/apache-ambari-2.4.2-src/ambari-metrics$ cd ..
kylin@Ubuntu:~/apache-ambari-2.4.2-src$ popd
~/apache-ambari-2.4.2-src

2.4 开始编译

代码语言:javascript复制
kylin@Ubuntu:~/apache-ambari-2.4.2-src$ mvn -B clean install package jdeb:jdeb -DskipTests -Dpython.ver="python >= 2.6" -Preplaceurl

3、遇到问题:

问题1、Too many files with unapproved license

[ERROR] Failed to execute goal org.apache.rat:apache-rat-plugin:0.11:check (default) on project ambari: Too many files with unapproved license: 780 See RAT report in: /home/kylin/apache-ambari-2.4.2-src/target/rat.txt -> [Help 1]

解决办法:加上-Drat.skip=true

代码语言:javascript复制
kylin@Ubuntu:~/apache-ambari-2.4.2-src$ mvn -B install package jdeb:jdeb -DskipTests -Dpython.ver="python >= 2.6" -Drat.skip=true -Preplaceurl

问题2、#include

问题3、UnknownHostException Unknown host

问题3.1 Unknown host grafanarel.s3.amazonaws.com

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.7:run (default) on project ambari-metrics-grafana: An Ant BuildException has occured: java.net.UnknownHostException: grafanarel.s3.amazonaws.com [ERROR] around Ant part …… @ 5:217 in /home/kylin/apache-ambari-2.4.2-src/ambari-metrics/ambari-metrics-grafana/target/antrun/build-Download Ambari Grafana.xml: Unknown host grafanarel.s3.amazonaws.com

问题3.2 Unknown host private-repo-1.hortonworks.com

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.7:run (default) on project ambari-metrics-timelineservice: An Ant BuildException has occured: java.net.UnknownHostException: private-repo-1.hortonworks.com [ERROR] around Ant part …… @ 5:265 in /home/kylin/apache-ambari-2.4.2-src/ambari-metrics/ambari-metrics-timelineservice/target/antrun/build-Download HBase.xml: Unknown host private-repo-1.hortonworks.com

问题3.3 Unknown host www.w3.org

[ERROR] Failed to execute goal org.codehaus.mojo:xml-maven-plugin:1.0:transform (default) on project ambari-server: Failed to transform input file /home/kylin/apache-ambari-2.4.2-src/ambari-server/target/findbugs/findbugsXml.html: java.net.UnknownHostException: www.w3.org: Unknown host www.w3.org -> [Help 1]

解决办法:重新执行

代码语言:javascript复制
kylin@Ubuntu:~/apache-ambari-2.4.2-src$ mvn -B install package jdeb:jdeb -DnewVersion=2.4.2.0.0 -DskipTests -Dpython.ver="python >= 2.6" -Drat.skip=true

问题4、findbugsXml.html

[ERROR] Failed to execute goal org.codehaus.mojo:xml-maven-plugin:1.0:transform (default) on project ambari-server: Failed to transform input file /home/kylin/apache-ambari-2.4.2-src/ambari-server/target/findbugs/findbugsXml.html: The entity name must immediately follow the ‘&’ in the entity reference. -> [Help 1] 解决办法1: 重新执行

代码语言:javascript复制
kylin@Ubuntu:~/apache-ambari-2.4.2-src$ mvn -B install package jdeb:jdeb -DnewVersion=2.4.2.0.0 -DskipTests -Dpython.ver="python >= 2.6" -Drat.skip=true

解决办法2: 如果网络情况不好,这一步就很难过去。那只好修改pom.xml文件,将findbugs内容注释掉:

代码语言:javascript复制
kylin@Ubuntu:~/apache-ambari-2.4.2-src/ambari-server$ vim pom.xml
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>findbugs-maven-plugin</artifactId>
        <version>3.0.3</version>
        <configuration>
          <failOnError>false</failOnError>
          <threshold>Low</threshold>
          <findbugsXmlOutputDirectory>${project.basedir}/target/findbugs</findbugsXmlOutputDirectory>
        </configuration>
        <executions>
          <!--  
          <execution>
            <phase>verify</phase>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
          -->
        </executions>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>xml-maven-plugin</artifactId>
        <version>1.0</version>
        <executions>
           <!--
           <execution>
            <phase>verify</phase>
            <goals>
              <goal>transform</goal>
            </goals>
          </execution>
          -->
        </executions>

问题5、 is not a valid ‘control’ directory

参考:https://issues.apache.org/jira/browse/AMBARI-12977

问题5.1 ambari-metrics-grafana

Caused by: org.vafer.jdeb.PackagingException: “/home/kylin/apache-ambari-2.4.2-src/ambari-metrics/ambari-metrics-grafana/src/main/package/deb/control” is not a valid ‘control’ directory)

kylin@Ubuntu:~/apache-ambari-2.4.2-src/ambari-metrics/ambari-metrics-grafana$ vim pom.xml 在最后添加一个添加,如下代码

代码语言:javascript复制
      <plugin>
         <groupId>org.vafer</groupId>
         <artifactId>jdeb</artifactId>
         <version>1.0.1</version>
         <executions>
           <execution>
             <!--Stub execution on direct plugin call - workaround for ambari deb build process-->
             <id>stub-execution</id>
             <phase>none</phase>
             <goals>
               <goal>jdeb</goal>
             </goals>
           </execution>
         </executions>
         <configuration>
           <skip>true</skip>
           <attach>false</attach>
           <submodules>false</submodules>
           <controlDir>${project.basedir}/../src/main/package/deb/control</controlDir>
         </configuration>
       </plugin>

    </plugins>

  </build>
问题5.2 ambari-funtest

[ERROR] Failed to create debian package /home/kylin/apache-ambari-2.4.2-src/ambari-funtest/target/ambari-funtest_2.4.2.0.0_all.deb org.vafer.jdeb.PackagingException: “/home/kylin/apache-ambari-2.4.2-src/ambari-funtest/src/main/package/deb/control” is not a valid ‘control’ directory)

解决办法:在上面添加一个元素 kylin@Ubuntu:~/apache-ambari-2.4.2-src/ambari-funtest$ vi pom.xml

代码语言:javascript复制
      <plugin>
         <groupId>org.vafer</groupId>
         <artifactId>jdeb</artifactId>
         <version>1.0.1</version>
         <executions>
           <execution>
             <!--Stub execution on direct plugin call - workaround for ambari deb build process-->
             <id>stub-execution</id>
             <phase>none</phase>
             <goals>
               <goal>jdeb</goal>
             </goals>
           </execution>
         </executions>
         <configuration>
           <skip>true</skip>
           <attach>false</attach>
           <submodules>false</submodules>
           <controlDir>${project.basedir}/../src/main/package/deb/control</controlDir>
         </configuration>
       </plugin>

    </plugins>
    <resources>
      <resource>
问题5.3 ambari-logsearch

[ERROR] Failed to execute goal org.vafer:jdeb:1.0.1:jdeb (default-cli) on project ambari-logsearch: Failed to create debian package /home/kylin/apache-ambari-2.4.2-src/ambari-logsearch/target/ambari-logsearch_2.4.2.0.0_all.deb: “/home/kylin/apache-ambari-2.4.2-src/ambari-logsearch/src/main/package/deb/control” is not a valid ‘control’ directory) -> [Help 1]

解决办法:在上面添加一个元素

代码语言:javascript复制
kylin@Ubuntu:~/apache-ambari-2.4.2-src/ambari-logsearch$ vim pom.xml
       <plugin>
         <groupId>org.vafer</groupId>
         <artifactId>jdeb</artifactId>
         <version>1.0.1</version>
         <executions>
           <execution>
             <!--Stub execution on direct plugin call - workaround for ambari deb build process-->
             <id>stub-execution</id>
             <phase>none</phase>
             <goals>
               <goal>jdeb</goal>
             </goals>
           </execution>
         </executions>
         <configuration>
           <skip>true</skip>
           <attach>false</attach>
           <submodules>false</submodules>
           <controlDir>${project.basedir}/../src/main/package/deb/control</controlDir>
         </configuration>
       </plugin>

    </plugins>
  </build>

4、编译完成

代码语言:javascript复制
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] Ambari Main ....................................... SUCCESS [1.620s]
[INFO] Apache Ambari Project POM ......................... SUCCESS [0.078s]
[INFO] Ambari Web ........................................ SUCCESS [59.983s]
[INFO] Ambari Views ...................................... SUCCESS [0.906s]
[INFO] Ambari Admin View ................................. SUCCESS [19.604s]
[INFO] ambari-metrics .................................... SUCCESS [0.434s]
[INFO] Ambari Metrics Common ............................. SUCCESS [0.421s]
[INFO] Ambari Metrics Hadoop Sink ........................ SUCCESS [2.242s]
[INFO] Ambari Metrics Flume Sink ......................... SUCCESS [1.049s]
[INFO] Ambari Metrics Kafka Sink ......................... SUCCESS [0.697s]
[INFO] Ambari Metrics Storm Sink ......................... SUCCESS [2.175s]
[INFO] Ambari Metrics Storm Sink (Legacy) ................ SUCCESS [1.617s]
[INFO] Ambari Metrics Collector .......................... SUCCESS [13.404s]
[INFO] Ambari Metrics Monitor ............................ SUCCESS [1.155s]
[INFO] Ambari Metrics Grafana ............................ SUCCESS [15.134s]
[INFO] Ambari Metrics Assembly ........................... SUCCESS [1:38.729s]
[INFO] Ambari Server ..................................... SUCCESS [2:03.242s]
[INFO] Ambari Functional Tests ........................... SUCCESS [0.445s]
[INFO] Ambari Agent ...................................... SUCCESS [19.449s]
[INFO] Ambari Client ..................................... SUCCESS [0.021s]
[INFO] Ambari Python Client .............................. SUCCESS [0.741s]
[INFO] Ambari Groovy Client .............................. SUCCESS [3.822s]
[INFO] Ambari Shell ...................................... SUCCESS [0.056s]
[INFO] Ambari Python Shell ............................... SUCCESS [0.744s]
[INFO] Ambari Groovy Shell ............................... SUCCESS [1.118s]
[INFO] ambari-logsearch .................................. SUCCESS [0.014s]
[INFO] Ambari Logsearch Appender ......................... SUCCESS [0.287s]
[INFO] Ambari Logsearch Solr Client ...................... SUCCESS [1.501s]
[INFO] Ambari Logsearch Portal ........................... SUCCESS [3:58.085s]
[INFO] Ambari Logsearch Log Feeder ....................... SUCCESS [7:39.905s]
[INFO] Ambari Logsearch Assembly ......................... SUCCESS [0.155s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 17:49.903s
[INFO] Finished at: Wed Mar 01 15:43:16 CST 2017
[INFO] Final Memory: 231M/1188M
[INFO] ------------------------------------------------------------------------

备注:

Ambari Server will create following packages

  • RPM will be created under
  • AMBARI_DIR/ambari-server/target/rpm/ambari-server/RPMS/noarch.
  • DEB will be created under AMBARI_DIR/ambari-server/target/

Ambari Agent will create following packages

  • RPM will be created under
  • AMBARI_DIR/ambari-agent/target/rpm/ambari-agent/RPMS/x86_64.
  • DEB will be created under AMBARI_DIR/ambari-agent/target

Ubuntu 14 1)Ambari Repositories

Base URL http://public-repo-1.hortonworks.com/ambari/ubuntu14/2.x/updates/2.4.2.0

Repo File http://public-repo-1.hortonworks.com/ambari/ubuntu14/2.x/updates/2.4.2.0/ambari.list

Tarball md5 http://public-repo-1.hortonworks.com/ambari/ubuntu14/2.x/updates/2.4.2.0/ambari-2.4.2.0-ubuntu14.tar.gz

2)HDP 2.5 Repositories

Repo File http://public-repo-1.hortonworks.com/HDP/ubuntu14/2.x/updates/2.5.3.0/hdp.list

Tarball md5 http://public-repo-1.hortonworks.com/HDP/ubuntu14/2.x/updates/2.5.3.0/HDP-2.5.3.0-ubuntu14-deb.tar.gz

Tarball md5 http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.21/repos/ubuntu14/HDP-UTILS-1.1.0.21-ubuntu14.tar.gz

0 人点赞