02.Ambari自定义服务开发-metainfo.xml介绍

发布于:2024-06-27 ⋅ 阅读:(48) ⋅ 点赞:(0)

metainfo.xml 介绍

​ 在Ambari自定义开发中,metainfo.xml 配置文件起着至关重要的作用。它用于定义服务的元数据信息,包括服务的版本、组件、执行脚本、适用操作系统以及服务间的依赖关系等。这些信息对于Ambari来说是必要的,因为它们帮助Ambari理解如何部署、管理和监控自定义服务。

配置说明

Hbase metainfo.xml配置说明

<?xml version="1.0"?>
<metainfo>
  <schemaVersion>2.0</schemaVersion>
  <services>
    <service>
      <!--服务名称,在所有Ambari安装服务中保持唯一-->
      <name>HBASE</name>
      <!--在Ambari Web UI中显示的名称-->
      <displayName>HBase</displayName>
      <!--服务描述,在安装服务时候提示的说明-->
      <comment>Non-relational distributed database and centralized service for configuration management &amp;
        synchronization
      </comment>
      <!--版本号,安装服务时name+version组合去重-->
      <version>2.0.0.3.0</version>
      <!--设置服务在初次部署集群时强制安装-->
      <!--<selection>MANDATORY</selection>-->
      <components>
        <component>
          <!--组件名称-->
          <name>HBASE_MASTER</name>
          <!--组件在页面显示名称-->
          <displayName>HBase Master</displayName>
          <!--组件类型,取值: MASTER、SLAVE、CLIENT-->
          <category>MASTER</category>
          <!--需要安装的机器数,可以是固定数字 1,可以是一个范围比如 1-2,也可以是 1+、0+、ALL或者是一个范围,进行服务安装向导的时候会限制选择的机器数。-->
          <cardinality>1+</cardinality>
          <!--是否宣称版本,用于回滚和升级-->
          <versionAdvertised>true</versionAdvertised>
          <!--存储 metric 数据的默认类型-->
          <timelineAppid>hbase</timelineAppid>
          <!--组件依赖的 xml 文件,当在前端页面上修改 xml 文件内容后并保存配置,服务会提示重启,只有该组件将被重启。-->
          <dependencies>
            <dependency>
              <name>HDFS/HDFS_CLIENT</name>
              <scope>host</scope>
              <auto-deploy>
                <enabled>true</enabled>
              </auto-deploy>
            </dependency>
            <dependency>
              <name>ZOOKEEPER/ZOOKEEPER_SERVER</name>
              <scope>cluster</scope>
              <auto-deploy>
                <enabled>true</enabled>
                <co-locate>HBASE/HBASE_MASTER</co-locate>
              </auto-deploy>
            </dependency>
          </dependencies>
          <!--标准命令,调用python脚本,用来执行该组件的某些操作-->
          <commandScript>
            <script>scripts/hbase_master.py</script>
            <scriptType>PYTHON</scriptType>
            <timeout>1200</timeout>
          </commandScript>
          <logs>
            <log>
              <logId>hbase_master</logId>
              <primary>true</primary>
            </log>
          </logs>
          <!--标准命令之外自定义的命令-->
          <customCommands>
            <customCommand>
              <!--自定义命令名称-->
              <name>DECOMMISSION</name>
              <!--实现自定义命令的脚本-->
              <commandScript>
                <!--脚本路径-->
                <script>scripts/hbase_master.py</script>
                <!--脚本类型,目前只支持python-->
                <scriptType>PYTHON</scriptType>
                <!--自定义命令超时时间-->
                <timeout>600</timeout>
              </commandScript>
            </customCommand>
          </customCommands>
        </component>

        <component>
          <name>HBASE_REGIONSERVER</name>
          <displayName>RegionServer</displayName>
          <category>SLAVE</category>
          <cardinality>1+</cardinality>
          <versionAdvertised>true</versionAdvertised>
          <decommissionAllowed>true</decommissionAllowed>
          <timelineAppid>hbase</timelineAppid>
          <commandScript>
            <script>scripts/hbase_regionserver.py</script>
            <scriptType>PYTHON</scriptType>
          </commandScript>
          <bulkCommands>
            <displayName>RegionServers</displayName>
            <!-- Used by decommission and recommission -->
            <masterComponent>HBASE_MASTER</masterComponent>
          </bulkCommands>
          <logs>
            <log>
              <logId>hbase_regionserver</logId>
              <primary>true</primary>
            </log>
          </logs>
        </component>

        <component>
          <name>HBASE_CLIENT</name>
          <displayName>HBase Client</displayName>
          <category>CLIENT</category>
          <cardinality>1+</cardinality>
          <versionAdvertised>true</versionAdvertised>
          <commandScript>
            <script>scripts/hbase_client.py</script>
            <scriptType>PYTHON</scriptType>
          </commandScript>
          <!--客户端配置可以下载的配置文件-->
          <configFiles>
            <configFile>
              <!--下载文件类型, xml or env sh, yaml, etc-->
              <type>xml</type>
              <!--下载的文件文件名-->
              <fileName>hbase-site.xml</fileName>
              <!--包含配置属性的数据字典-->
              <dictionaryName>hbase-site</dictionaryName>
            </configFile>
            <configFile>
              <type>env</type>
              <fileName>hbase-env.sh</fileName>
              <dictionaryName>hbase-env</dictionaryName>
            </configFile>
            <configFile>
              <type>xml</type>
              <fileName>hbase-policy.xml</fileName>
              <dictionaryName>hbase-policy</dictionaryName>
            </configFile>
            <configFile>
              <type>env</type>
              <fileName>log4j.properties</fileName>
              <dictionaryName>hbase-log4j</dictionaryName>
            </configFile>
          </configFiles>
        </component>

        <component>
          <name>PHOENIX_QUERY_SERVER</name>
          <displayName>Phoenix Query Server</displayName>
          <category>SLAVE</category>
          <cardinality>0+</cardinality>
          <versionAdvertised>true</versionAdvertised>
          <commandScript>
            <script>scripts/phoenix_queryserver.py</script>
            <scriptType>PYTHON</scriptType>
          </commandScript>
          <logs>
            <log>
              <logId>hbase_phoenix_server</logId>
              <primary>true</primary>
            </log>
          </logs>
        </component>
      </components>

      <!--自定义命令脚本-->
      <commandScript>
        <script>scripts/service_check.py</script>
        <scriptType>PYTHON</scriptType>
        <timeout>300</timeout>
      </commandScript>

      <!--依赖服务,表示安装该服务前,必须要安装requiredServices下的所有服务-->
      <requiredServices>
        <service>ZOOKEEPER</service>
        <service>HDFS</service>
      </requiredServices>

      <!--可选字段。用于告诉 Ambari Server 在哪里加载 xxx.xml 文件。如果我们希望服务使用默认的 configuration 目录,则可以跳过它。-->
      <!--<configuration-dir></configuration-dir>-->

      <!--服务依赖的配置文件,当配置文件被修改时,该服务会提示需要重启,服务下所有组件重启后提示自动消除-->
      <configuration-dependencies>
        <!--服务依赖的配置文件名称。如果在前端页面上修改了该 xml 文件内容后并保存配置,服务会提示重启,整个服务都将被重启。-->
        <config-type>core-site</config-type> <!-- hbase puts core-site in it's folder -->
        <config-type>viewfs-mount-table</config-type>
        <config-type>hbase-policy</config-type>
        <config-type>hbase-site</config-type>
        <config-type>hbase-env</config-type>
        <config-type>hbase-log4j</config-type>
        <config-type>ranger-hbase-plugin-properties</config-type>
        <config-type>ranger-hbase-audit</config-type>
        <config-type>ranger-hbase-policymgr-ssl</config-type>
        <config-type>ranger-hbase-security</config-type>
        <config-type>hbase-atlas-application-properties</config-type>
      </configuration-dependencies>

      <!--快捷链接,在WebUI中快速跳转的链接,通常为服务的管理监控页面,如Hbase Master UI-->
      <quickLinksConfigurations>
        <quickLinksConfiguration>
          <!--默认值:quicklinks,可选字段。用于告诉 Ambari Server 在哪里加载 xxx.json 文件。如果我们希望服务使用默认的 quicklinks 目录,则可以跳过它-->
          <!--<quickLinksConfigurations-dir></quickLinksConfigurations-dir>-->
          <!--json 文件,指定的 quickLink 文件名称-->
          <fileName>quicklinks.json</fileName>
          <!--一般为 true-->
          <default>true</default>
        </quickLinksConfiguration>
      </quickLinksConfigurations>

      <!--根据不同操作系统选择不同的安装包-->
      <osSpecifics>
        <osSpecific>
          <!--rpm 包适用的操作系统-->
          <osFamily>redhat7,amazonlinux2,redhat6,suse11,suse12</osFamily>
          <packages>
            <package>
              <!--部署服务需要的包名,将执行 yum install xxx 命令-->
              <name>hbase_${stack_version}</name>
            </package>
            <package>
              <name>phoenix_${stack_version}</name>
              <condition>should_install_phoenix</condition>
            </package>
          </packages>
        </osSpecific>
        <osSpecific>
          <osFamily>debian7,debian9,ubuntu12,ubuntu14,ubuntu16,ubuntu18</osFamily>
          <packages>
            <package>
              <name>hbase-${stack_version}</name>
            </package>
            <package>
              <name>phoenix-${stack_version}</name>
              <condition>should_install_phoenix</condition>
            </package>
          </packages>
        </osSpecific>
      </osSpecifics>

      <!--设置主题配置-->
      <themes>
        <theme>
          <!--可选字段。用于告诉 Ambari Server 在哪里加载 xxx.json 文件。如果我们希望服务使用默认的 themes 目录,则可以跳过它。-->
          <!--<themes-dir></themes-dir>-->
          <!--json 文件,指定的主题文件名称-->
          <fileName>theme.json</fileName>
          <!--一般为 true-->
          <default>true</default>
        </theme>
        <theme>
          <fileName>directories.json</fileName>
          <default>true</default>
        </theme>
      </themes>

    </service>
  </services>
</metainfo>

自己编写的DORIS服务metainfo.xml

<?xml version="1.0"?>
<metainfo>
    <schemaVersion>2.0</schemaVersion>
    <services>
        <service>
            <!--服务名称,在所有Ambari安装服务中保持唯一-->
            <name>DORIS</name>
            <!--在Ambari Web UI中显示的名称-->
            <displayName>Doris</displayName>
            <!--服务描述,在安装服务时候提示的说明-->
            <comment>Doris 2.0.5 版本服务安装</comment>
            <!--版本号,安装服务时name+version组合去重-->
            <version>2.0.5</version>
            <!--设置服务在初次部署集群时强制安装-->
            <!--<selection>MANDATORY</selection>-->
            <configuration-dependencies>
                <config-type>fe</config-type>
            </configuration-dependencies>
            <components>
                <component>
                    <!--组件名称-->
                    <name>FRONTEND</name>
                    <!--组件在页面显示名称-->
                    <displayName>Doris Frontend</displayName>
                    <!--组件类型,取值: MASTER、SLAVE、CLIENT-->
                    <category>MASTER</category>
                    <!--需要安装的机器数,可以是固定数字 1,可以是一个范围比如 1-2,也可以是 1+、0+、ALL或者是一个范围,进行服务安装向导的时候会限制选择的机器数。-->
                    <cardinality>1</cardinality>
                    <!--是否宣称版本,用于回滚和升级-->
                    <versionAdvertised>true</versionAdvertised>
                    <!--存储 metric 数据的默认类型-->
                    <timelineAppid>doris</timelineAppid>
                    <!--标准命令,必填选项调用python脚本,用来执行该组件的某些操作,该脚本包含启动、停止等执行方法-->
                    <commandScript>
                        <script>scripts/fe.py</script>
                        <scriptType>PYTHON</scriptType>
                        <timeout>1200</timeout>
                    </commandScript>
                    <customCommands>
                        <customCommand>
                            <name>node_check</name>
                            <background>true</background>
                            <commandScript>
                                <script>scripts/fe.py</script>
                                <scriptType>PYTHON</scriptType>
                            </commandScript>
                        </customCommand>
                        <customCommand>
                            <name>add_backends</name>
                            <background>true</background>
                            <commandScript>
                                <script>scripts/fe.py</script>
                                <scriptType>PYTHON</scriptType>
                            </commandScript>
                        </customCommand>

                    </customCommands>

                </component>
                <component>
                    <!--组件名称-->
                    <name>FRONTEND_OBSERVER</name>
                    <!--组件在页面显示名称-->
                    <displayName>Doris Frontend Observer</displayName>
                    <!--组件类型,取值: MASTERSLAVECLIENT-->
                    <category>SLAVE</category>
                    <!--需要安装的机器数,可以是固定数字 1,可以是一个范围比如 1-2,也可以是 1+0+ALL或者是一个范围,进行服务安装向导的时候会限制选择的机器数。-->
                    <cardinality>1+</cardinality>
                    <!--是否宣称版本,用于回滚和升级-->
                    <versionAdvertised>true</versionAdvertised>
                    <!--存储 metric 数据的默认类型-->
                    <timelineAppid>doris</timelineAppid>
                    <!--标准命令,必填选项调用python脚本,用来执行该组件的某些操作,该脚本包含启动、停止等执行方法-->
                    <commandScript>
                        <script>scripts/frontend_observer.py</script>
                        <scriptType>PYTHON</scriptType>
                        <timeout>1200</timeout>
                    </commandScript>
                </component>
                <component>
                    <!--组件名称-->
                    <name>FRONTEND_FOLLOWER</name>
                    <!--组件在页面显示名称-->
                    <displayName>Doris Frontend Follower</displayName>
                    <!--组件类型,取值: MASTERSLAVECLIENT-->
                    <category>SLAVE</category>
                    <!--需要安装的机器数,可以是固定数字 1,可以是一个范围比如 1-2,也可以是 1+0+ALL或者是一个范围,进行服务安装向导的时候会限制选择的机器数。-->
                    <cardinality>0+</cardinality>
                    <!--是否宣称版本,用于回滚和升级-->
                    <versionAdvertised>true</versionAdvertised>
                    <!--存储 metric 数据的默认类型-->
                    <timelineAppid>doris</timelineAppid>
                    <!--标准命令,必填选项调用python脚本,用来执行该组件的某些操作,该脚本包含启动、停止等执行方法-->
                    <commandScript>
                        <script>scripts/frontend_follower.py</script>
                        <scriptType>PYTHON</scriptType>
                        <timeout>1200</timeout>
                    </commandScript>
                </component>

                <component>
                    <!--组件名称,command-xxx.json中的backend_hosts字段命名就是这个取的字段-->
                    <name>BACKEND</name>
                    <!--组件在页面显示名称-->
                    <displayName>Doris Backend</displayName>
                    <!--组件类型,取值: MASTERSLAVECLIENT-->
                    <category>SLAVE</category>
                    <!--需要安装的机器数,可以是固定数字 1,可以是一个范围比如 1-2,也可以是 1+0+ALL或者是一个范围,进行服务安装向导的时候会限制选择的机器数。-->
                    <cardinality>0+</cardinality>
                    <!--是否宣称版本,用于回滚和升级-->
                    <versionAdvertised>true</versionAdvertised>
                    <!--存储 metric 数据的默认类型-->
                    <timelineAppid>doris</timelineAppid>
                    <!--标准命令,必填选项调用python脚本,用来执行该组件的某些操作,该脚本包含启动、停止等执行方法-->
                    <commandScript>
                        <script>scripts/be.py</script>
                        <scriptType>PYTHON</scriptType>
                        <timeout>1200</timeout>
                    </commandScript>
                </component>
                <component>
                    <name>DORIS_CLIENT</name>
                    <displayName>Doris Client</displayName>
                    <category>CLIENT</category>
                    <cardinality>1+</cardinality>
                    <versionAdvertised>true</versionAdvertised>
                    <commandScript>
                        <script>scripts/doris_client.py</script>
                        <scriptType>PYTHON</scriptType>
                    </commandScript>
                    <configFiles>
                        <configFile>
                            <type>properties</type>
                            <fileName>fe.conf</fileName>
                            <dictionaryName>fe</dictionaryName>
                        </configFile>
                        <configFile>
                            <type>properties</type>
                            <fileName>be.conf</fileName>
                            <dictionaryName>be</dictionaryName>
                        </configFile>
                        <configFile>
                            <type>properties</type>
                            <fileName>doris-env</fileName>
                            <dictionaryName>doris-env</dictionaryName>
                        </configFile>
                    </configFiles>
                </component>
            </components>
            <commandScript>
                <script>scripts/service_check.py</script>
                <scriptType>PYTHON</scriptType>
                <timeout>1800</timeout>
            </commandScript>
            <!--可选字段。用于告诉 Ambari Server 在哪里加载 xxx.xml 文件。如果我们希望服务使用默认的 configuration 目录,则可以跳过它。-->
            <!--<configuration-dir></configuration-dir>-->

            <!--快捷链接,在WebUI中快速跳转的链接,通常为服务的管理监控页面,如Hbase Master UI-->
            <quickLinksConfigurations>
                <quickLinksConfiguration>
                    <!--默认值:quicklinks,可选字段。用于告诉 Ambari Server 在哪里加载 xxx.json 文件。如果我们希望服务使用默认的 quicklinks 目录,则可以跳过它-->
                    <!--<quickLinksConfigurations-dir></quickLinksConfigurations-dir>-->
                    <!--json 文件,指定的 quickLink 文件名称-->
                    <fileName>quicklinks.json</fileName>
                    <!--一般为 true-->
                    <default>true</default>
                </quickLinksConfiguration>
            </quickLinksConfigurations>

            <!--根据不同操作系统选择不同的安装包-->
            <osSpecifics>
                <osSpecific>
                    <osFamily>any</osFamily>
                </osSpecific>
            </osSpecifics>

            <!--设置主题配置-->
            <themes>
                <theme>
                    <!--可选字段。用于告诉 Ambari Server 在哪里加载 xxx.json 文件。如果我们希望服务使用默认的 themes 目录,则可以跳过它。-->
                    <!--<themes-dir></themes-dir>-->
                    <!--json 文件,指定的主题文件名称-->
                    <fileName>theme.json</fileName>
                    <!--一般为 true-->
                    <default>true</default>
                </theme>
                <theme>
                    <fileName>directories.json</fileName>
                    <default>true</default>
                </theme>
            </themes>

            <requiredServices>
                <service>ZOOKEEPER</service>
                <service>HDFS</service>
                <service>SPARK2</service>
            </requiredServices>
        </service>
    </services>
</metainfo>

配置参数详细介绍

tip: 这里层级是以<service>下的元素为一级,因为我们自定义开发都是基于<service>下进行开发的,如下面所示,<name>元素为一级

<?xml version="1.0"?>
<metainfo>
    <schemaVersion>2.0</schemaVersion>
    <services>
        <service>
            <!--服务名称,在所有Ambari安装服务中保持唯一-->
            <name>DORIS</name>
      </service>
  </services>
</metainfo>
层级 字段名称 是否为父元素(即无具体值,具体值在子元素中配置) 描述 取值举例 取值范围
一级 name 服务名称,在所有Ambari安装服务中保持唯一
一级 displayName 在Ambari Web UI中显示的名称
一级 comment 服务描述,在安装服务时候提示的说明
一级 version 版本号,安装服务时name+version组合去重
一级 selection MANDATORY:设置服务在初次部署集群时强制安装 MANDATORY
一级 configuration-dependencies 设置修改配置提示重启服务
二级 config-type 当修改该配置后提示重启整个服务
一级 components 组件列表,在该元素下可以设置需要安装的多个组件,拿Doris举例可分为:BE、FE
二级 component 具体的组件,该元素下是具体组件的配置信息
三级 name 组件名称,唯一值 FRONTEND
displayName 组件在页面显示名称 Doris Frontend
category 组件类型,取值: MASTER、SLAVE、CLIENT MASTER
cardinality 需要安装的机器数(目前测试只有当category类型为MASTER时,该值生效),可以是固定数字 1,可以是一个范围比如 1-2,也可以是 1+、0+、ALL或者是一个范围,进行服务安装向导的时候会限制选择的机器数。 1
timelineAppid 存储 metric 数据的类型
commandScript 标准命令,调用python脚本,用来执行该组件的某些操作
四级 script 基础命令如:启动/停止等命令需要执行的函数的脚本名称
scriptType 脚本类型,为:PYTHON PYTHON
timeout 超时时间 1200
三级 customCommands 自定义运行命令,在UI中更多可以看到该选项配置的脚本
四级 customCommand
五级 name 执行自定义函数名称,如:password_init,则在下方设置脚本中需要包含该方法,UI中显示image-20240407154346070
background 一般为true
五级 commandScript 上面配置自定义命令执行的脚本配置
六级 script 上面配置自定义命令执行的脚本文件
scriptType 脚本类型,为:PYTHON PYTHON
三级 configFiles 当 category 为CLIENT时,该值设置需要下载的配置文件
四级 configFile 需要下载配置文件具体配置
五级 type 文件类型
env:将 dictionaryName 定义的配置文件中<name>content</name> 的属性内容放到新文件里下载
properties:将 dictionaryName 定义的配置文件转换为 properties 格式,提供下载
xml:将 dictionaryName 定义的配置文件转换为 xml 格式存储,提供下载
env/properties/xml
fileName 在Ambari WebUI下载下来的文件名
dictionaryName 读取configuration目录下的对应配置文件名称前缀,不包含.xml
二级 commandScript 服务检查脚本配置
三级 script 运行的脚本一般为:scripts/service_check.py
scriptType 脚本类型,为:PYTHON PYTHON
timeout 超时时间
二级 osSpecifics
三级 osSpecific
四级 osFamily 设置 any 为所有操作系统都匹配
二级 themes
三级 theme
四级 fileName json 文件,指定的主题文件名称
default 一般为 true
themes-dir 可选字段。用于告诉 Ambari Server 在哪里加载 xxx.json 文件。如果我们希望服务使用默认的 themes 目录,则可以跳过它。
二级 quickLinksConfigurations 快捷链接,在WebUI中快速跳转的链接,通常为服务的管理监控页面,如Hbase Master UI
三级 quickLinksConfiguration 快捷链接,在WebUI中快速跳转的链接,通常为服务的管理监控页面,如Hbase Master UI
四级 quickLinksConfigurations-dir 默认值:quicklinks,可选字段。用于告诉 Ambari Server 在哪里加载 xxx.json 文件。如果我们希望服务使用默认的 quicklinks 目录,则可以跳过它
fileName json 文件,指定的 quickLink 文件名称
default 一般为 true

配置文件样例

下面两个是简单的样例,可用作参考

DORIS
<?xml version="1.0"?>
<metainfo>
    <schemaVersion>2.0</schemaVersion>
    <services>
        <service>
            <!--服务名称,在所有Ambari安装服务中保持唯一-->
            <name>DORIS</name>
            <!--在Ambari Web UI中显示的名称-->
            <displayName>Doris</displayName>
            <!--服务描述,在安装服务时候提示的说明-->
            <comment>Doris 2.0.5 版本服务安装</comment>
            <!--版本号,安装服务时name+version组合去重-->
            <version>2.0.5</version>
            <!--设置服务在初次部署集群时强制安装-->
            <!--<selection>MANDATORY</selection>-->
            <configuration-dependencies>
                <config-type>fe</config-type>
            </configuration-dependencies>
            <components>
                <component>
                    <!--组件名称-->
                    <name>FRONTEND</name>
                    <!--组件在页面显示名称-->
                    <displayName>Doris Frontend</displayName>
                    <!--组件类型,取值: MASTER、SLAVE、CLIENT-->
                    <category>MASTER</category>
                    <!--需要安装的机器数,可以是固定数字 1,可以是一个范围比如 1-2,也可以是 1+、0+、ALL或者是一个范围,进行服务安装向导的时候会限制选择的机器数。-->
                    <cardinality>1</cardinality>
                    <!--是否宣称版本,用于回滚和升级-->
                    <versionAdvertised>true</versionAdvertised>
                    <!--存储 metric 数据的默认类型-->
                    <timelineAppid>doris</timelineAppid>
                    <!--标准命令,必填选项调用python脚本,用来执行该组件的某些操作,该脚本包含启动、停止等执行方法-->
                    <commandScript>
                        <script>scripts/fe.py</script>
                        <scriptType>PYTHON</scriptType>
                        <timeout>1200</timeout>
                    </commandScript>
                    <customCommands>
                        <customCommand>
                            <name>node_check</name>
                            <background>true</background>
                            <commandScript>
                                <script>scripts/fe.py</script>
                                <scriptType>PYTHON</scriptType>
                            </commandScript>
                        </customCommand>
                        <customCommand>
                            <name>add_backends</name>
                            <background>true</background>
                            <commandScript>
                                <script>scripts/fe.py</script>
                                <scriptType>PYTHON</scriptType>
                            </commandScript>
                        </customCommand>

                    </customCommands>

                </component>
                <component>
                    <!--组件名称-->
                    <name>FRONTEND_OBSERVER</name>
                    <!--组件在页面显示名称-->
                    <displayName>Doris Frontend Observer</displayName>
                    <!--组件类型,取值: MASTERSLAVECLIENT-->
                    <category>SLAVE</category>
                    <!--需要安装的机器数,可以是固定数字 1,可以是一个范围比如 1-2,也可以是 1+0+ALL或者是一个范围,进行服务安装向导的时候会限制选择的机器数。-->
                    <cardinality>1+</cardinality>
                    <!--是否宣称版本,用于回滚和升级-->
                    <versionAdvertised>true</versionAdvertised>
                    <!--存储 metric 数据的默认类型-->
                    <timelineAppid>doris</timelineAppid>
                    <!--标准命令,必填选项调用python脚本,用来执行该组件的某些操作,该脚本包含启动、停止等执行方法-->
                    <commandScript>
                        <script>scripts/frontend_observer.py</script>
                        <scriptType>PYTHON</scriptType>
                        <timeout>1200</timeout>
                    </commandScript>
                </component>
                <component>
                    <!--组件名称-->
                    <name>FRONTEND_FOLLOWER</name>
                    <!--组件在页面显示名称-->
                    <displayName>Doris Frontend Follower</displayName>
                    <!--组件类型,取值: MASTERSLAVECLIENT-->
                    <category>SLAVE</category>
                    <!--需要安装的机器数,可以是固定数字 1,可以是一个范围比如 1-2,也可以是 1+0+ALL或者是一个范围,进行服务安装向导的时候会限制选择的机器数。-->
                    <cardinality>0+</cardinality>
                    <!--是否宣称版本,用于回滚和升级-->
                    <versionAdvertised>true</versionAdvertised>
                    <!--存储 metric 数据的默认类型-->
                    <timelineAppid>doris</timelineAppid>
                    <!--标准命令,必填选项调用python脚本,用来执行该组件的某些操作,该脚本包含启动、停止等执行方法-->
                    <commandScript>
                        <script>scripts/frontend_follower.py</script>
                        <scriptType>PYTHON</scriptType>
                        <timeout>1200</timeout>
                    </commandScript>
                </component>

                <component>
                    <!--组件名称,command-xxx.json中的backend_hosts字段命名就是这个取的字段-->
                    <name>BACKEND</name>
                    <!--组件在页面显示名称-->
                    <displayName>Doris Backend</displayName>
                    <!--组件类型,取值: MASTERSLAVECLIENT-->
                    <category>SLAVE</category>
                    <!--需要安装的机器数,可以是固定数字 1,可以是一个范围比如 1-2,也可以是 1+0+ALL或者是一个范围,进行服务安装向导的时候会限制选择的机器数。-->
                    <cardinality>0+</cardinality>
                    <!--是否宣称版本,用于回滚和升级-->
                    <versionAdvertised>true</versionAdvertised>
                    <!--存储 metric 数据的默认类型-->
                    <timelineAppid>doris</timelineAppid>
                    <!--标准命令,必填选项调用python脚本,用来执行该组件的某些操作,该脚本包含启动、停止等执行方法-->
                    <commandScript>
                        <script>scripts/be.py</script>
                        <scriptType>PYTHON</scriptType>
                        <timeout>1200</timeout>
                    </commandScript>
                </component>
                <component>
                    <name>DORIS_CLIENT</name>
                    <displayName>Doris Client</displayName>
                    <category>CLIENT</category>
                    <cardinality>1+</cardinality>
                    <versionAdvertised>true</versionAdvertised>
                    <commandScript>
                        <script>scripts/doris_client.py</script>
                        <scriptType>PYTHON</scriptType>
                    </commandScript>
                    <configFiles>
                        <configFile>
                            <type>properties</type>
                            <fileName>fe.conf</fileName>
                            <dictionaryName>fe</dictionaryName>
                        </configFile>
                        <configFile>
                            <type>properties</type>
                            <fileName>be.conf</fileName>
                            <dictionaryName>be</dictionaryName>
                        </configFile>
                        <configFile>
                            <type>properties</type>
                            <fileName>doris-env</fileName>
                            <dictionaryName>doris-env</dictionaryName>
                        </configFile>
                    </configFiles>
                </component>
            </components>
            <commandScript>
                <script>scripts/service_check.py</script>
                <scriptType>PYTHON</scriptType>
                <timeout>1800</timeout>
            </commandScript>
            <!--可选字段。用于告诉 Ambari Server 在哪里加载 xxx.xml 文件。如果我们希望服务使用默认的 configuration 目录,则可以跳过它。-->
            <!--<configuration-dir></configuration-dir>-->

            <!--快捷链接,在WebUI中快速跳转的链接,通常为服务的管理监控页面,如Hbase Master UI-->
            <quickLinksConfigurations>
                <quickLinksConfiguration>
                    <!--默认值:quicklinks,可选字段。用于告诉 Ambari Server 在哪里加载 xxx.json 文件。如果我们希望服务使用默认的 quicklinks 目录,则可以跳过它-->
                    <!--<quickLinksConfigurations-dir></quickLinksConfigurations-dir>-->
                    <!--json 文件,指定的 quickLink 文件名称-->
                    <fileName>quicklinks.json</fileName>
                    <!--一般为 true-->
                    <default>true</default>
                </quickLinksConfiguration>
            </quickLinksConfigurations>

            <!--根据不同操作系统选择不同的安装包-->
            <osSpecifics>
                <osSpecific>
                    <osFamily>any</osFamily>
                </osSpecific>
            </osSpecifics>

            <!--设置主题配置-->
            <themes>
                <theme>
                    <!--可选字段。用于告诉 Ambari Server 在哪里加载 xxx.json 文件。如果我们希望服务使用默认的 themes 目录,则可以跳过它。-->
                    <!--<themes-dir></themes-dir>-->
                    <!--json 文件,指定的主题文件名称-->
                    <fileName>theme.json</fileName>
                    <!--一般为 true-->
                    <default>true</default>
                </theme>
                <theme>
                    <fileName>directories.json</fileName>
                    <default>true</default>
                </theme>
            </themes>

            <requiredServices>
                <service>ZOOKEEPER</service>
                <service>HDFS</service>
                <service>SPARK2</service>
            </requiredServices>
        </service>
    </services>
</metainfo>

网站公告

今日签到

点亮在社区的每一天
去签到