admin管理员组文章数量:1444647
Ambari EDP 大数据集群部署手册
版本说明: Ambari:3.0.0 EDP:3.3.0 虚拟机版本:CentOS-8.5.2111-x86_64-dvd1.iso
更新日志列表:
日期 | 更新章节 | 更新日志 |
---|---|---|
2025.01.05 | 新增第六章节 | 新增第六章节,修改CentOS 8 yum源,新增阿里云yum源。方便一些包能正常被yum安装 |
2025.01.03 | 11.2 | 补充使用ssh私钥来注册主机的步骤 |
2024.12.16 | 所有 | 编写EDP部署文档初稿 |
安装包下载地址:
链接:
提取码:b8hu
目录介绍:
- 在 httpd 服务安装好后,将 edp 和 ambari 目录,直接放到 /var/www/html 目录下即可。
- 三个jdk文件,每个节点都需要拷贝并解压。
- mysql-connector-java-8.0.23.jar:mysql jdbc jar包。
一、配置说明
1. 硬件环境
节点类型 | 操作系统 | ip 地址 | 主机名 | 说明 |
---|---|---|---|---|
主节点 | centos 8 | 192.168.159.130 | node1.ambari | 内存:8G+ |
从节点 | centos 8 | 192.168.159.131 | node2.ambari | 内存:8G+ |
2. 软件环境
软件名称 | 版本号 |
---|---|
JDK | jdk1.8.0_151 && jdk17.0.12 |
MySQL | 8.0 |
Ambari | 3.0 |
EDP | 3.3.0 |
二、修改主机名和hosts文件(各节点都需要执行)
1. 修改主机名(各节点分别修改主机名)
代码语言:javascript代码运行次数:0运行复制# 使用hostnamectl命令修改主机名,执行该命令后立即生效,只不过需要重启Xshell连接
# 以其中一台为例,代码如下
hostnamectl set-hostname node1.ambari
# 其余的机器也使用hostnamectl命令修改主机名
...(略)
2. 修改hosts文件(各节点的hosts文件均修改为下图所示)
代码语言:javascript代码运行次数:0运行复制# 添加机器ip与主机名映射
vim /etc/hosts
192.168.159.130 node1.ambari
192.168.159.131 node2.ambari
三、关闭防火墙和selinux(各节点都需要执行)
1. 防火墙设置
代码语言:javascript代码运行次数:0运行复制# 查看防火墙状态
systemctl status firewalld
# 查看开机是否启动防火墙服务
systemctl is-enabled firewalld
# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
# 再次查看防火墙状态和开机防火墙是否启动
systemctl status firewalld
systemctl is-enabled firewalld
2. 禁用selinux
代码语言:javascript代码运行次数:0运行复制# 永久性关闭selinux(重启服务器生效)
sed -i 's/SELINUX=enforcing/SELINUX =disabled/' /etc/selinux/config
# 临时关闭selinux(立即生效,重启服务器失效)
setenforce 0
# 查看selinux状态
getenforce
# disabled为永久关闭,permissive为临时关闭,enforcing为开启
四、免密登陆
各个主机均执行以下操作:
代码语言:javascript代码运行次数:0运行复制## 生成密钥对
ssh-keygen -t rsa ## 一路回车即可
## 进入.ssh目录,如果目录不存在则创建
cd ~/.ssh
## 将公钥导入至authorized_keys
cat id_rsa.pub >> authorized_keys
## 修改文件权限
chmod 700 ~/.ssh
chmod 600 authorized_keys
# 首次ssh时,设置不提示是否保存秘钥
ssh-keyscan ${替换为当前主机名} >> ~/.ssh/known_hosts
在节点 node1.ambari (在要安装 ambari-server 的节点)上执行:
代码语言:javascript代码运行次数:0运行复制## 配置主从互相免密登陆
[root@node1 ~]# cat ~/.ssh/id_rsa.pub | ssh root@node2.ambari 'cat - >> ~/.ssh/authorized_keys'
[root@node1 ~]# cat ~/.ssh/id_rsa.pub | ssh root@node3.ambari 'cat - >> ~/.ssh/authorized_keys'
[root@node1 ~]# ssh node2.ambari # 验证主机点是否可以免密登陆从节点,执行exit命令退出即可。
[root@node1 ~]# ssh node3.ambari # 验证主机点是否可以免密登陆从节点,执行exit命令退出即可。
备注:要想实现多主机互相免密,可参考文章:Linux多台主机互相免密
五、安装JDK(各节点都需要执行)
1. 安装jdk1.8
1.1. 方式一:使用yum 安装
代码语言:javascript代码运行次数:0运行复制yum install -y java-1.8.0-openjdk-devel
安装后的jdk的位置在 /usr/lib/jvm/java-1.8.0-openjdk。
1.2. 方式二:离线安装,适合内网没有yum源的情况
- 拷贝文件
# 创建目录
mkdir /usr/java
# 将从网盘里下载jdk-8u151-linux-x64.tar.gz拷贝到/usr/java目录下,然后解压文件
tar zxvf jdk-8u151-linux-x64.tar.gz
- 配置jdk环境变量:
# 编辑/etc/profile,文末插入以下内容:
# set java
export JAVA_HOME=/usr/java/jdk1.8.0_151
export PATH=$JAVA_HOME/bin:$PATH
- 使环境变量生效:source /etc/profile
- 安装验证:java -version
2. 安装jdk17
2.1. 方式一:yum 在线安装
代码语言:javascript代码运行次数:0运行复制yum install -y java-17-openjdk-devel
2.2. 方式二:使用安装包离线安装
把 OpenJDK17U-jdk_x64_linux_hotspot_17.0.12_7.tar.gz 复制到/usr/java 目录下后解压即可,不需要配置环境变量。
代码语言:javascript代码运行次数:0运行复制cd /usr/java
# 解压
tar zxvf OpenJDK17U-jdk_x64_linux_hotspot_17.0.12_7.tar.gz
3. 安装jdk22(选做,给trino使用)
把 OpenJDK22U-jdk_x64_linux_hotspot_22.0.2_9.tar.gz 复制到/usr/java 目录下后解压即可,不需要配置环境变量。
代码语言:javascript代码运行次数:0运行复制cd /usr/java
# 解压
tar zxvf OpenJDK22U-jdk_x64_linux_hotspot_22.0.2_9.tar.gz
六、修改CentOS 8 yum源
1. 修改 CentOS 8 yum 源
由于 CentOS Linux 8 已停止更新和维护,所以在使用 yum 源时会链接报错,解决办法如下:
代码语言:javascript代码运行次数:0运行复制cd /etc/yum.repos.d/
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#baseurl=|baseurl=|g' /etc/yum.repos.d/CentOS-*
# 清空原有缓存,并重新生成
yum clean all && yum makecache
成功解决。
2. 添加阿里云yum源
EDP 安装服务时,有时会通过 yum 安装依赖包,比如 snappy-devel,默认 CentOS 8 是没有这个包的,可以添加阿里云 yum 源来安装此依赖。
代码语言:javascript代码运行次数:0运行复制cd /etc/yum.repos.d/
vim aliyun-CentOS-BaseOS.repo
在 添加以下内容:
代码语言:javascript代码运行次数:0运行复制[aliyun-baseos]
name=CentOS Linux $releasever - BaseOS - mirrors.aliyun
baseurl=/$releasever/BaseOS/$basearch/os/
gpgcheck=1
enabled=1
countme=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
[aliyun-powertools]
name=CentOS Linux $releasever - PowerTools - mirrors.aliyun
baseurl=/$releasever/PowerTools/$basearch/os/
gpgcheck=1
enabled=1
countme=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
清空yum原有缓存,并重新生成。
代码语言:javascript代码运行次数:0运行复制yum clean all && yum makecache
阿里云yum源地址可参考:.5.2111/
七、安装mysql(任意一个节点)
mysql版本为8.0,本次部署在node1.ambari节点:
1. 检查本地资源库中是否有mysql的rpm包
代码语言:javascript代码运行次数:0运行复制rpm -qa | grep mysql
# 删除相关rpm包
rpm -ev <rpm包名> --nodeps
2. 搭建mysql8.0的yum源
代码语言:javascript代码运行次数:0运行复制# 下载mysql8.0的rpm包,安装成功后/etc/yum.repos.d/目录下会增加两个文件
yum -y install .noarch.rpm
# 查看mysql8的安装源是否可用,如不可用请自行修改配置文件(/etc/yum.repos.d/mysql-community.repo)使mysql80下面的enable=1
# 若有mysql其它版本的安装源可用,也请自行修改配置文件使其enable=0
yum repolist enabled | grep mysql
3. 安装mysql 8.0
代码语言:javascript代码运行次数:0运行复制yum -y install mysql-server
# 启动mysql
systemctl start mysqld.service
# 查看mysql状态
systemctl status mysqld.service
# 设置mysql开机自启动
systemctl enable mysqld.service
4. 设置mysql用户root密码
使用root用户登录,第一次登录不用输入密码,直接回车即可,如下图所示:
代码语言:javascript代码运行次数:0运行复制mysql -uroot -p
修改 root 密码:
代码语言:javascript代码运行次数:0运行复制ALTER USER 'root'@'localhost' IDENTIFIED BY 'root123';
八、设置时钟同步(各节点都需要执行)
请参考我写的另一篇文章:《Linux NTP时钟同步》
如有别的方法也可以,保证各节点时钟同步即可。
九、搭建yum本地源
(任意一个节点,本篇文章放在了第一个节点上了,也就是ambari-server节点:node1.ambari)
1. 安装httpd和wget服务
代码语言:javascript代码运行次数:0运行复制# 安装httpd
yum -y install httpd.x86_64
systemctl enable httpd.service
systemctl start httpd.service
# 安装wget
yum -y install wget
httpd 服务安装后,默认会启动80端口,且会创建 /var/www/html 目录。我们就可以通过 http 链接的方式访问某些安装包,前提是将安装包放在 /var/www/html 目录下。
2. 下载ambari和edp部署包
ambari 和 edp 的部署包在文章开头分享的百度网盘地址里。
将 ambari 和 edp 目录拷贝到 /var/www/html 目录下即可。然后浏览器访问以下地址可看到 ambari 和 edp 的相关rpm包(备注:ip地址为 httpd 服务部署的节点):
- http://192.168.159.130/ambari/
- http://192.168.159.130/edp/
3. 制作yum本地源
代码语言:javascript代码运行次数:0运行复制# 安装createrepo工具
yum -y install createrepo
1)ambari
代码语言:javascript代码运行次数:0运行复制# 将上面网盘的包拷贝到/var/www/html目录下
# 然后执行下述操作
cd /var/www/html
cd ambari/centos8/x86_64/3.0.0
createrepo .
# 执行createrepo .命令可在当前目录下生成repodata目录,该文件是yum仓库必须要有的文件,有了该文件,在任何目录下,yum install 包名 即可,也可以自动处理包之间的依赖关系。
2)edp
代码语言:javascript代码运行次数:0运行复制# 将上面网盘的包拷贝到/var/www/html目录下
# 然后执行下述操作
cd /var/www/html
cd edp/centos8/x86_64/3.3.0
createrepo .
# 执行createrepo .命令可在当前目录下生成repodata目录,该文件是yum仓库必须要有的文件,有了该文件,在任何目录下,yum install 包名 即可,也可以自动处理包之间的依赖关系。
4. 新建 ambari.repo文件(各节点都需要执行)
- 在ambari-server节点,新建 ambari.repo(名称必须为ambari.repo,否则注册主机时会找不到ambari.repo文件而失败)文件,将文件放入/etc/yum.repos.d/目录下。
[ambari]
name=ambari
baseurl=.0.0/
enabled=1
gpgcheck=0
备注:baseurl 地址的目录截止到 repodata 目录的上级即可。
在之后部署 hadoop 集群的时候,我们会在 ambari 界面上设置大数据集群的 yum 离线安装源,ambari 会在各 ambari-agent 节点上自动生成 ambari-bigtop-1.repo 文件。所以我们不需要额外配置 hadoop 安装包的 repo 文件,只需在 Ambari 页面注册 hadoop 集群时,填好 hadoop(bigtop) 的 base url(示例:) 即可。
九、安装相关依赖(每个节点都需要安装)
ambari-agent 和 ambari-server 都依赖 distro 这个 python 类库。
代码语言:javascript代码运行次数:0运行复制yum install -y python3-distro
Ambari Metrics Monitor 服务需要依赖 python3-devel
代码语言:javascript代码运行次数:0运行复制yum install -y python3-devel
十、在主节点安装ambari-server
1. 安装相关依赖
ambari-server 安装需要依赖以下资源,执行下述命令:
代码语言:javascript代码运行次数:0运行复制yum install -y python3-psycopg2
2. 拷贝 mysql jdbc jar 包
代码语言:javascript代码运行次数:0运行复制# 创建目录
mkdir /usr/share/java
# 将 mysql-connector-java-8.0.23.jar 拷贝到 /usr/share/java 目录下
# 改名
mv mysql-connector-java-8.0.23.jar mysql-connector-java.jar
3. 安装 ambari-server
代码语言:javascript代码运行次数:0运行复制yum install -y ambari-server
4. 新增ambari用户并增加权限
在本次安装教程中,我们选择用 mysql 来存储 ambari 的元数据信息。
我们为 ambari 服务新增自己的用户,用户名就叫 ambari 吧,以下是新增 mysql 用户的操作。
代码语言:javascript代码运行次数:0运行复制mysql -uroot -proot123
# 这个用户,可以在mysql所在节点用ambari用户访问mysql
CREATE USER 'ambari'@'localhost' IDENTIFIED BY 'ambari';
GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'localhost';
# 这个用户,在后续安装ambari的时候会用到。ambari-server通过ambari用户来访问mysql
CREATE USER 'ambari'@'%' IDENTIFIED BY 'ambari';
GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'%';
# 刷新权限
FLUSH PRIVILEGES;
MySQL 中的用户是 用户名 和 host 共同标识。所以在上面命令里,我们算是创建了两个用户,分别是 ambari@localhost、ambari@% 。
用户中的 host 的不同,代表受众群体也不同。比如 localhost 表示只能是本机访问;% 表示所有的 ip 都可以访问 mysql 。
扩展命令:删除用户命令:
代码语言:javascript代码运行次数:0运行复制Delete FROM user Where User='your_user' and Host='your_host';
FLUSH PRIVILEGES;
5. 使用ambari用户登陆并创建数据库
代码语言:javascript代码运行次数:0运行复制mysql -uambari -pambari
# 创建ambari数据库
CREATE DATABASE ambari character set utf8 collate utf8_general_ci;
# 初始化表结构
use ambari;
source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
exit;
6. 配置ambari-server
代码语言:javascript代码运行次数:0运行复制# 设置ambari jdbc
ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar
# # 设置ambari的java环境与数据库信息
# 以下两种方式,呼应上面安装jdk的两种方式
# 方式一:jdk是yum安装的方式
ambari-server setup -s \
-j /usr/lib/jvm/java-1.8.0-openjdk \
--ambari-java-home /usr/lib/jvm/java-17-openjdk \
--database mysql \
--databasehost node1.ambari \
--databaseport 3306 \
--databasename ambari \
--databaseusername ambari \
--databasepassword ambari
# 方式二:安装包离线安装
ambari-server setup -s \
-j /usr/java/jdk1.8.0_151 \
--ambari-java-home /usr/java/jdk-17.0.12+7 \
--database mysql \
--databasehost node1.ambari \
--databaseport 3306 \
--databasename ambari \
--databaseusername ambari \
--databasepassword ambari
命令参数解释:
- --jdbc-db:指定数据库类型(例如 mysql)。
- --jdbc-driver:指定数据库 JDBC 驱动的路径。
- -s:跳过交互式提示,实现全自动安装。
- -j:指定其他组件的默认 JAVA_HOME(JDK 8)。
- --ambari-java-home:指定 Ambari Server 的专用 Java Home(JDK 17)。
- --database:指定数据库类型。
- --databasehost:数据库服务所在机器的hostname或者ip。
- --databaseport:数据库服务端口号
- --databasename:数据库名称
- --databaseusername:数据库访问用户
- --databasepassword:数据库访问密码
7. 启动ambari-server
代码语言:javascript代码运行次数:0运行复制ambari-server start
登陆浏览器访问: http://192.168.159.130:8080,通过 Ambari 界面部署大数据集群。
默认登陆账号/密码为:admin/admin。
十一、通过 ambari 部署 EDP 集群
主要说一下关键步骤。
1、Select Version
由于之前我们搭建了本地yum源(已将edp的rpm包下载到了本地),所以要选择 “Use Local Repository” 。最后选择主机系统,配置大数据组件相关的 yum 本地源地址。
示例地址:.3.0
注意:Base URL 里面的地址是主机名、ip地址都可以。但也请注意,如果要填写 IP ,一定要是内网 IP 。
2、Install Options
在目标主机里面,填写规划的大数据集群主机列表,填写主机名即可。
注册主机,有两种方式,任选其一即可。
方式一:使用ssh私钥来注册主机
在下面的输入框内,填写 ambari-server 所在主机 root 用户的 ssh 私钥,就是 ~/.ssh/id_rsa 文件的内容,粘贴到下面的输入框内。
方式二:手动注册主机
选择不使用SSH私钥,手动注册主机,如下图所示:
在点击“登记确认”按钮之前,需要在您要注册的所有节点上安装ambari-agent,并修改配置。
具体操作如下:
代码语言:javascript代码运行次数:0运行复制yum install -y ambari-agent
# 修改ambari-agent配置
vim /etc/ambari-agent/conf/ambari-agent.ini
将 server.hostname 由 localhost 改为 ambari-server 所在节点,如下图所示:
所有节点安装ambari-agent并修改了ambari-agent配置后,重启ambari-agent。
在 Ambari 页面上点击“确定”即可,如下图所示:
3、Choose Services
在这一步,就可以选择 hadoop 相关的一些服务了。
4、Assign Masters
分配 master,就是将你所选服务的 master 角色组件,选择安装在哪台机器上。可以根据cpu、内存、磁盘等指标考虑。
5、Assign Slaves and Clients
在这一步中,可能很多刚入门的朋友还不清楚如何选择。其实和分配 master 的思路一样,就是将哪些组件安装在哪些主机上,这个就看个人规划了。比如:在 worker 节点上安装 datanode、nodeManager、RegionServer 等角色。
6、后续步骤
接下来的步骤,就比较简单了,我在这里也就不多赘述了。
7、安装完成
本文标签: Ambari EDP 大数据集群部署手册
版权声明:本文标题:Ambari EDP 大数据集群部署手册 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/biancheng/1748189125a2823815.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论