赞
踩
最近Ambari发布了新版本——v2.7.1,支持HDP_3.0.1版本,较Ambari2.6相比,最直观的感觉就是Web UI有了很大的改变,更加的美观;支持的hadoop相关组件,也是较新的版本;同时也增加了很多新特性等等,好处多多,首先来了解一下整体编译,毕竟整体编译过了,才能进行二次开发
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
详情请点击:java、nodejs、brunch、maven安装
yum install rpm-build
yum install gcc-c++
yum install python-devel
npm install -g bower
npm install -g gulp
yum install git
有些包比较大,或者编译时下载时间较长,可以提前下载到本地目录,再修改pom.xml文件指定到本地目录
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
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
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
执行编译命令之前,请先看一遍问题集锦
mvn -B -X -e install package rpm:rpm -DnewVersion=2.7.1.0.0 -DskipTests -Dpython.ver="python >= 2.6" -Drat.skip=true -Preplaceurl
编译成功,如下图所示:
解决办法:
由于许可license没有造成的,需要再mvn命令中增加如下内容:
-Drat.skip=true
编译ambari-utility,报错信息:
说明:
出错的Java文件编码和CheckStyle设置的编码不同。CheckStyle里设置的编码是UTF-8
解决办法:
将“._xxx.java”文件直接删除即可。
(注:其实有很多类似这样的文件报错,将类似这样的文件删除掉即可)
问题:
解决办法:
将./ambari-metrics/pom.xml的
<hbase.tar>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</hbase.tar>
替换为本地路径
<hbase.tar>file:///tmp/hbase/hbase-2.0.0.3.0.0.0-1634-bin.tar.gz</hbase.tar>
问题:
解决办法:
将./ambari-metrics/pom.xml的
<grafana.tar>https://grafanarel.s3.amazonaws.com/builds/grafana-2.6.0.linux-x64.tar.gz</grafana.tar>
替换为本地路径
<grafana.tar>file:///tmp/grafana/grafana-2.6.0.linux-x64.tar.gz</grafana.tar>
如图所示:
问题:
Unable to build the RPM: Error while executing process. Cannot run program “rpmbuild”
解决办法:
rpm -qa | grep rpm-build #检测是否已安装rpmbuild
yum install rpm-build #如果没安装则手动安装
vim /usr/sbin/ambari-server
将${buildNumber}这行换成 HASH="${VERSION}"
该文件源码位置位于:./ambari-server/sbin/ambari-server,修改后,在进行编译,可以一劳永逸。
详情见下图:设置好集群名称,卡在了NEXT
这一步,换句话说,就是select version那个页面不能被我们访问到。
分析:
进入select version
页面是访问的HDP-3.0
,但是发现/var/lib/ambari-server/resources/stacks/HDP/
没有3.0这个目录,所以select version
页面打不开。
解决办法:
链接: https://pan.baidu.com/s/1lsR04M6n7_zNEy2jANFrpQ 提取码: tzre
下载文件并解压至/var/lib/ambari-server/resources/stacks/HDP/
可将3.0
文件添加到源码处:./ambari-server/src/main/resources/stacks/HDP
,再进行编译,可以一劳永逸。
因为博主当时在二次开发ambari-server,改好源码后,需要对ambari-server编译安装,为了节省时间,所以写了两个脚本,用于安装ambari-server。
执行以下脚本的前提条件是:必须拥有ambari环境,如果搭建请参考:Ambari2.7.1安装配置
#!/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
#!/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可以使linux上的代码作为网络驱动器,映射到windows上。
Samba安装配置:点击这里
更多精彩干货内容,请关注微信公众号,谢谢
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。