最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

大数据管理平台Ambari3.0最新版本二次开发入门实践指南

网站源码admin2浏览0评论

大数据管理平台Ambari3.0最新版本二次开发入门实践指南

前言

Apache Ambari项目初期旨在通过开发用于配置、管理、监控Hadoop集群的软件,使Hadoop集群管理更加简洁方便。因为Ambari灵活的插件化设计机制,现在已经广泛用于支持更多其他大数据组件的管理,用户可以根据需要自定义组件。Amabri提供直观且便于使用的Web管理界面,也提供RESTful API支持。

数十年来,Ambari已经被很多大数据平台厂商(如Hortonworks)产品集成使用,本文主要介绍Ambari3.0最新版本的源码编译、安装部署、配置管理、组件集成等内容。欢迎关注微信公众号:大数据从业者

源码编译

工欲善其事必先利其器,对于二次开发,源码编译作为入门步骤、必不可少。具体的源码编译打包命令如下:(自定义是否打rpm包)

代码语言:javascript代码运行次数:0运行复制
mvn -B -T 2C clean install package rpm:rpm -Drat.skip=true -DskipTests -Dmaven.test.skip=true -Dfindbugs.skip=true -Dcheckstyle.skip=true

详细报错信息如下:

代码语言:javascript代码运行次数:0运行复制
Unable to build the RPM: Error while executing process. Cannot run program "rpmbuild" (in directory "/home/mySourceCode/ambari/target/rpm/ambari/SPECS"): error=2, No such file or directory

根本原因:缺少rpmbuild命令

解决方法:

代码语言:javascript代码运行次数:0运行复制
yum search rpm-build
yum install rpm-build

查看ambari-server编译打包结果(rpm、tar):

代码语言:javascript代码运行次数:0运行复制
ll ambari-server/target/rpm/ambari-server/RPMS/x86_64
ll ambari-server/target/

查看ambari-server rpm对应spec文件,可以知道具体的安装操作过程:

代码语言:javascript代码运行次数:0运行复制
ll ambari-server/target/rpm/ambari-server/SPECS/

查看ambari-agent编译打包结果(rpm、tar):

查看ambari-agent rpm对应spec文件,可以知道具体的安装操作过程:

代码语言:javascript代码运行次数:0运行复制
ll ambari-agent/target/rpm/ambari-agent/SPECS/

RPM方式部署

设置远端yum repo

代码语言:javascript代码运行次数:0运行复制
vim /etc/yum.repos.d/ambari_remote_repo.repo
[ambari_remote_repo]
name=ambari
baseurl=http://FelixZhnew/ambariRepo/
enabled=1
gpgcheck=0 

设置本地yum repo(非必选,适用于单节点)

代码语言:javascript代码运行次数:0运行复制
vim /etc/yum.repos.d/ambari_repo.repo
[ambari_local_repo]
name=Ambari Local Repository
baseurl=file:///home/ambariRepo
enabled=1
gpgcheck=0 

制作rpm repo

代码语言:javascript代码运行次数:0运行复制
mkdir /home/ambariRepo
cp ambari-server/target/rpm/ambari-server/RPMS/x86_64/ambari-server-3.0.0.0-0.x86_64.rpm /home/ambariRepo/
cp ambari-agent/target/rpm/ambari-agent/RPMS/x86_64/ambari-agent-3.0.0.0-0.x86_64.rpm /home/ambariRepo/
cd /home/ambariRepo/
createrepo . 

部署配置httpd暴漏repo(也可以用nginx等)

代码语言:javascript代码运行次数:0运行复制
yum install httpd
vim /etc/httpd/conf/httpd.conf

配置ServerName、DocumentRoot、Directory等内容:

代码语言:javascript代码运行次数:0运行复制
systemctl start httpd
 
yum clean all
yum repolist

安装部署

代码语言:javascript代码运行次数:0运行复制
yum install ambari-server
yum install ambari-agent 

Tar方式部署

注意:适用于研发调试环境

根据ambari-server spec文件梳理整合的ambari-server安装过程详细流程如下:

代码语言:javascript代码运行次数:0运行复制
cd ambari-server/target/ambari-server-3.0.0.0.0-dist
cp -r etc/init /etc/
cp etc/init.d/ambari-server /etc/init.d/
cp -r etc/ambari-server/ /etc/
cp usr/sbin/* /usr/sbin/
cp -r usr/lib/ambari-server /usr/lib
cp -r var/lib/ambari-server /var/lib/
sh /var/lib/ambari-server/install-helper.sh install

根据ambari-agent spec文件梳理整合的ambari-agent安装过程详细流程如下:

代码语言:javascript代码运行次数:0运行复制
cd ambari-agent/target/ambari-agent-3.0.0.0.0
cp etc/init/ambari-agent.conf /etc/init/
cp etc/init.d/ambari-agent /etc/init.d
cp -r etc/ambari-agent/ /etc/
cp -r usr/lib/ambari-agent/ /usr/lib
cp -r var/lib/ambari-agent/ /var/lib/
/var/lib/ambari-agent/install-helper.sh install

数据库部署

可以使用mysql或者postgresql两种类型数据库,笔者这里使用mysql。

代码语言:javascript代码运行次数:0运行复制
yum install -y python3-psycopg2
yum -y install .noarch.rpm
rpm --import 
yum -y install mysql-server
systemctl start mysqld.service
systemctl enable mysqld.service

修改数据库默认密码:

代码语言:javascript代码运行次数:0运行复制
sudo grep 'temporary password' /var/log/mysqld.log
ALTER USER 'root'@'localhost' IDENTIFIED BY 'FelixZh#2024';
FLUSH PRIVILEGES; 

创建用户及相关数据库

代码语言:javascript代码运行次数:0运行复制
-- Create Ambari user and grant privileges
CREATE USER 'ambari'@'localhost' IDENTIFIED BY 'FelixZh#2024';
GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'localhost';
CREATE USER 'ambari'@'%' IDENTIFIED BY 'FelixZh#2024';
GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'%';
-- Create required databases
CREATE DATABASE ambari CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE DATABASE hive;
CREATE DATABASE ranger;
CREATE DATABASE rangerkms;
-- Create service users
CREATE USER 'hive'@'%' IDENTIFIED BY 'FelixZh#2024';
GRANT ALL PRIVILEGES ON hive.* TO 'hive'@'%';
CREATE USER 'ranger'@'%' IDENTIFIED BY 'FelixZh#2024';
GRANT ALL PRIVILEGES ON *.* TO 'ranger'@'%' WITH GRANT OPTION;
CREATE USER 'rangerkms'@'%' IDENTIFIED BY 'FelixZh#2024';
GRANT ALL PRIVILEGES ON rangerkms.* TO 'rangerkms'@'%';

AmbariServer配置启动

导入ambari schema到上述部署的数据库中

代码语言:javascript代码运行次数:0运行复制
mysql -uambari -pFelixZh#2024 ambari < /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql 

配置ambari-server

代码语言:javascript代码运行次数:0运行复制
mkdir /usr/share/java
wget .0.28/mysql-connector-java-8.0.28.jar -O /usr/share/java/mysql-connector-java.jar
ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar
echo "server.jdbc.url=jdbc:mysql://localhost:3306/ambari?useSSL=true&verifyServerCertificate=false&enabledTLSProtocols=TLSv1.2" >> /etc/ambari-server/conf/ambari.properties
ambari-server setup -s \
  -j /home/pkg/jdk1.8.0_221/ \
  --ambari-java-home /home/pkg/jdk-17.0.2/ \
  --database=mysql \
  --databasehost=localhost \
  --databaseport=3306 \
  --databasename=ambari \
  --databaseusername=ambari \
  --databasepassword=FelixZh#2024

启动ambari-sevrer

代码语言:javascript代码运行次数:0运行复制
ambari-server start
代码语言:javascript代码运行次数:0运行复制
http://10.121.198.221:8080/
admin/admin

AmbariAgent配置启动

配置agent上报server的主机名

代码语言:javascript代码运行次数:0运行复制
vim /etc/ambari-agent/conf/ambari-agent.ini
hostname=FelixZhnew

启动ambari-agent

代码语言:javascript代码运行次数:0运行复制
ambari-agent start

Ambari组件集成

目前Ambari3.0版本stacks已经删除HDP组件集成的相关内容,主要是因为HDP被CDH收购之后不再开源了。所以,目前只保留BIGTOP组件集成。BIGTOP组件集成的安装部署操作如下:

代码语言:javascript代码运行次数:0运行复制
cd /home/ambariRepo
wget -r -np -nH --cut-dirs=4 --reject 'index.html*' .3.0/rocky8/

根据Ambari向导安装组件即可,效果演示如下:

BIGTOP适配的组件有限,目前支持列表如下(对于不支持的组件,需要二次开发集成合入):

注意:本人提供免费的HDP版本资源包,如有需要请自行到公众号大数据从业者发送 hdp 领取下载地址。

结束

本文主要介绍Ambari3.0版本源码编译、安装部署、配置管理、组件集成等内容。二次开发主要集中在stacks中服务包内容和对应服务的RPM包修改。后续更新二次开发相关内容。欢迎关注大数据从业者公众号!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2025-04-25,如有侵权请联系 cloudcommunity@tencent 删除数据管理部署配置入门实践
发布评论

评论列表(0)

  1. 暂无评论