第六章 Ambari二次开发之自定义Flink服务 -- metainfo.xml配置文件详解

1、公共框架部分

  • 注意:需要在 内来描述自定义服务相关信息
<?xml version="1.0"?>
<metainfo>
    <schemaVersion>2.0</schemaVersion>
    <services>
		<!-->自定义服务相关信息<-->
    </services>
</metainfo>

2、service - 描述服务

<!-->Ⅰ、name: 服务名,必须唯一,建议大写<-->
<name>FLINK</name>

<!-->Ⅱ、displayName: 服务在 web UI 上的显示名<-->
<displayName>Flink</displayName>

<!-->Ⅲ、comment: 服务的描述信息<-->
<comment>Apache Flink is a streaming dataflow engine that provides data distribution, communication, and fault tolerance for distributed computations over data streams.</comment>

<!-->Ⅳ、version: 服务版本, 用 name 和 version 唯一标记一个服务<-->
<version>1.14.5</version>

<!-->Ⅴ、components: 服务中包含的组件<-->
<components>
    <component>
        <name>FLINK_MASTER</name>
        <displayName>Flink</displayName>
        <category>MASTER</category>
        <cardinality>1</cardinality>
        <commandScript>
            <script>scripts/flink.py</script>
            <scriptType>PYTHON</scriptType>
            <timeout>10000</timeout>
        </commandScript>
    </component>
</components>

<!-->Ⅵ、osSpecifics: 服务会根据操作系统的差异来选择不同的 rpm 包<-->
<osSpecifics>
    <osSpecific>
        <osFamily>redhat7,redhat6</osFamily>
        <packages>
            <package><name>git</name></package>
            <package><name>java-1.7.0-openjdk-devel</name></package>
            <package><name>apache-maven-3.2*</name></package>
        </packages>
    </osSpecific>
</osSpecifics>

<!-->Ⅶ、configuration-dependencie: 服务依赖的 xml 文件<-->
<configuration-dependencies>
    <config-type>flink-ambari-config</config-type>
</configuration-dependencies>

<!-->Ⅷ、restartRequiredAfterChange: 服务更改后是否强制重启<-->
<restartRequiredAfterChange>false</restartRequiredAfterChange>

<!-->Ⅸ、requiredServices: 集群上强制依赖的其他服务<-->
<requiredServices>
    <service>YARN</service>
</requiredServices>
  • 参数说明如下
属性描述
name服务名,必须唯一,建议大写
displayName服务在 web UI 上的显示名
comment服务的描述信息
version服务版本,用 name 和 version 唯一标记一个服务
components服务中包含的组件
commandScript(可选)自定义命令 python 脚本入口,如果一个 Service 的 metainfo.xml 有该字段,那么在 Service 的 Action 列表中就会出现 自定义 命令。
requiredServices:(可选)集群上强制依赖的其他服务。换句话说,安装当前服务之前,必须安装 requiredServices 内指定的服务。
configuration-dependencies(可选)服务依赖的 xml 文件,当在前端页面上修改 xml 文件内容后并保存配置,服务会提示重启,服务下的所有组件都将被重启。
quickLinksConfigurations(可选)自定义快速链接,通常在这里设置 服务 web UI 链接。
osSpecifics(可选)服务会根据操作系统的差异来选择不同的 rpm 包
themes(可选)指定主题配置,通常和 json 文件相关联。
  • 文件结果展示

在这里插入图片描述

3、service/components - 一个服务中服务包含的组件

<!-->components: 服务中包含的组件<-->
<components>
    <component>
        <!-->Ⅰ、name: 组件名称<-->
        <name>FLINK_MASTER</name>
        
        <!-->Ⅱ、displayName: 组件显示名称<-->
        <displayName>Flink</displayName>
        
        <!-->Ⅲ、category: 组件角色<-->
        <category>MASTER</category>
        
        <!-->Ⅳ、cardinality: 安装机器数<-->
        <cardinality>1</cardinality>
        
        <!-->Ⅴ、commandScript: 调用python脚本执行命令<-->
        <commandScript>
            <script>scripts/flink.py</script>
            <scriptType>PYTHON</scriptType>
            <timeout>10000</timeout>
        </commandScript>
    </component>
</components>
  • 参数说明如下
属性说明
name组件名
displayName组件的显示名
category指定了该组件角色,可以是 MASTER、SLAVE、CLIENT。
commandScript标准命令,调用python脚本,用来执行该组件的某些操作
cardinality指的是所要安装的机器数,可以是固定数字 1,可以是一个范围比如 1-2,也可以是 1+、0+、ALL或者是一个范围,进行服务安装向导的时候会限制选择的机器数。
versionAdvertised(可选)是否宣称版本,用于回滚和升级
timelineAppid(可选)存储 metric 数据的默认类型
configuration-dependencies(可选)组件依赖的 xml 文件,当在前端页面上修改 xml 文件内容后并保存配置,服务会提示重启,只有该组件将被重启。
customCommands(可选)标准命令之外自定义的命令
configFiles(可选)客户端配置可以下载的配置文件
  • 前端页面展示:每个标签对应一个Started

在这里插入图片描述

4、service/osSpecifics - 操作系统特定包名 rpm 包

<!-->osSpecifics: 服务会根据操作系统的差异来选择不同的 rpm 包<-->
<osSpecifics>
    <osSpecific>
        <!-->Ⅰ、osFamily: rpm 包适用的操作系统<-->
        <osFamily>redhat7,redhat6</osFamily>
        <!-->Ⅱ、/package/name: 部署服务需要的包名<-->
        <packages>
            <package><name>git</name></package>
            <package><name>java-1.7.0-openjdk-devel</name></package>
            <package><name>apache-maven-3.2*</name></package>
        </packages>
    </osSpecific>
</osSpecifics>
  • 参数说明如下
属性描述
osSpecific/osFamilyrpm 包适用的操作系统
osSpecific/packages/package/name部署服务需要的包名,将执行 yum install xxx 命令

5、service/configuration-dependencies指向configuration中的xml文件配置

  • 注意事项:配置文件可以有多个
<!-->Ⅶ、configuration-dependencie: 服务依赖的 xml 文件<-->
<configuration-dependencies>
    <config-type>flink-ambari-config</config-type>
</configuration-dependencies>
  • 具体参数如下
属性描述
service/configuration-dir可选字段。用于告诉 Ambari Server 在哪里加载 xxx.xml 文件。如果我们希望服务使用默认的 configuration 目录,则可以跳过它。
service/configuration-dependencies/config-type服务依赖的配置文件名称。如果在前端页面上修改了该 xml 文件内容后并保存配置,服务会提示重启,整个服务都将被重启。
  • 前端展示

在这里插入图片描述

  • 注意事项:放置位置
    • ①放在component下:重启单个Componet组件
    • ②放在整个文件下:重启整个服务

6、service/component/commandScript - 标准化命令,用来指定服务的主程序

<!-->实现自定义命令的脚本<-->
<commandScript>
    <!-->Ⅰ、script: 脚本路径<-->
    <script>scripts/flink.py</script>
    
    <!-->Ⅱ、scriptType: 脚本类型<-->
    <scriptType>PYTHON</scriptType>
    
    <!-->Ⅲ、timeout: 自定义命令超时时间<-->
    <timeout>10000</timeout>
</commandScript>
  • 具体参数如下
属性描述
name自定义命令名称
commandScript实现自定义命令的脚本
commandScript/script脚本路径
commandScript/scriptType(可选)脚本类型,目前只支持python
commandScript/timeout(可选)自定义命令超时时间
  • 服务后台主程序

在这里插入图片描述

7、扩展一:service/component/customCommands - 自定义组件服务命令

  • 效果:可配置相关Python脚本,实现服务组件的安装、启动、重启等相关功能
<customCommands>
    <customCommand>
        <name>CLEAN</name>
        <commandScript>
            <script>scripts/flink_server.py</script>
            <scriptType>PYTHON</scriptType>
            <timeout>600</timeout>
        </commandScript>
    </customCommand>
</customCommands>
  • 参数说明
属性描述
name自定义命令名称
commandScript实现自定义命令的脚本
commandScript/script脚本路径
commandScript/scriptType(可选)脚本类型,目前只支持python
commandScript/timeout(可选)自定义命令超时时间

8、扩展二:service/commandScript - 运行服务检查

  • 效果:可配置相关Python脚本,实现服务组件的心跳监控功能
<commandScript>
    <script>scripts/service_check.py</script>
    <scriptType>PYTHON</scriptType>
    <timeout>300</timeout>
</commandScript>
  • 参数说明
属性描述
commandScript实现自定义命令的脚本
commandScript/script脚本路径
commandScript/scriptType(可选)脚本类型,目前只支持python
commandScript/timeout(可选)自定义命令超时时间

9、扩展三:service/themes-dir - 创建自定义主题

  • 注意实现:需要指定自定义主题JSON文件路径
<themes>
    <theme>
        <fileName>credentials.json</fileName>
        <default>true</default>
    </theme>
</themes>
  • 参数说明
属性描述
service/themes-dir可选字段。用于告诉 Ambari Server 在哪里加载 xxx.json 文件。如果我们希望服务使用默认的 themes 目录,则可以跳过它。
service/themes/theme/fileNamejson 文件,指定的主题文件名称
service/themes/theme/default一般为 true

10、扩展四:service/quickLinksConfigurations-dir - 创建quiks链接

  • 注意事项:需要制定qucklink.json文件
<quickLinksConfigurations>
    <quickLinksConfiguration>
        <fileName>quicklinks.json</fileName>
        <default>true</default>
    </quickLinksConfiguration>
</quickLinksConfigurations>
  • 参数说明
属性描述
service/quickLinksConfigurations-dir可选字段。加载 xxx.json 文件路径。如果希望服务使用默认的 quicklinks 目录,则可以跳过它。
service/quickLinksConfigurations/quickLinksConfiguration/fileNamejson 文件,指定的 quickLink 文件名称
service/quickLinksConfigurations/quickLinksConfiguration/default一般为 true
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随缘清风殇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值