组件概览
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地址
部署流程
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
Step.3 Ambari配置集群
访问http://master:8080 或者 MasterIP:8080 (admin:admin), 进入Ambari WEB管理界面,运行安装向导。(在本地hosts配置集群的域名映射)
1.初始化集群,填写集群名字
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
3.填写集群安装的主机名
只有3台机器: master slaves01 slaves02
大于3台机器: slaves01 slaves02 slaves03 slaves04
在master机器上 cat ~/.ssh/id_rsa, 复制粘贴到下面SSH Private Key
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地址
Services分配到对应服务器时,NameNode和Hive MetaStore需要和install.sh脚本中HDFS_NAMENODE_HOST(默认第一台机器)和HIVE_Metastore_URI(默认第二台机器)指定的服务器一致。
Kafka默认分配一个Broker,此处需要增加到N个,每台服务器上一个Broker。
按下图规则分配对应的服务数量
涉及到Database的配置,都需要Test Connection并验证通过,否则不能进行下一步。
5.Ambari新加服务
Kudu配置修改
6.Ambari配置服务自动重启
Step.4 配置Ranger权限
增加用户root, test, 为root用户分配hdfs,yarn,hive,hbase权限, 为test用户分配hdfs读写权限, 便于通过namenode ui上传文件
Step.5 使用DolphinScheduler调度Flink任务
1.创建租户, 编辑用户使得用户拥有租户
2.上传测试资源, flink/WordCount.jar,主类为org.apache.flink.examples.java.wordcount.WordCount,创建工作流
可以在下载文件的demo/flink目录, 上传WordCount.jar到资源中心的flink目录下, 然后再项目管理工作流定义导入WordCount-Cluster.json工作流
系列文章
第一篇: Ambari自动化部署
第二篇: 数据埋点设计和SDK源码
第三篇: 数据采集和验证方案
第四篇: ETL实时方案: Kafka->Flink->Hive
第五篇: ETL用户数据处理: kafka->spark->kudu
第六篇: Presto分析模型SQL和UDF函数
第七篇: 用户画像和留存预测模型