以前,在 github 上开源了 ambari-Kylin 项目,可离线部署,支持 hdp 2.6+ 及 hdp 3.0+ 。github 地址为: https://github.com/841809077/... ,欢迎 star 。这段时间,陆续有很多朋友经过公众号联系到我,问我相关的集成步骤。今天正好休息,索性将 ambari 自定义服务集成的原理给你们整理出来。html
它其实不难,可是网络上并无多少这方面的资料分享,官方也不多,因此学习门槛就稍微高了一些。但你若是能持续关注我,我相信您能快速上手。前端
ambari 是一个可视化管理 Hadoop 生态系统的一个开源服务,像 hdfs、yarn、mapreduce、zookeeper、hive、hbase、spark、kafka 等均可以使用 ambari 界面来统一安装、部署、监控、告警等。python
<!--more-->mysql
对于未受 ambari 界面管理的服务,好比 Elasticsearch、Kylin、甚至是一个 jar 包,均可以利用 自定义服务集成相关技术 将 服务 集成到 ambari 界面里。这样,就能够经过 ambari 实现对 自定义服务 的 安装、配置、启动、监听启动状态、中止、指标监控、告警、快速连接 等不少操做,极其方便。git
对于安装过 ambari 的朋友可能比较熟悉,咱们在部署 hdp 集群的时候,在界面上,会让咱们选择 hdp stack 的版本,好比有 2.0、... 、2.六、3.0、3.1 等,每个 stack 版本在 ambari 节点上都有对应的目录,里面存放着 hdp 各服务,像 hdfs、yarn、mapreduce、spark、hbase 这些,stack 版本高一些的,服务相对多一些。stack 版本目录具体在 ambari-server 节点的 /var/lib/ambari-server/resources/stacks/HDP 下,咱们用 python 开发的自定义服务脚本就会放到这个目录下。github
将自定义服务放到指定目录下,咱们须要重启 ambari server 才能在 添加服务 界面加载出来咱们的自定义服务,ambari 在安装自定义服务的过程当中,也会将 python 开发的自定义服务脚本分发到 agent 节点上,由 agent 节点的 自定义服务脚本 来执行 安装、部署 步骤。sql
等经过 ambari 安装自定义服务以后,ambari 会在数据库(好比 mysql)相关表里将自定义服务相关信息进行保存,和记录其它 hdp 服务同样的逻辑。数据库
一个自定义服务暂且将它定义为一个项目,项目名称须为大写,使用 python 编写。该项目框架有那么几个必不可少的文件或目录,分别是:json
除了上述必不可少的目录或文件以外,还有一些文件能够丰富咱们自定义服务的功能。好比:segmentfault
以下图所示,这是自定义服务 KYLIN 的项目框架:
ambari 自定义服务集成的细节有不少,可是官方网站上并无太多的篇幅去介绍这一块知识,只能本身慢慢摸索。幸好有公司的支持和我的的努力,我已经将 自定义服务 的大部分知识点掌握,特绘制相关的知识脑图,具体以下:
后面我会利用业余时间将上述脑图中的 12 项录制成视频,节约你们学习成本。若是你们有这方面的需求,能够关注个人公众号,加我好友,一块儿讨论技术与人生。