• 第五章 Ambari二次开发之自定义Flink服务概述


    1、集成目标

    • 核心:将集成服务的源码整合到 ambari-server rpm 包中

    1.1、集成目标

    • 核心:能在客户方进行一键部署

    ​ 通常,我们在自定义服务集成开发中,会将集成服务的代码项目放置到 /var/lib/ambari-server/resources/stacks/HDP//services/ 目录下。这样子的前提就是 ambari 与 hdp 集群必须提前搭建好。

    • 集成服务代码放置路径

    在这里插入图片描述

    以上方式是适合开发模式的,当集成服务开发、测试、封版之后,不能满足一键部署要求。

    1.2、RPM包制作方式

    • 方式一:整体编译ambari源码
    • 方式二:重新构建rpm包

    2、自定义服务集成原理

    ​ 对于未受 ambari 界面管理的服务,比如 Flink、Kylin、甚至是一个 jar 包,都可以利用 自定义服务集成相关技术 将 服务 集成到 ambari 界面里,可以通过 ambari 实现对 自定义服务 的 安装、配置、启动、监听启动状态、停止、指标监控、告警、快速链接 等很多操作,极其方便。

    2.1、集成自定义服务流程

    ①将自定义服务放到指定目录下

    • 核心:将python 开发的自定义服务脚本放到 /var/lib/ambari-server/resources/stacks/HDP 目录下

    • 结果如下
      在这里插入图片描述

    ②重启ambari server添加服务

    • 核心:ambari 在安装自定义服务的过程中,也会将 python 开发的自定义服务脚本分发到 agent 节点上,由 agent 节点的 自定义服务脚本来执行 安装、部署步骤。

    ③保存相关数据

    • 核心:ambari 安装自定义服务之后,ambari 会在数据库(比如 mysql)相关表里将自定义服务相关信息进行保存,和记录其它 hdp 服务一样的逻辑。

    2.2、集成自定义服务核心配置文件

    • 核心理念:将一个自定义服务定义为一个项目,使用python编写

    在这里插入图片描述

    ①metainfo.xml文件:描述了对整个项目的约束配置,是自定义服务的核心文件

    configuration 目录:里面放置一个或多个 xml 文件,用于将该服务的配置信息展示在前端页面,也可以在ambari 页面上对服务的一些配置做更改

    ③package 目录:里面包含 scripts 文件夹,该目录下存放着 python 文件,用于对服务的安装、配置、启动、停止等操作。自定义服务 python 脚本依赖的模块是 resource_management 。

    • 注意事项:该模块分布在不同的目录下,但内容是一致的

    ④alerts.json 文件:描述 ambari 对服务的 告警 设置。告警类型有 WEB、Port、Metric、Aggregate 和 Script

    ⑤quicklinks.json 文件:用于生成快速链接,实现 url 的跳转,可支持多个 url 展示。

    ⑥role_command_order.json 文件:决定各个服务组件之间的启动顺序

  • 相关阅读:
    总有一天,你一定会很棒
    Redis:分布式锁误删原因分析
    VS2019+cmake 方式添加ffmpeg库文件,cmake添加lib文件dll文件,包含目录示例
    基于蜣螂优化算法DBO优化的VMD-KELM光伏发电短期功率预测MATLAB代码
    【PID优化】基于花朵授粉算法PID控制器优化设计含Matlab源码
    普通人怎么在一年内赚到100万?
    【自然语言处理(NLP)】基于注意力机制的英文新闻标题生成
    解决axios发送post请求,springMVC接收不到数据问题
    Vue 官方文档2.x教程学习笔记 1 基础 1.8 列表渲染 1.8.1 用 v-for 把一个数组对应为一组元素 ~ 1.8.3 维护状态
    【并发】深入理解Java线程的底层原理
  • 原文地址:https://blog.csdn.net/qq_27924553/article/details/127482643