简介
今天我们来讲讲大数据部署工具 Ambari,我们采用的是 Ambari 2.7.4 + HDP 3.1.4 部署大数据集群。
组件概览
1.HDP 3.1.4.0-315组件, 包含但不限于 HDFS,YARN,Tez,Hive,HBase,ZooKeeper,Kafka,Ranger,Spark2,DolphinScheduler,Flink,Kudu, Presto
2.install.sh使得新机器可以使用脚本一键安装和配置和ambari,只需要填写sship的机器名和密码文件。uninstall.sh可以一键卸载相关安装包和文件,重启机器。
但由于某些机器对脚本的部分语法不兼容,你可以进行自我调整脚本的语法,或者直接根据以下步骤进行一步一步搭建。
3.所有HDP安装包和所需文件以及脚本都可以在此链接下载(13.28G) 链接:链接:https://pan.baidu.com/s/1Vzu_45wWB_BvsA_VH9BczQ 密码:2pjm
自定义服务
Ambari-Flink
组件: FlinkClient(已修改flink执行文件,加入hadoop环境信息), FlinkHistoryServer FLINK HISTORY SERVER 和 FLINK CLIENTS装在不同的机器, 所有Yarn安装的机器都可以选择安装
Ambari-Dolphinscheduler
组件: DS MATER, DS ALERT, DS_API, DS LOGGERS, DS_WORKERS 其中DS LOGGERS, DS_WORKERS需要在机器上同时安装, DS ALERT, DS_API需要在机器上同时安装
Ambari-Presto
组件: PRESTO COORDINATOR, PRESTO WORKERS, 所有Yarn安装的机器都可以选择安装 其中query.max-memory-per-node和query.max-total-memory-per-node受限于JVM Config的Xmx内存分配比例. 在install.sh脚本中已配置
Ambari-Kudu
组件: KUDU_MASTER 和 KUDU_TSERVERS, 需要修改Advanced tserver-gflagfile中tserver_master_addrs属性值为实际master地址
准备环境
系统准备
这里采用的是 Centos 7.9 的系统,目前官方 Ambari 2.7.4 版本需要 Centos 7.9 支持,如果是 Centos 9 以上的版本,Ambari 不兼容。
软件准备
注意:Ambari 2.7.4仅支持HDP-3.1.4和HDF-3.2.0,并且JDK必须满足 JDK1.8
可以通过这个网站 https://supportmatrix.hortonworks.com 来确定 Ambari 不同版本对不同产品版本的支持。
组件 | 描述 |
---|---|
Ambari | 2.7.4.0 |
HDP | 3.1.4.0 |
HDP-GPL | 3.1.4.0 |
HDP-UTILS | 1.1.0.22 |
MySQL | 5.6 |
JDK8 | JDK 1.8.0_231 |
ambari | 这个安装包是经过自己整合,将配置文件等其他需要的信息都已经设定好了,不用再手动一步一步设置,容易出错 |
目前安装的组件
组件名称 |
---|
HDFS |
YRAN |
MapReduce2 |
Hive |
HBase |
Zookeeper |
Kafka |
Ranger |
Spark2 |
dolphinscheduler |
Flink |
机器配置
这里采用的是以下配置,因为需要同步所有的区块历史数据,并且组装成我们自己所需的数据格式,将其存储在 kafka,hdfs 上,所以使用的磁盘空间较多。整理成我们所需的数据格式,完整的存储,到目前为止kafka存储就达到了百亿级别的数据。
主机名称 | ip地址 | 配置信息 |
---|---|---|
master | 192.168.10.160 | 16核48G /data 4TB |
slaves01 | 192.168.10.161 | 16核48G /data 4TB |
slaves02 | 192.168.10.162 | 16核48G /data 4TB |
slaves03 | 192.168.10.163 | 16核48G /data 4TB |
slaves04 | 192.168.10.164 | 16核48G /data 4TB |
配置机器 /etc/hosts
vi /etc/hosts
192.168.10.160 master
192.168.10.161 slaves01
192.168.10.162 slaves02
192.168.10.163 slaves03
192.168.10.164 slaves04
#特别备注
/etc/hosts 采用自己定义的就行,其他注释
安装机器免密登录
ambari-server 需要免密登录执行脚本
```bash
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
#然后查看各个机器的 id_rsa.pub
cd /root/.ssh
cat id_rsa.pub
#编辑其中一台机器的authorized_keys,将其它4台机器的id_rsa.pub内容都添加进去,比如
#保存后,将此文件分发给其它机器
scp -r authorized_keys [email protected]:/root/.ssh
scp -r authorized_keys [email protected]:/root/.ssh
scp -r authorized_keys [email protected]:/root/.ssh
scp -r authorized_keys [email protected]:/root/.ssh
scp -r authorized_keys [email protected]:/root/.ssh
安装 JDK 1.8 环境
cd ~
vi .bashrc
export JAVA_HOME=/usr/local/jdk1.8.0_231
export PATH=${JAVA_HOME}/bin:${PATH}
export CLASSPATH=.:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
#保存后执行命令生效
source .bashrc
#验证是否生效
============java===================
java -version
java version "1.8.0_231"
Java(TM) SE Runtime Environment (build 1.8.0_231-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.231-b11, mixed mode)
## 有时候安装过程会出现权限不足,可以设置权限
chmod 777 /usr/local/jdk1.8.0_231/bin/java
chmod 777 /usr/local/jdk1.8.0_231/bin/keytool
安装 Mysql5.6
由于有些组件的 sql 语法采用的是 5.6 版本的语法,所以选择了 5.6 版本安装
也可以选择将 java原生的两个jar包 $JAVA_HOME/jre/lib/security的local_policy.jar和US_export_policy.jar 密码策略长度不够导致的,需要去官网下载加强包替换一下
#(1)检查系统中是否已安装 MySQL
rpm -qa | grep mysql
#(2)查看已安装的 Mariadb 数据库版本
rpm -qa|grep -i mariadb
#(3)卸载已安装的 Mariadb 数据库
rpm -qa|grep mariadb|xargs rpm -e --nodeps
#(4)再次查看已安装的 Mariadb 数据库版本,确认是否卸载完成
rpm -qa|grep -i mariadb
#(5)下载安装包文件
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
#(6)安装mysql-community-release-el7-5.noarch.rpm包
rpm -ivh mysql-community-release-el7-5.noarch.rpm
#安装完成之后,会在 /etc/yum.repos.d/ 目录下新增 mysql-community.repo 、mysql-community-source.repo 两个 yum 源文件。
yum repolist all | grep mysql
#安装mysql
yum install mysql-server
#(7)检查mysql是否安装成功
rpm -qa | grep mysql
#(8)启动 mysql 服务
systemctl start mysqld.service #启动 mysql
systemctl restart mysqld.service #重启 mysql
systemctl stop mysqld.service #停止 mysql
systemctl enable mysqld.service #设置 mysql 开机启动
#(9)设置密码
# mysql -u root
#在组件执行安装过程中,