ambari 2.7 编译与安装

1.环境准备

安装好JDK,maven,ant,postgresql,以及nodejs,npm和bower。参见博主的相关博客。注意部分组件的下载需要科学上网。

 ubuntu 18.04 LTS 安装 java10 及问题说明

 java综合环境运维

nodejs(包含npm、bower)的安装

centos下postgres的安装

安装rpm,rpm-build,git

sudo yum install rpm
sudo yum install -y rpm-build.x86_64
sudo yum install git

安装gcc,python环境,包管理工具以及依赖项

sudo yum install gcc
sudo yum install gcc-c++
sudo yum -y install python-devel

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
sudo -H python get-pip.py
sudo -H pip install psutil

安装docker虚拟化工具,与配套的weave等网络工具,其中weave建议放置于/usr/bin下,避免使用sudo权限运行时提示找不到命令。

sudo yum install docker
sudo curl -L git.io/weave -o /usr/bin/weave
sudo chmod a+x /usr/local/bin/weave

补充知识:repo文件是Fedora中yum源(软件仓库)的配置文件,通常一个repo文件定义了一个或者多个软件仓库的细节内容,例如我们将从哪里下载需要安装或者升级的软件包,repo文件中的设置内容将被yum读取和应用。

2.下载所需文件

到官网http://ambari.apache.org/ 打开最新版本的guide 下载ambari文件并解压,例如 

wget http://mirrors.hust.edu.cn/apache/ambari/ambari-2.7.0/apache-ambari-2.7.0-src.tar.gz
tar xfvz apache-ambari-2.7.0-src.tar.gz

使用mvn设置版本,

cd apache-ambari-2.7.0-src
mvn versions:set -DnewVersion=2.7.0.0.0

mvn不仅会设置版本,而且会自动下载相关的依赖,进行编译,提示 BUILD SUCCESS 即为成功。

然后设置ambari-metrics的版本。

pushd ambari-metrics
mvn versions:set -DnewVersion=2.7.0.0.0
popd

3.进行编译

在centos中使用下面的命令进行编译

mvn -B clean install rpm:rpm -DnewVersion=2.7.0.0.0 -DbuildNumber=631319b00937a8d04667d93714241d2a0cb17275 -DskipTests -Dpython.ver="python >= 2.6"

在ubuntu中使用下面的命令进行编译

mvn -B clean install jdeb:jdeb -DnewVersion=2.7.0.0.0 -DbuildNumber=631319b00937a8d04667d93714241d2a0cb17275 -DskipTests -Dpython.ver="python >= 2.6"

mvn clean install是一个集成的命令,包括如下步骤

使用清理插件:maven-clean-plugin:执行清理删除已有target目录;
使用资源插件:maven-resources-plugin:执行资源文件的处理;
使用编译插件:maven-compiler-plugin:编译所有源文件生成class文件至target\classes目录下;
使用资源插件:maven-resources-plugin:执行测试资源文件的处理;
使用编译插件:maven-compiler-plugin:编译测试目录下的所有源代码;
使用插件:maven-surefire-plugin:运行测试用例;
使用插件:maven-jar-plugin:2.4对编译后生成的文件进行打包,包名称默认为:artifactId-version。

-B参数:该参数表示让Maven使用批处理模式构建项目,能够避免一些需要人工参与交互而造成的挂起状态。

如果每次编译报错之后重新编译提示,则在命令中加上 -Drat.skip=true

mvn -B clean install rpm:rpm -DnewVersion=2.7.0.0.0 -DbuildNumber=631319b00937a8d04667d93714241d2a0cb17275 -DskipTests -Dpython.ver="python >= 2.6" -Drat.skip=true

提示BUILD SUCCESS  并且所有子项也为SUCCESS,文末附有常见编译错误及解决方案

4.进行安装

进入编译生成的文件目录,具体的随环境有些差异,类似的:

ambari-server/target/rpm/ambari-server/RPMS/noarch/

ambari-server/target/rpm/ambari-server/RPMS/x86_64

sudo yum install ambari-server*.rpm

配置需要的postgresql数据库,命令如下,如此设置用户名和密码是为了和ambari的默认设置一致。

参见http://www.ruanyifeng.com/blog/2013/12/getting_started_with_postgresql.html

sudo su - postgres
psql
CREATE USER ambari WITH PASSWORD 'bigdata';
CREATE DATABASE ambari OWNER ambari;
GRANT ALL PRIVILEGES ON DATABASE ambari to ambari;

安装成功后,进入设置

ambari-server setup

会询问较多的问题,英文表述也很明确,关键的问题摘录如下:

 Checking JDK...Do you want to change Oracle JDK [y/n] (n)? y

设置JDK,选择Custom JDK并输入$JAVA_HOME的值。

Configuring database...==============================================================================
Choose one of the following options:

设置数据库,选择[4] - PostgreSQL,并填写之前设置的用户名密码,默认值一致的无需更改。

配置完成后,登录postgres数据库,创建ambari所需的表,执行

\i /var/lib/ambari-server/resources/Ambari-DDL-Postgres-CREATE.sql;

4.启动ambari

sudo ambari-server start

日志地址与成功信息如下:

Server PID at: /var/run/ambari-server/ambari-server.pid
Server out at: /var/log/ambari-server/ambari-server.out
Server log at: /var/log/ambari-server/ambari-server.log
Waiting for server start..............................
Server started listening on 8080

DB configs consistency check found warnings. See /var/log/ambari-server/ambari-server-check-database.log for more details.
Ambari Server 'start' completed successfully.

成功启动后在浏览器输入Ambari地址:http://localhost:8080/

 

常见错误:

1.Failed to execute goal org.codehaus.mojo:rpm-maven-plugin:2.0.1:rpm (default-cli) on project ambari: RPM build execution returned: '127' executing '/bin/sh -c cd /home/hadoop/apache-ambari-2.5.0-src/target/rpm/ambari/SPECS && rpmbuild -bb --buildroot /home/hadoop/apache-ambari-2.5.0-src/target/rpm/ambari/buildroot --define '_topdir /home/hadoop/apache-ambari-2.5.0-src/target/rpm/ambari' --target noarch-redhat-linux ambari.spec' -> [Help 1]

原因是rpm和rpm未安装,参加步骤1进行安装。

2.Failed to execute goal au.com.alderaan:eclipselink-staticweave-maven-plugin:1.0.4:weave (default) on project ambari-server: eclipselink-staticweave-maven NullPointerException

原因是java版本过高,建议使用java8

3.The parameters 'group' for goal org.codehaus.mojo:rpm-maven-plugin:2.1.4:rpm are missing or invalid

原因是pom文件缺少相关的依赖,在插件中加入下面的项目

	  <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>rpm-maven-plugin</artifactId>
        <version>2.2.0</version>
        <executions>
          <execution>
            <id>generate-rpm</id>
            <goals>
              <goal>rpm</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <license>GPL (c) 2005, SWWDC</license>
          <distribution>Trash 2005</distribution>
          <group>Application/Collectors</group>
		</configuration>
      </plugin>

4.Could not resolve dependencies for project org.apache.ambari:ambari-server:jar:2.2.1.1:

原因是版本号设置不对,进入子项目手动设置,并且重新编译该完整子目录,例如Ambari Logsearch Log Feeder编译出错,需要设置Ambari Logsearch Log并从此处开始编译,可以使用 -rf 恢复 -U强制重新解析 pom

pushd ambari-logsearch
mvn versions:set -DnewVersion=2.7.0.0.0
popd

5./src/main/java/org/apache/ambari/logfeeder/metrics/LogFeederAMSClient.java:[102,3] method does not override or implement a method from a supertype

原因是自动下载的jar包版本不对,重新设置该项的版本。

6.[ERROR] Failed to execute goal on project ambari-metrics-kafka-sink: Could not resolve dependencies for project org.apache.ambari:ambari-metrics-kafka-sink:jar:2.0.0-0: The following artifacts could not be resolved: javax.jms:jms:jar:1.1, com.sun.jdmk:jmxtools:jar:1.2.1, com.sun.jmx:jmxri:jar:1.2.1: Could not transfer artifact javax.jms:jms:jar:1.1 from/to java.net (https://maven-repository.dev.java.net/nonav/repository): No connector available to access repository java.net (https://maven-repository.dev.java.net/nonav/repository) of type legacy using the available factories WagonRepositoryConnectorFactory

原因是缺少组件

The work around is to manually install the three missing artifacts:

mvn install:install-file -Dfile=jms-1.1.pom -DgroupId=javax.jms -DartifactId=jms -Dversion=1.1 -Dpackaging=jar
mvn install:install-file -Dfile=jmxtools-1.2.1.pom -DgroupId=com.sun.jdmk -DartifactId=jmxtools -Dversion=1.2.1 -Dpackaging=jar
mvn install:install-file -Dfile=jmxri-1.2.1.pom -DgroupId=com.sun.jmx -DartifactId=jmxri -Dversion=1.2.1 -Dpackaging=jar
参见:https://cwiki.apache.org/confluence/display/AMBARI/Installation+Guide+for+Ambari+2.7.0

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值