admin管理员组文章数量:1028443
大数据管理平台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等内容:
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
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 删除数据管理部署配置入门实践大数据管理平台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等内容:
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
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 删除数据管理部署配置入门实践本文标签: 大数据管理平台Ambari30最新版本二次开发入门实践指南
版权声明:本文标题:大数据管理平台Ambari3.0最新版本二次开发入门实践指南 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://it.en369.cn/jiaocheng/1747517930a2170274.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论