Ambari集群部署

举报
李子捌 发表于 2021/11/24 20:07:23 2021/11/24
【摘要】 Apache Ambari是一个基于Web的支持Apache Hadoop集群的供应、管理和监控的开源工具,Ambari已支持大多数Hadoop组件,包括HDFS、MapReduce、Hive、Pig、 Hbase、Zookeeper、Sqoop和Hcatalog等。提供Web UI进行可视化的集群管理,简化了大数据平台的安装、使用难度。服务器资源目录ip地址节点组件192.168.186....

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}/jre
export CLASS_PATH=.:${JAVA_HOME}/lib/:${JRE_HOME}/lib
export PATH=${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

测试访问 http://192.168.186.164


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


# 上传驱动包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)?
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

# 添加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




ambari-02 ambari-03 安装Java

# 步骤如上



纳入ambari管理

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


配置主机名、私钥等信息


开始安装


选择服务DataNode & Client


配置保持默认


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

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。