Ambari自动化部署

  • 目录
    • 组件概览
    • 自定义服务
      • Ambari-Flink
      • Ambari-Dolphinscheduler
      • Ambari-Presto
      • Ambari-Kudu
    • 部署流程
      • Step.1 准备机器
      • Step.2 运行安装脚本
      • Step.3 Ambari配置集群
        • 1.初始化集群,填写集群名字
        • 2.选择Use Local Repository, 选择操作系统redhat7填写以下链接
        • 3.填写集群安装的主机名
        • 4.Ambari安装Services
        • 5.Ambari新加服务
        • 6.Ambari配置服务自动重启
      • Step.4 配置Ranger权限
      • Step.5 使用DolphinScheduler调度Flink任务

组件概览

1.HDP 3.1.4.0-315组件, 包含但不限于 HDFS,YARN,Tez,Hive,HBase,ZooKeeper,Kafka,Ranger,Spark2,DolphinScheduler,Flink,Kudu, Presto


image-20220112165921682.png

2.install.sh使得新机器可以使用脚本一键安装和配置和ambari,只需要填写sship的机器名和密码文件。uninstall.sh可以一键卸载相关安装包和文件,重启机器。

3.所有HDP安装包和所需文件以及脚本都可以在此链接下载(13.28G) 链接:链接:https://pan.baidu.com/s/1Vzu_45wWB_BvsA_VH9BczQ 密码:2pjm

image-20220112165044484.png

自定义服务

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地址

部署流程

Step.1 准备机器

3台机器: 4核8G以上配置 , centos7, master, slaves01, slaves02
4台机器: 2核4G以上 + 4核8G以上配置 , centos7, master(2核4G), slaves01, slaves02 , slaves03
5台机器: 2核4G以上 + 4核8G以上配置 , centos7, master(2核4G), slaves01, slaves02 , slaves03 , slaves04
设置虚拟机主机名为master, slaves01, slaves02, slaves0X ..., 如果修改名字, 需要修改install脚本对应命名规则, 建议按此规则进行命名

Step.2 运行安装脚本

# 登录到master机器主目录, 进行解压
tar -zxvf ambari.tar.gz
#### 修改sshlogin目录下sship对应机器密码 (见下图)
# 运行安装脚本(需要一定时长, 耐心等待脚本执行完毕)
bash install.sh
image-20220112181219263.png

Step.3 Ambari配置集群

访问http://master:8080 或者 MasterIP:8080 (admin:admin), 进入Ambari WEB管理界面,运行安装向导。(在本地hosts配置集群的域名映射)

1.初始化集群,填写集群名字
image-20210816173613792.png
2.选择Use Local Repository, 选择操作系统redhat7填写以下链接

HDP-3.1: http://master/hdps/HDP/centos7/3.1.4.0-315
HDP-3.1-GPL: http://master/hdps/HDP-GPL/centos7/3.1.4.0-315
HDP-UTILS-1.1.0.22: http://master/hdps/HDP-UTILS/centos7/1.1.0.22

image-20210816173807660.png

3.填写集群安装的主机名

只有3台机器: master slaves01 slaves02
大于3台机器: slaves01 slaves02 slaves03 slaves04
在master机器上 cat ~/.ssh/id_rsa, 复制粘贴到下面SSH Private Key


image-20210816173910496.png
4.Ambari安装Services

选择如下服务进行统一安装:HDFS、Tez、Hive、HBase、Zookeeper、Ambari Metrics、Kafka、Ranger、SmartSense、Spark2, Flink。选好之后都选择PROCEED ANYWAY进入下一步。

Kudu 和 DolphinScheduler、Presto有依赖关系尚未处理, 大家也可以在services中metainfo.xml配置依赖关系,所以后面的步骤会按顺序安装DolphinScheduler、Kudu和Presto。

注意: Kudu安装目前需要修改一下配置: 需要修改Advanced tserver-gflagfile中tserver_master_addrs属性值为实际master地址

image-20210816174325019.png

image-20210816174339055.png

image-20210816174350265.png

image-20210816174409705.png

Services分配到对应服务器时,NameNode和Hive MetaStore需要和install.sh脚本中HDFS_NAMENODE_HOST(默认第一台机器)和HIVE_Metastore_URI(默认第二台机器)指定的服务器一致。
image-20210816174732499.png

Kafka默认分配一个Broker,此处需要增加到N个,每台服务器上一个Broker。
image-20210816174632741.png

按下图规则分配对应的服务数量
image-20210816174857786.png

image-20210816175018270.png

涉及到Database的配置,都需要Test Connection并验证通过,否则不能进行下一步。
image-20210816175121969.png

image-20210816175209392.png

image-20210816175239517.png

image-20210816175253202.png

image-20210816182447870.png

image-20210816182459276.png

5.Ambari新加服务
image-20220112173619781.png

Kudu配置修改


image-20220112173726968.png
6.Ambari配置服务自动重启
image-20220112173950468.png

Step.4 配置Ranger权限

image-20220112174200545.png

增加用户root, test, 为root用户分配hdfs,yarn,hive,hbase权限, 为test用户分配hdfs读写权限, 便于通过namenode ui上传文件


image-20220112174338116.png

Step.5 使用DolphinScheduler调度Flink任务

image-20220112174546922.png

1.创建租户, 编辑用户使得用户拥有租户
image-20220112174732557.png

2.上传测试资源, flink/WordCount.jar,主类为org.apache.flink.examples.java.wordcount.WordCount,创建工作流
可以在下载文件的demo/flink目录, 上传WordCount.jar到资源中心的flink目录下, 然后再项目管理工作流定义导入WordCount-Cluster.json工作流
image-20220112175226495.png

image-20220112175418849.png

image-20220112175450516.png

系列文章

第一篇: Ambari自动化部署
第二篇: 数据埋点设计和SDK源码
第三篇: 数据采集和验证方案
第四篇: ETL实时方案: Kafka->Flink->Hive
第五篇: ETL用户数据处理: kafka->spark->kudu
第六篇: Presto分析模型SQL和UDF函数
第七篇: 用户画像和留存预测模型

你可能感兴趣的:(Ambari自动化部署)