Ambari集群部署全流程
Posted 李子捌
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ambari集群部署全流程相关的知识,希望对你有一定的参考价值。
Apache Ambari是一个基于Web的支持Apache Hadoop集群的供应、管理和监控的开源工具,Ambari已支持大多数Hadoop组件,包括HDFS、MapReduce、Hive、Pig、 Hbase、Zookeeper、Sqoop和Hcatalog等。提供Web UI进行可视化的集群管理,简化了大数据平台的安装、使用难度。
服务器资源目录
ip地址 | 节点 | 组件 |
---|---|---|
192.168.186.164 | master | |
192.168.186.167 | slave1 | |
192.168.186.174 | slave2 |
账户密码目录
账户 | 密码 | 备注 |
---|---|---|
hadoop用户 | ambari2021 | 192.168.186.164服务器 |
hadoop用户 | ambari2021 | 192.168.186.167服务器 |
hadoop用户 | ambari2021 | 192.168.186.174服务器 |
1、操作系统设置
1.1 创建用户和用户组
新建用户工作组
groupadd hadoop
新建用户同时增加用户组
useradd -g hadoop hadoop
为hadoop用户设置密码
passwd hadoop
正确密码
ambari2021
1.2 赋予hadoop用户sudo权限
编辑 etc/sudoers文件
visudo
增加如下配置
Hadoop ALL=(ALL) NOPASSWD:ALL
Hadoop ALL=(ALL) NOPASSWD:ALL
参数解释:
第一个字段Hadoop 表示能使用sudo命令的用户
第二个字段ALL=(ALL) 第一个ALL表示允许使用sudo的主机,第二个ALL表示使用sudo后以什么身份来执行命令
第三个字段NOPASSWD:ALL 滴一个NOPASSWD表示使用sudo提升权限的时候不需要使用密码,第二个ALL表示允许使用sudo执行的命令
1.3 配置hostname
检查当前hostname
hostname -f
永久修改hostname
sudo hostnamectl set-hostname ambari-01
配置hosts文件
sudo vi /etc/hosts
添加如下配置 注意自带的两行不要删除 此外公司服务器配置内网IP
192.168.186.164 ambari-01
1.4 防火墙设置
禁用防火墙,避免多个节点之间收到影响(生产环境一般用运维专业人员来做端口策略,并不能完全关闭防火墙)
禁止防火墙开机启动
sudo systemctl disable firewalld
关闭防火墙
sudo systemctl stop firewalld
查看防火墙状态
sudo systemctl status firewalld
1.5 禁用SELinux
检查SELinux状态(只要返回的不是disabled那么说明SELinux是开着的,则需要关闭)
getenforce
临时禁用
sudo setenforce 0
永久禁用
sudo vi /etc/selinux/config
将SELINUX 改为 SELINUX=disabled
1.6 SSH免密
Hadoop大数据集群的相关组件大多依赖SSH免密登录来通过一个节点操作集群
使用hadoop用户登录 (切换到根目录)
su - hadoop
执行命令生成公、私钥(三次直接回车)
ssh-keygen
将公钥拷贝到认证文件
cd .ssh/
cat id_rsa.pub >> authorized_keys文件授权
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
执行ambari-01 自己到自己的 SSH 测试免密登录
ssh ambari-01
输入 yes 回车
yes
2 安装java
上传jdk8稳定版压缩包到服务器目录&解压
sudo tar -zxvf jdk-8u231-linux-x64.tar.gz -C /usr/local/
链接jdk - jdk1.8.0_231
sudo ln -s /usr/local/jdk1.8.0_231/ /usr/local/jdk
移除安装包
rm -rf jdk-8u231-linux-x64.tar.gz
配置java环境变量
sudo vi /etc/profile
在配置文件末尾加上如下配置
export JAVA_HOME=/usr/local/jdk
export JRE_HOME={JAVA_HOME}/lib/:JREHOME/libexportPATH={JAVA_HOME}/bin:$PATH
使环境变量生效
source /etc/profile
查看java版本
java -version
3、准备本地yum源
思路:把HDP所需要的RPM安装包都下载到本地创建一个yum源,后续安装使用本地yum源,可以内网操作速度更快
3.1、安装Apache
安装Apache
sudo yum -y install httpd
将Apache设置为开机启动
sudo systemctl enable httpd
启动Apache
sudo systemctl start httpd
3.2 HDP安装部署到apache
通过FTP上传RPM安装包到服务器上
移动安装包到 /var/www/html/目录下
sudo mv ambari-2.7.4.0-centos7.tar.gz /var/www/html/
sudo mv HDP-3.1.4.0-centos7-rpm.tar.gz /var/www/html/
sudo mv HDP-GPL-3.1.4.0-centos7-gpl.tar.gz /var/www/html/
sudo mv HDP-UTILS-1.1.0.22-centos7.tar.gz /var/www/html/
解压缩
sudo tar -zxvf ambari-2.7.4.0-centos7.tar.gz
sudo tar -zxvf HDP-3.1.4.0-centos7-rpm.tar.gz
sudo tar -zxvf HDP-GPL-3.1.4.0-centos7-gpl.tar.gz
sudo tar -zxvf HDP-UTILS-1.1.0.22-centos7.tar.gz
移除压缩包
sudo rm -rf ambari-2.7.4.0-centos7.tar.gz
sudo rm -rf HDP-3.1.4.0-centos7-rpm.tar.gz
sudo rm -rf HDP-GPL-3.1.4.0-centos7-gpl.tar.gz
sudo rm -rf HDP-UTILS-1.1.0.22-centos7.tar.gz
更改目录权限
sudo chmod -R ugo+rX /var/www/html/
3.3 配置本地yum源
#进入如下目录
cd /etc/yum.repos.d/
#创建ambari.repo文件 & 写入如下# #包括的内容
sudo vi ambari.repo
#仓库名字
[ambari-repo]
#yum 源描述
name=ambari
#指向yum源地址
baseurl=http://ambari-01/ambari/centos7/2.7.4.0-118/
#关闭下载RPM的jpg校验
gpgcheck=0
#组可用
enabled=1
#查看yum源配置是否生效 & 看到红框内容则成功
yum repolist
4 安装mysql
#安装mysql的yum仓库
sudo wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
rpm -ivh mysql57-community-release-el7-9.noarch.rpm
#安装mysql(必须进入到 /etc/yum.repos.d/目录后再执行以下脚本)
yum install mysql-server
#设置开机启动
sudo systemctl enable mysqld
#启动MySQL
sudo systemctl start mysqld
#查看MySQL的启动状态
sudo systemctl status mysqld
#查看root临时密码(临时密码每次都是随机生成的) (&fZPOuLl19i
sudo grep 'temporary password' /var/log/mysqld.log
#使用临时密码登录
mysql -uroot -p
MySQL常用密码参数
set global validate_password_policy=0;
set global validate_password_mixed_case_count=0;
set global validate_password_number_count=3;
set global validate_password_special_char_count=0;
set global validate_password_length=3;
修改密码('root'@'%' -- 允许远程连接)
GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY 'PWD@123456' WITH GRANT OPTION;
ALTER USER 'root'@'%' IDENTIFIED BY 'PWD@123456';
退出MySQL
Exit
sudo mkdir -p /usr/share/java
5、部署AmbariServer
5.1 安装AmbariServer
sudo yum -y install ambari-server
5.2 创建AmbariServer的数据库资源
#登录MySQL
mysql -uroot -pPWD@123456
#执行如下命令 创建ambari用户并授权
set global validate_password_policy=0;
set global validate_password_mixed_case_count=0;
set global validate_password_number_count=3;
set global validate_password_special_char_count=0;
set global validate_password_length=3;
create database ambari;
CREATE USER 'ambari'@'%' IDENTIFIED BY 'bigdata';
GRANT ALL ON ambari.* TO 'ambari'@'%';
FLUSH PRIVILEGES;
#执行脚本
use ambari;
source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql;
#退出
exit;
5.3 配置AmbariServer
#配置
sudo ambari-server setup
#使用默认账户 root 输入 n Customize user account for ambari-server daemon y/n?
n
#使用自带jdk
2
#输入JAVA_HOME
/usr/local/jdk
#安装GPL
y
#数据库配置
y
#选择MySQL & 一路回车(mysql安装在本机,前面设置的数据库账户ambari和密码bigdata)
3
#输入驱动路径
/usr/share/java/mysql-connector-java-8.0.18.jar
远程连接
y
6、Ambari部署核心技术组件
6.1 启动Ambari
#启动AmbariServer
sudo ambari-server start
如果出现错误,一定要查看日志:vi /var/log/ambari-server/ambari-server.log
遇到的错误:不能启动服务“REASON: Server not yet listening on http port 8080 after 50 seconds.Exiting.”
原因:由于本地的公网 ip改变或者不稳定导致的链接不上。
解决:修改/etc/hosts,将 hostname公网 IP映射改为内网映射。
浏览器webui访问
http://192.168.186.164:8080/
账户: admin
密码: admin
常见问题:Ambari启动正常,没有错误日志,但是通过http://192.168.186.164:8080/无法访问Ambari。
原因:
1.防火墙没有关闭(查看防火墙:sudo systemctl status firewalld)
2.云服务8080端口没有对外开放
解决:
1.关闭防火墙:sudo systemctl stop firewalld
2.开放服务器8080端口
6.2 集群部署
1、启动安装向导
2、集群名命名 - dmp_cluster(数据中台) 点击 next
选择 HDP3.1.4.0,因为我们下载的就是这个版本的安装包,已经构建自本地 yum仓库,然后要选择”Use Local Repository“
只保留"readhat7"的仓库,接下来要把直接部署 yum本地仓库的地址填进去,同时不要勾选下面的两个高级选项
各个仓库的地址参考下表
http://ambari-01/HDP/centos7/3.1.4.0-315/
http://ambari-01/HDP-GPL/centos7/3.1.4.0-315/
http://ambari-01/HDP-UTILS/centos7/1.1.0.22/
注册主机
上面的私钥要拷贝完整,一点也不能少,最后一行也不要换行
开始注册主机 installing
主机注册成功 success
如果报错则查看主机host文件 删除不必要的配置
主机在注册过程中会去各节点检查环境是否有问题,我么可以点击上图的”Click here to see thewarnings“去查看
查看issue 时间同步问题
暂时不处理
选择要安装的服务
Amabri管大数据的各个组件叫做 Service,在这一步要选择同时安装的服务,当然我们也可以先不选后面再选。在这里我们选择安装下 Hadoop相关的服务,其余的服务就取消掉对话框的对勾(它默认选了一堆,一定要去掉,好多用不到),如下图所示:
在这里要特别注意,在 Ambari里 Hadoop被当做多个服务例如 HDFS、YARN等,如果你选择
的服务依赖于其他服务他会提示的,你点击确认后会自动勾选,然后下一步即可
分配 Mater服务安装到哪些主机
接下来 Ambari会让你选择 Master服务要安装到哪些主机,所谓 Master服务,是指的各个服务的 Master服务,例如 HDFS的 Master服务就是namenode,因为我们就一个节点,所以保持不动直接下一步:
分配 Slave服务和 Client安装到哪些主机
自定义 Service
这里要注意,随着前面你选的 Service的不同,这里也会不同,点击”next“会让你确认一些服务的目录,我们先保持默认,直接”next“,如下图:
然后是确认各个 service运行在操作系统的哪个用户下,我们也保持默认,如下图:
点击下一步,会让我们确认其他的配置,我们保持默认直接点 NEXT:
注意,这里随着你前面选择的 service的不同会有很大差异,比如你要选择了 Hive,它一定会要你输入 MySQL相关信息,所以不要死记硬背。
如果 ADVANCED爆红,说 ssl.client.keystore.password密码不匹配,这里面默认设置密码为 admin即可。
Review
在 Review环节我们要仔细检查之前的配置,没有问题就点击”DEPLOY“正式开始部署了,如下图所示:
配置ambari-01 ambari-02 ambari-03
# 配置hostname
# 关闭SELinux、关闭防火墙
# 生成私钥公钥
# 配置免密登录 我们所谓的免密就是拿集群中的一台机器作为管理节点,然后让他可以 ssh免密码到其他节 点执行命令,这对我们维护一个多节点的集群非常有意义。我们当然以 ambari-01为管理节点, 所以要实现 ambari-01到其他节点的免密。 拿到 ambari-01的公钥: 把 ambari-01的公钥添加到 ambari02和 ambari-03的~/.ssh/authorized_keys文件中 然后 ambari-01到 ambari-02、ambari-03分别连接一次: ssh ambari-02 ssh ambari-03 如果第一次需要输入 yes第二次不需要则 ssh免密就做好了,注意我们只做了 ambari-01到其他节点的 ssh免密。
时钟同步 安装Chrony
ambari-01 Chrony Server
ambari-02 Chrony Client
ambari-03 Chrony Client
安装 chrony
安装 chrony
sudo yum -y install chrony
1、服务状态:
#启动chrony服务
systemctl start chronyd.service
#设置开机同步时间
systemctl enable chronyd.service
#查看服务状态
systemctl status chronyd.service
#直接关闭防火墙
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
#不关闭防火墙、但允许NTP服务
#因NTP使用123/UDP端口协议,所以允许NTP服务即可
firewall-cmd --add-service=ntp --permanent
firewall-cmd --reload
1、服务端配置
#配置文件修改
vi /etc/chrony.conf
#注释掉以下四行(避免去外部 chrony-server同步时间)
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst
#新增配置 指定chrony-server为 ambari-01
server 127.127.1.1 iburst
#Allow NTP client access from local network,配置允许访问的客户端列表,支持CIDR,例如:
allow 192.168.0.0/16
#Serve time even if not synchronized to any NTP server.,打开注释即可,即:
local stratum 10
#重启下服务端chrony服务
systemctl restart chronyd.service
2、客户端配置
#配置文件修改
vim /etc/chrony.conf
#修改server即可,删掉其他的,添加要同步时间的源服务器ip,格式如下:server ambari-01 iburst
server x.x.x.x iburst
#重启下客户端chrony服务
systemctl restart chronyd.service
#客户端使用
chronyc sources -v
ambari-02 ambari-03 安装Java
步骤如上
纳入ambari管理
将节点ambari-02 ambari-03 纳入到ambari-01管理
配置主机名、私钥等信息
开始安装
选择服务DataNode & Client
配置保持默认
后续环节与上ambari-server一致 Review 、Install Start and Test、 Summary
以上是关于Ambari集群部署全流程的主要内容,如果未能解决你的问题,请参考以下文章