区块链大数据平台搭建系列(一):Ambari 部署大数据集群

简介

今天我们来讲讲大数据部署工具 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
​
#在组件执行安装过程中,