1 软件介绍
Ambari是一款用于部署、管理和监控Hadoop集群服务的开源系统,支持Apache Hadoop集群的供应、管理和监控。Ambari已支持大多数Hadoop组件,包括HDFS、MapReduce、Hive、Pig、Hbase、Zookeeper、Sqoop和Hcatalog等。它实现了以下功能:
1)安装一个Hadoop集群:
提供了以向导指引的方式安装一个集群,可以在任意的主机上安装Hadoop服务。
提供了对Hadoop服务的配置功能。
2)管理一个Hadoop集群:
提供了启动、停止等集群管理功能。
3)监控一个Hadoop集群:
提供了一个用于监控Hadoop集群健康状态的仪表盘。
提供了一套健康指标体系来收集监控数据。
提供了一套预警框架,可以结合预定的监控指标实现通知预警。
从设计上看ambari使用的Master/Slaves架构(主、从架构,由一个ambari-server和多个agent组成)。它通过一个server主进程来实现集群的管理和操作命令的发送,而具体的管理动作则由安装在每台目标主机上的agent进程进行执行。例如通过ambari启动的HDFS服务的时候,首先会由ambari-server向安装了HDFS服务所在主机的agent进程发送启动指令,然后再由相关agent进程执行其所在主机的本地命令脚本来启动HDFS的相应服务。
2 适配环境
2.1 操作系统环境
项目 | 版本 |
Kylin Linux Server | release V10 (SP2) /(Sword)-aarch64-Build09/20210524 |
Kernel | 4.19.90-24.4.v2101.ky10.aarch64 |
2.2 硬件环境
节点类型 | ip地址 | 主机名 |
主节点 | 10.1.110.80 | ambari-master |
从节点 | 10.1.110.81 | ambari-slave01 |
从节点 | 10.1.110.82 | ambari-slave02 |
2.3 软件环境
Ambari2.7.5
Hotonworks HDP-3.1.5组件
3 适配步骤
3.1 安装前配置
3.1.1 修改主机名(所有节点)
hostnamectl set-hostname ambari-master
hostnamectl set-hostname ambari-slave01
hostnamectl set-hostname ambari-slave02
vim /etc/hosts
添加内容如下:
10.1.110.80 ambari-master
10.1.110.81 ambari-slave01
10.1.110.82 ambari-slave02
3.1.2 设置免密登录(所有节点)
ssh-keygen -t rsa
ssh-copy-id ambari-master
ssh-copy-id ambari-slave01
ssh-copy-id ambari-slave02
3.1.3 关闭防火墙和selinux(所有节点)
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/enforcing/disabled/' /etc/sysconfig/selinux
getenforce
3.1.4 安装httpd(主节点)
yum -y install httpd
systemctl start httpd
systemctl enable httpd
3.1.5 配置本地源(主节点)
mkdir -p /var/www/html/localrepo/ISO/
mkdir -p /var/www/html/localrepo/HDP_required/
先将Kylin-Server-10-SP2-aarch64-Release-Build09-20210524.iso下载到本地系统上,然后挂载iso至/var/www/html/localrepo/ISO
mount -o loop Kylin-Server-10-SP2-aarch64-Release-Build09-20210524.iso /var/www/html/localrepo/ISO
将给定压缩包hdp_required_RPMS_aarch64.tar.gz解压至/var/www/html/localrepo/HDP_required目录下
tar zxvf hdp_required_RPMS_aarch64.tar.gz -C /var/www/html/localrepo/HDP_required
scp -r HDP_required/ ambari-slave01:~/
scp -r HDP_required/ ambari-slave02:~/
3.1.6修改源文件(所有节点)
cd /etc/yum.repos.d
cp kylin_aarch64.repo kylin_aarch64.repo.bak
vim kylin_aarch64.repo
内容如下:
[ks10-adv-os]
name = Kylin Linux Advanced Server V10 - Os
baseurl = http://10.1.110.80/localrepo/ISO/
gpgcheck = 0
enabled = 1
[HDP_required]
name = HDP_required
baseurl = http://10.1.110.80/localrepo/HDP_required/
gpgcheck = 0
enabled = 1
3.1.7主节点安装python2-dnf(主节点)
cd /var/www/html/localrepo/HDP_required
rpm -Uvh --oldpackage python3-gpgme-1.13.1-5.ky10.aarch64.rpm gpgme-1.13.1-5.ky10.aarch64.rpm
yum install deltarpm -y
cd /var/www/html/localrepo/HDP_required
rpm -Uvh --oldpackage dnf-plugins-core-4.0.11-5.ky10.noarch.rpm python3-dnf-plugins-core-4.0.11-5.ky10.noarch.rpm
rpm -Uvh --oldpackage *0.37.2-2* *4.2.15-7*
rpm -Uvh --oldpackage *4.15.1-12*
yum install python2-rpm
rpm -Uvh --oldpackage ./libcomps-0.1.8-20.ky10.aarch64.rpm ./Packages/python2-libcomps-0.1.8-20.ky10.aarch64.rpm ./python3-libcomps-0.1.8-20.ky10.aarch64.rpm
yum install ./python2-gpgme-1.13.1-5.ky10.aarch64.rpm
yum install python2-dnf -y
3.1.8从节点安装python2-dnf(从节点)
cd HDP_required
vim /etc/yum.repos.d/kylin_aarch64.repo
rpm -Uvh --oldpackage python3-gpgme-1.13.1-5.ky10.aarch64.rpm gpgme-1.13.1-5.ky10.aarch64.rpm
yum install deltarpm -y
rpm -Uvh --oldpackage dnf-plugins-core-4.0.11-5.ky10.noarch.rpm python3-dnf-plugins-core-4.0.11-5.ky10.noarch.rpm
rpm -Uvh --oldpackage *0.37.2-2* *4.2.15-7*
rpm -Uvh --oldpackage *4.15.1-12*
yum install python2-rpm
rpm -Uvh --oldpackage ./libcomps-0.1.8-20.ky10.aarch64.rpm ./Packages/python2-libcomps-0.1.8-20.ky10.aarch64.rpm ./python3-libcomps-0.1.8-20.ky10.aarch64.rpm
yum install ./python2-gpgme-1.13.1-5.ky10.aarch64.rpm
yum install python2-dnf -y
3.1.9 制作ambari和HDP组件的仓库(主节点)
将所需安装包下载到本地
HDP-3.1.5.0-centos7-rpm-aarch64.tar.gz
HDP-UTILS-1.1.0.22-centos7.tar.gz
ambari-2.7.5.0-centos7.tar.gz
1)创建ambari和hdp目录
mkdir -p /var/www/html/hdp/ambari
mkdir -p /var/www/html/hdp/HDP-UTILS-1.1.0.22
解压ambari和HDP组件至对应目录(解压完成后,可以删掉安装包)
tar -zxvf HDP-3.1.5.0-centos7-rpm-aarch64.tar.gz -C /var/www/html/hdp/
tar -zxvf ambari-2.7.5.0-centos7.tar.gz -C /var/www/html/hdp/ambari/
tar -zxvf HDP-UTILS-1.1.0.22-centos7.tar.gz -C /var/www/html/hdp/HDP-UTILS-1.1.0.22/
2)新建repo文件
cd /etc/yum.repos.d/
vim ambari.repo
添加如下内容
[ambari]
name=ambari
baseurl=http://10.1.110.80/hdp/ambari/ambari/
gpgcheck=0
enabled=1
vim HDP.repo
添加如下内容
[HDP]
name=HDP
baseurl=http://10.1.110.80/hdp/HDP/centos7/3.1.5.0-152/gpgcheck=0
enabled=1
vim HDP-UTILS.repo
添加如下内容
[HDP-UTILS]
name=HDP-UTILS
baseurl=http://10.1.110.80/hdp/HDP-UTILS-1.1.0.22/hdp-utils/
gpgcheck=0
enabled=1
scp kylin_aarch64.repo ambari.repo HDP.repo HDP-UTILS.repo root@ambari-slave01:/etc/yum.repos.d
scp kylin_aarch64.repo ambari.repo HDP.repo HDP-UTILS.repo root@ambari-slave02:/etc/yum.repos.d
3.1.10更新源(所有节点)
更新仓库数据
yum clean all
yum makecache
3.1.11 安装必备软件(所有节点)
安装软件包
yum install -y python3-kerberos kylin-lsb-core kylin-lsb-cxx kylin-lsb-desktop kylin-lsb-languages kylin-lsb-printing kylin-lsb-submod-multimedia kylin-lsb-submod-security
3.1.12 java配置(所有节点)
使用系统自带的JDK,无需配置JAVA_HOME环境变量。
java -version
安装java-1.8.0-openjdk-devel
yum install java-1.8.0-openjdk-devel -y
备注:系统自带JDK路径为/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.272.b10-7.ky10.aarch64/
(此路径在后续的ambari-server setup 中作为JAVA_HOME环境变量使用)
3.2 安装步骤
3.2.1 安装ambari-agent(所有节点)
yum -y install ambari-agent
vim /usr/lib/ambari-agent/lib/ambari_commons/resources/os_family.json
增加“kylin”到distro中,如下图所示:
在aliases中添加:"kylin10": "centos7"
scp /usr/lib/ambari-agent/lib/ambari_commons/resources/os_family.json ambari-slave01:/usr/lib/ambari-agent/lib/ambari_commons/resources
scp /usr/lib/ambari-agent/lib/ambari_commons/resources/os_family.json ambari-slave02:/usr/lib/ambari-agent/lib/ambari_commons/resources
vim /usr/lib/ambari-agent/lib/ambari_commons/os_check.py 205
scp /usr/lib/ambari-agent/lib/ambari_commons/os_check.py ambari-slave01:/usr/lib/ambari-agent/lib/ambari_commons
scp /usr/lib/ambari-agent/lib/ambari_commons/os_check.py ambari-slave02:/usr/lib/ambari-agent/lib/ambari_commons
vim /usr/lib/ambari-agent/lib/ambari_commons/repo_manager/yum_manager.py 287
(因ambari暂时仅支持yum模块,需改写代码函数支持dnf模块,具体内容如下图所示)
具体内容如下:
import dnf
yb = dnf.Base()
name_regex = re.escape(name).replace("\\?", ".").replace("\\*", ".*") '$'
regex = re.compile(name_regex)
with suppress_stdout():
q = dnf.sack.rpmdb_sack(yb).query().installed()
package_list = set([i.pkgtup for i in q])
for package in package_list:
if regex.match(package[0]):
return True
return False
scp /usr/lib/ambari-agent/lib/ambari_commons/repo_manager/yum_manager.py ambari-slave01:/usr/lib/ambari-agent/lib/ambari_commons/repo_manager/
scp /usr/lib/ambari-agent/lib/ambari_commons/repo_manager/yum_manager.py ambari-slave02:/usr/lib/ambari-agent/lib/ambari_commons/repo_manager/
vim /var/lib/ambari-agent/bin/ambari-agent
scp /var/lib/ambari-agent/bin/ambari-agent ambari-slave01:/var/lib/ambari-agent/bin/
scp /var/lib/ambari-agent/bin/ambari-agent ambari-slave02:/var/lib/ambari-agent/bin/
systemctl start ambari-agent
systemctl status ambari-agent
systemctl enable ambari-agent.service
3.2.2 安装ambari-server(主节点)
yum remove postgresql-libs-10.5-19.p01.ky10.aarch64
rpm -ivh /var/www/html/localrepo/HDP_required/postgresql-libs-10.5-12.ky10.aarch64.rpm
yum -y install ambari-server
vim /usr/lib/ambari-server/lib/ambari_commons/os_check.py 205
做如下修改:
3.2.3 MariaDB安装与配置(主节点)
3.2.3.1 安装mariadb第一步:安装与测试登陆
1.安装命令
yum -y install mariadb mariadb-server
2.启动MariaDB
systemctl start mariadb
3.进行MariaDB的相关简单配置
mysql_secure_installation
首先是设置密码,会提示先输入密码.。
Enter current password for root (enter for none): #<–初次运行直接回车
(2)设置密码
Set root password? [Y/n] #<– y
New password: #<– 设置root用户的密码
Re-enter new password: #<– 再输入一次你设置的密码
(3)其他配置
Remove anonymous users? [Y/n] #<– 回车
Disallow root login remotely? [Y/n] #<–回车
Remove test database and access to it? [Y/n] #<– 回车
Reload privilege tables now? [Y/n] #<– 回车
初始化MariaDB完成,
(4)测试登录
mysql -u root -p
第二步:配置MariaDB的字符集
1.修改/etc/my.cnf.d/mariadb-server.cnf文件
vim /etc/my.cnf.d/mariadb-server.cnf
在[mysqld]标签下添加
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
2.新建/etc/my.cnf.d/client.cnf文件
vim /etc/my.cnf.d/client.cnf
添加如下内容:
[client]
default-character-set=utf8
3.修改/etc/my.cnf.d/mysql-clients.cnf文件
vim /etc/my.cnf.d/mysql-clients.cnf
在[mysql]中添加
default-character-set=utf8
4.全部配置完成,重启MariaDB
systemctl restart mariadb
第三步:进入MariaDB查看字符集
mysql -u root -p
MariaDB [(none)]> show variables like "%character%";
MariaDB [(none)]> show variables like "%collation%";
设置开机启动:
systemctl enable mariadb
mariadb安装完成
3.2.3.2 在mysql创建ambari、hive数据库及用户命令如下:
CREATE DATABASE ambari;
use ambari;
CREATE USER 'ambari'@'%' IDENTIFIED BY 'ambari';
GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'%';
CREATE USER 'ambari'@'localhost' IDENTIFIED BY 'ambari';
GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'localhost';
CREATE USER 'ambari'@'ambari-master' IDENTIFIED BY 'ambari';
GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'ambari-master';
FLUSH PRIVILEGES;
CREATE DATABASE hive;
use hive;
CREATE USER 'hive'@'%' IDENTIFIED BY 'hive';
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%';
CREATE USER 'hive'@'localhost' IDENTIFIED BY 'hive';
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'localhost';
CREATE USER 'hive'@'ambari-master' IDENTIFIED BY 'hive';
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'ambari-master';
FLUSH PRIVILEGES;
select User,Host,Password from mysql.user;
如果出现错误要删除对应的表信息并重新创建,如下图(没问题可跳过):
3.2.3.3 建立 MySQL 与 ambari 的连接cp /var/www/html/localrepo/HDP_required/mysql-connector-java.jar /usr/share/java/
cp /usr/share/java/mysql-connector-java.jar /var/lib/ambari-server/resources/mysql-jdbc-driver.jar
vim /etc/ambari-server/conf/ambari.properties
server.jdbc.driver.path=/usr/share/java/mysql-connector-java.jar
3.2.4 启动 ambari-server 的配置程序(主节点)
修改配置文件/usr/sbin/ambari-server
vim /usr/sbin/ambari-server 34
ambari-server setup
在上面图中,若使用系统java环境,则JAVA_HOME的值应为/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-1.h5.ky10.aarch64/
注意在下图中,数据库和用户名都默认是ambari,所以密码就是ambari
3.2.5 初始化数据库(主节点)
mysql -u ambari -p
MariaDB [(none)]> use ambari;
MariaDB [ambari]> source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
确保以上都显示为OK
指定数据库驱动
ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar
3.2.6导入stacks相关包
scp hdp3_stack.tar.gz root@10.1.110.80:/var/lib/ambari-server/resources/stacks/HDP
cd /var/lib/ambari-server/resources/stacks/HDP
tar zxvf hdp3_stack.tar.gz
rm -rf hdp3_stack.tar.gz
3.2.7去掉SMARTSENSE服务
vim /var/lib/ambari-server/resources/stacks/HDP/3.0/services/SMARTSENSE/metainfo.xml
3.2.6 启动ambari-server(主节点)
vim /etc/rc.d/init.d/ambari-server
systemctl start ambari-server
systemctl status ambari-server
在浏览器输入对应地址 ip:8080,账号密码都是admin
3.2.7 安装部署HDP集群
登录成功后开始部署
输入集群名称
导入版本信息,选择文件HDP-3.1.5.0-152.xml
填入正确的源地址
http://10.1.110.80/hdp/HDP/centos7/3.1.5.0-152/
http://10.1.110.80/hdp/HDP-UTILS-1.1.0.22/hdp-utils/
hostname 在 /etc/hosts中查看
将查看到的内容在 Target Hosts 中输入
ambari-master
ambari-slave01
ambari-slave02
密钥部分不要直接复制,最好拷贝到本地,然后通过本地上传
scp root@10.1.110.80:~/.ssh/id_rsa ./
正确配置如下图所示
点击 Click here to see the check results. 查看是否警告。如存在异常,则需解决,再执行下一步。
点击下一步
会有连续的警告,如下,直接PROCEED ANYWAY 即可
默认即可,点击下一步
NFSGateway那一列全不选,其他全选,设置如下,下一步
输入正确密码
Hive这里记得要test,填写内容如下
默认下一步
设置密码
设置好后发现没有错误提示,下一步
Review界面需要提醒用户查看Repositories是否有详细的仓库地址,若无,需要刷新下界面,否则后面会因为仓库为空导致安装失败,确认无误开始部署
等待安装部署,成功后如下图所示,会有如下警告
直接进行下一步
点击complete完成配置
可以看到除HDFS为绿色外,其余所有的服务YARN、Hive、ZooKeeper都是红的,需要手动重启一遍,启动顺序为:Hive、ZooKeeper、YARN,启动YARN时会有一个子服务启动失败,如下图:
这时候是因为端口被占用了,需要修改配置,如下图所示:
修改完成以后,重启YARN服务,就可恢复正常。
备注:大规模部署的分布式节点,需要很大的存储空间。而且启动服务非常消耗节点的内存,服务越多消耗内存越大。
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved