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.164master
192.168.186.167slave1
192.168.186.174slave2

账户密码目录

账户密码备注
hadoop用户ambari2021192.168.186.164服务器
hadoop用户ambari2021192.168.186.167服务器
hadoop用户ambari2021192.168.186.174服务器

1、操作系统设置

1.1 创建用户和用户组

新建用户工作组

groupadd hadoop

新建用户同时增加用户组

useradd -g hadoop hadoop

为hadoop用户设置密码

passwd hadoop

正确密码

ambari2021

image-20210219111424964.png

1.2 赋予hadoop用户sudo权限

编辑 etc/sudoers文件

visudo

image-20210219111952995.png

增加如下配置

Hadoop ALL=(ALL) NOPASSWD:ALL

Hadoop ALL=(ALL) NOPASSWD:ALL
参数解释:
第一个字段Hadoop 表示能使用sudo命令的用户
第二个字段ALL=(ALL) 第一个ALL表示允许使用sudo的主机,第二个ALL表示使用sudo后以什么身份来执行命令
第三个字段NOPASSWD:ALL 滴一个NOPASSWD表示使用sudo提升权限的时候不需要使用密码,第二个ALL表示允许使用sudo执行的命令

image-20210219111927267.png

1.3 配置hostname

检查当前hostname

hostname -f

image-20210219113804031.png

永久修改hostname

sudo hostnamectl set-hostname ambari-01

image-20210219114104258.png

配置hosts文件

sudo vi /etc/hosts

添加如下配置 注意自带的两行不要删除 此外公司服务器配置内网IP

192.168.186.164 ambari-01

image-20210219114414782.png


image-20210219114236046.png

1.4 防火墙设置

禁用防火墙,避免多个节点之间收到影响(生产环境一般用运维专业人员来做端口策略,并不能完全关闭防火墙)

禁止防火墙开机启动

sudo systemctl disable firewalld

关闭防火墙

sudo systemctl stop firewalld

查看防火墙状态

sudo systemctl status firewalld

image-20210219115037823.png

1.5 禁用SELinux

检查SELinux状态(只要返回的不是disabled那么说明SELinux是开着的,则需要关闭)

getenforce

临时禁用

sudo setenforce 0

永久禁用

sudo vi /etc/selinux/config

将SELINUX 改为 SELINUX=disabled

image-20210219115255918.png

1.6 SSH免密

Hadoop大数据集群的相关组件大多依赖SSH免密登录来通过一个节点操作集群

使用hadoop用户登录 (切换到根目录)

su - hadoop

执行命令生成公、私钥(三次直接回车)

ssh-keygen

image-20210219120046608.png

将公钥拷贝到认证文件

cd .ssh/
cat id_rsa.pub >> authorized_keys

文件授权

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

image-20210219120451820.png

执行ambari-01 自己到自己的 SSH 测试免密登录

ssh ambari-01

输入 yes 回车

yes

image-20210219120646060.png

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/:JREH​OME/libexportPATH={JAVA_HOME}/bin:$PATH 

使环境变量生效

source /etc/profile

image-20210219134957133.png

查看java版本

java -version

image-20210219135258591.png

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

测试访问 http://192.168.186.164

image-20210219140033970.png

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

image-20210219144741224.png

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

上传驱动包mysql-connector-java-8.0.18.jar 到服务器/usr/share/java目录

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

image-20210219164235288.png

#使用自带jdk

2

#输入JAVA_HOME

/usr/local/jdk

image-20210219164337878.png

#安装GPL

y

image-20210219164641189.png

#数据库配置

y

#选择MySQL & 一路回车(mysql安装在本机,前面设置的数据库账户ambari和密码bigdata)

3

#输入驱动路径

/usr/share/java/mysql-connector-java-8.0.18.jar

远程连接

y

image-20210219165112001.png

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、启动安装向导

image-20210219170423471.png

2、集群名命名 - dmp_cluster(数据中台) 点击 next

image-20210219170454996.png

选择 HDP3.1.4.0,因为我们下载的就是这个版本的安装包,已经构建自本地 yum仓库,然后要选择”Use Local Repository“

image-20210219170945849.png

只保留"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/

image-20210219171343963.png

注册主机
上面的私钥要拷贝完整,一点也不能少,最后一行也不要换行

image-20210219172335817.png

开始注册主机 installing
主机注册成功 success
如果报错则查看主机host文件 删除不必要的配置

image-20210219172637457.png

主机在注册过程中会去各节点检查环境是否有问题,我么可以点击上图的”Click here to see thewarnings“去查看

image-20210219172718900.png

查看issue 时间同步问题
暂时不处理

image-20210219172826703.png

选择要安装的服务
Amabri管大数据的各个组件叫做 Service,在这一步要选择同时安装的服务,当然我们也可以先不选后面再选。在这里我们选择安装下 Hadoop相关的服务,其余的服务就取消掉对话框的对勾(它默认选了一堆,一定要去掉,好多用不到),如下图所示:
在这里要特别注意,在 Ambari里 Hadoop被当做多个服务例如 HDFS、YARN等,如果你选择
的服务依赖于其他服务他会提示的,你点击确认后会自动勾选,然后下一步即可

image-20210219173311405.png

分配 Mater服务安装到哪些主机
接下来 Ambari会让你选择 Master服务要安装到哪些主机,所谓 Master服务,是指的各个服务的 Master服务,例如 HDFS的 Master服务就是namenode,因为我们就一个节点,所以保持不动直接下一步:

image-20210219173732587.png

分配 Slave服务和 Client安装到哪些主机

image-20210219173930836.png

自定义 Service

image-20210219174100522.png

这里要注意,随着前面你选的 Service的不同,这里也会不同,点击”next“会让你确认一些服务的目录,我们先保持默认,直接”next“,如下图:

image-20210219174150528.png

然后是确认各个 service运行在操作系统的哪个用户下,我们也保持默认,如下图:

image-20210219174150528.png

点击下一步,会让我们确认其他的配置,我们保持默认直接点 NEXT:
注意,这里随着你前面选择的 service的不同会有很大差异,比如你要选择了 Hive,它一定会要你输入 MySQL相关信息,所以不要死记硬背。
如果 ADVANCED爆红,说 ssl.client.keystore.password密码不匹配,这里面默认设置密码为 admin即可。

image-20210219174253019.png

Review
在 Review环节我们要仔细检查之前的配置,没有问题就点击”DEPLOY“正式开始部署了,如下图所示:

image-20210219174434252.png

配置ambari-01 ambari-02 ambari-03

添加hadoop 用户 赋予sudo权限

# 配置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

image-20210220111929677.png


image-20210220113231033.png

ambari-02 ambari-03 安装Java

步骤如上

纳入ambari管理
将节点ambari-02 ambari-03 纳入到ambari-01管理

image-20210220142611994.png

配置主机名、私钥等信息

image-20210220143001432.png

开始安装

image-20210220143032539.png

选择服务DataNode & Client

image-20210220143159858.png

配置保持默认

image-20210220143229607.png

后续环节与上ambari-server一致 Review 、Install Start and Test、 Summary

image-20210220143304698.png


image-20210220143312393.png

以上是关于Ambari集群部署全流程的主要内容,如果未能解决你的问题,请参考以下文章

spark集群安装部署

Ambari部署Atlas

基于hortonworks的大数据集群环境部署流水

基于hortonworks的大数据集群环境部署流水

2021年1月31日后使用Ambari部署HDP和HDF集群(上)迅雷YYDS

docker上搭建consul集群全流程