前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Ambari2.7整体编译+安装使用

Ambari2.7整体编译+安装使用

原创
作者头像
create17
修改2018-12-21 10:36:30
4.5K0
修改2018-12-21 10:36:30
举报

最近Ambari发布了新版本——v2.7.1,支持HDP_3.0.1版本,较Ambari2.6相比,最直观的感觉就是Web UI有了很大的改变,更加的美观;支持的hadoop相关组件,也是较新的版本;同时也增加了很多新特性等等,好处多多,首先来了解一下整体编译,毕竟整体编译过了,才能进行二次开发

一、获取Ambari2.7.1源码
代码语言:javascript
复制
wget http://www.apache.org/dist/ambari/ambari-2.7.1/apache-ambari-2.7.1-src.tar.gz
tar zxvf apache-ambari-2.7.1-src.tar.gz
二、搭建编译环境

搭建编译环境需要下载的依赖安装包,在我的云盘已经保存好了,详情点击下载,链接: https://pan.baidu.com/s/13artwjfgi7ikJiKIBbzb7w 提取码: fgia

1. jdk、maven、nodejs、brunch下载

详情请点击:java、nodejs、brunch、maven安装

2. python 2.6(系统自带)
3. 安装rpmbuild
代码语言:javascript
复制
yum install rpm-build
4. 安装g++
代码语言:javascript
复制
yum install gcc-c++
5. 安装python-devel
代码语言:javascript
复制
yum install python-devel
6. 安装bower、gulp
代码语言:javascript
复制
npm install -g bowernpm install -g gulp
7. 安装git
代码语言:javascript
复制
yum install git
三、提前下载并设置

有些包比较大,或者编译时下载时间较长,可以提前下载到本地目录,再修改pom.xml文件指定到本地目录

1. hbase tar包下载
代码语言:javascript
复制
mkdir -p /tmp/hbase
wget -O /tmp/hbase/hbase-2.0.0.3.0.0.0-1634-bin.tar.gz  http://dev.hortonworks.com.s3.amazonaws.com/HDP/centos7/3.x/BUILDS/3.0.0.0-1634/tars/hbase/hbase-2.0.0.3.0.0.0-1634-bin.tar.gz
2. grafana tar包下载
代码语言:javascript
复制
mkdir -p /tmp/grafana
wget -O /tmp/grafana/grafana-2.6.0.linux-x64.tar.gz  https://grafanarel.s3.amazonaws.com/builds/grafana-2.6.0.linux-x64.tar.gz
四、设置版本信息
代码语言:javascript
复制
chmod -R 777 apache-ambari-2.7.1-src
cd apache-ambari-2.7.1-src
mvn versions:set -DnewVersion=2.7.1.0.0
pushd ambari-metrics
mvn versions:set -DnewVersion=2.7.1.0.0
popd
五、编译命令

执行编译命令之前,请先看一遍问题集锦

代码语言:javascript
复制
mvn -B -X -e install package rpm:rpm -DnewVersion=2.7.1.0.0 -DskipTests -Dpython.ver="python >= 2.6" -Drat.skip=true -Preplaceurl

编译成功,如下图所示:

六、问题集锦

1. Too many files with unapproved license

解决办法:

由于许可license没有造成的,需要再mvn命令中增加如下内容:

代码语言:javascript
复制
-Drat.skip=true
2. Unexpected character 0x0 in identifier

编译ambari-utility,报错信息:

说明:

出错的Java文件编码和CheckStyle设置的编码不同。CheckStyle里设置的编码是UTF-8

解决办法:

将“._xxx.java”文件直接删除即可。

(注:其实有很多类似这样的文件报错,将类似这样的文件删除掉即可)

3. Download HBase超时

问题:

解决办法:

将./ambari-metrics/pom.xml的

代码语言:javascript
复制
http://dev.hortonworks.com.s3.amazonaws.com/HDP/centos7/3.x/BUILDS/3.0.0.0-1634/tars/hbase/hbase-2.0.0.3.0.0.0-1634-bin.tar.gz

替换为本地路径

代码语言:javascript
复制
file:///tmp/hbase/hbase-2.0.0.3.0.0.0-1634-bin.tar.gz
4. Download Grafana超时

问题:

解决办法:

将./ambari-metrics/pom.xml的

代码语言:javascript
复制
https://grafanarel.s3.amazonaws.com/builds/grafana-2.6.0.linux-x64.tar.gz

替换为本地路径

代码语言:javascript
复制
file:///tmp/grafana/grafana-2.6.0.linux-x64.tar.gz

如图所示:

5. Unable to build the RPM

问题:

Unable to build the RPM: Error while executing process. Cannot run program "rpmbuild"

解决办法:

代码语言:javascript
复制
rpm -qa | grep rpm-build #检测是否已安装rpmbuildyum install rpm-build    #如果没安装则手动安装
6. buildNumber : unbound variable
代码语言:javascript
复制
vim /usr/sbin/ambari-server将${buildNumber}这行换成 HASH="${VERSION}"

该文件源码位置位于:./ambari-server/sbin/ambari-server,修改后,在进行编译,可以一劳永逸。

7. ambari卡在设置集群名称的下一步

详情见下图:设置好集群名称,卡在了 NEXT这一步,换句话说,就是select version那个页面不能被我们访问到。

分析:

进入 selectversion页面是访问的 HDP-3.0,但是发现 /var/lib/ambari-server/resources/stacks/HDP/没有3.0这个目录,所以 selectversion页面打不开。

解决办法:

链接: https://pan.baidu.com/s/1lsR04M6n7_zNEy2jANFrpQ 提取码: tzre

下载文件并解压至 /var/lib/ambari-server/resources/stacks/HDP/

可将 3.0文件添加到源码处: ./ambari-server/src/main/resources/stacks/HDP,再进行编译,可以一劳永逸。

七、安装编译成功的rpm包

因为博主当时在二次开发ambari-server,改好源码后,需要对ambari-server编译安装,为了节省时间,所以写了两个脚本,用于安装ambari-server。 执行以下脚本的前提条件是:必须拥有ambari环境,如果搭建请参考:Ambari2.7.1安装配置

1. reSetupAmbariServer.sh
代码语言:javascript
复制
#!/bin/bash
# 判断该脚本所在的绝对路径
bin=`dirname $0`
bin=`cd "$bin";pwd`
# 停止ambari-server服务
echo -e "\e[0;32;1m====停止ambari-server服务====\e[0m"
ambari-server stop
# 卸载当前ambari-server服务
echo -e "\e[0;32;1m====卸载当前ambari-server服务====\e[0m"
yum remove -y ambari-server
# 安装新的ambari-server
echo -e "\e[0;32;1m====安装新的ambari-server====\e[0m"
yum install -y /lyz/compile/XM4.0/ambari-server/target/rpm/ambari-server/RPMS/x86_64/ambari-server-2.7.1.0-0.x86_64.rpm
# ambari安装
echo -e "\e[0;32;1m====start ambari-server setup====\e[0m"
chmod +x $bin/ambariSetup.sh
expect $bin/ambariSetup.sh
# 向配置文件内添加jdbc.path
echo -e "\e[0;32;1m====向配置文件内添加jdbc.path====\e[0m"
echo 'server.jdbc.driver.path=/usr/share/java/mysql-connector-java.jar'>>/etc/ambari-server/conf/ambari.properties
# 安装ambari
ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar
# 启动ambri-server
echo -e "\e[0;32;1m====启动ambri-server====\e[0m" 
ambari-server start
2. ambariSetup.sh
代码语言:javascript
复制
#!/usr/bin/expect
# excute interactive command
spawn echo "*******************start ambari-server setup*****************"
set timeout 300
set javahome /usr/java/jdk1.8.0_151
set mysqlport 3306
set databasename ambari
set username root
set dbpass root123		
spawn ambari-server setup
#expect {
#"continue*" { send "y\r"; exp_continue}
#"daemon*" { send "y\r" }
#}
expect "daemon*"
send "n\r"
# expect "*?"
# send "y\r"
expect "choice (*"
send "2\r"
expect "JAVA_HOME:"
send "$javahome\r"
expect "LZO packages*"
send "n\r"
expect "configuration*"
send "y\r"
expect "choice (*"
send "3\r"
expect "Hostname*"
send "\r"
expect "Port (*"
send "$mysqlport\r"
expect "Database name (*"
send "$databasename\r"
expect "Username (*"
send "$username\r"
expect "Database Password (*"
send "$dbpass\r"
expect "password*"
send "$dbpass\r"
expect "mysql-connector-java.jar*"
send "y\r"
expect "properties*"
send "y\r"
expect eof

脚本执行入口为:sh reSetupAmbariServer.sh

八、使用samba调试修改代码

samba可以使linux上的代码作为网络驱动器,映射到windows上。

Samba安装配置:点击这里


更多精彩干货内容,请关注微信公众号,谢谢

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、获取Ambari2.7.1源码
  • 二、搭建编译环境
    • 1. jdk、maven、nodejs、brunch下载
      • 2. python 2.6(系统自带)
        • 3. 安装rpmbuild
          • 4. 安装g++
            • 5. 安装python-devel
              • 6. 安装bower、gulp
                • 7. 安装git
                • 三、提前下载并设置
                  • 1. hbase tar包下载
                    • 2. grafana tar包下载
                    • 四、设置版本信息
                    • 五、编译命令
                      • 1. Too many files with unapproved license
                        • 2. Unexpected character 0x0 in identifier
                          • 3. Download HBase超时
                            • 4. Download Grafana超时
                              • 5. Unable to build the RPM
                                • 6. buildNumber : unbound variable
                                  • 7. ambari卡在设置集群名称的下一步
                                  • 七、安装编译成功的rpm包
                                    • 1. reSetupAmbariServer.sh
                                      • 2. ambariSetup.sh
                                      • 八、使用samba调试修改代码
                                      相关产品与服务
                                      Grafana 服务
                                      Grafana 服务(TencentCloud Managed Service for Grafana,TCMG)是腾讯云基于社区广受欢迎的开源可视化项目 Grafana ,并与 Grafana Lab 合作开发的托管服务。TCMG 为您提供安全、免运维 Grafana 的能力,内建腾讯云多种数据源插件,如 Prometheus 监控服务、容器服务、日志服务 、Graphite 和 InfluxDB 等,最终实现数据的统一可视化。
                                      领券
                                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档