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

news2025/1/20 3:45:33

文章目录

    • metainfo.xml 介绍
    • 配置说明
      • Hbase metainfo.xml配置说明
      • 配置参数详细介绍
      • 配置文件样例
        • DORIS

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组合去重
一级selectionMANDATORY:设置服务在初次部署集群时强制安装MANDATORY
一级configuration-dependencies设置修改配置提示重启服务
二级config-type当修改该配置后提示重启整个服务
一级components组件列表,在该元素下可以设置需要安装的多个组件,拿Doris举例可分为:BE、FE
二级component具体的组件,该元素下是具体组件的配置信息
三级name组件名称,唯一值FRONTEND
displayName组件在页面显示名称Doris Frontend
category组件类型,取值: MASTER、SLAVE、CLIENTMASTER
cardinality需要安装的机器数(目前测试只有当category类型为MASTER时,该值生效),可以是固定数字 1,可以是一个范围比如 1-2,也可以是 1+、0+、ALL或者是一个范围,进行服务安装向导的时候会限制选择的机器数。1
timelineAppid存储 metric 数据的类型
commandScript标准命令,调用python脚本,用来执行该组件的某些操作
四级script基础命令如:启动/停止等命令需要执行的函数的脚本名称
scriptType脚本类型,为:PYTHONPYTHON
timeout超时时间1200
三级customCommands自定义运行命令,在UI中更多可以看到该选项配置的脚本
四级customCommand
五级name执行自定义函数名称,如:password_init,则在下方设置脚本中需要包含该方法,UI中显示image-20240407154346070
background一般为true
五级commandScript上面配置自定义命令执行的脚本配置
六级script上面配置自定义命令执行的脚本文件
scriptType脚本类型,为:PYTHONPYTHON
三级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脚本类型,为:PYTHONPYTHON
timeout超时时间
二级osSpecifics
三级osSpecific
四级osFamily设置 any 为所有操作系统都匹配
二级themes
三级theme
四级fileNamejson 文件,指定的主题文件名称
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 目录,则可以跳过它
fileNamejson 文件,指定的 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>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1880813.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

springboot框架使用Netty依赖中解码器的作用及实现详解

在项目开发 有需求 需要跟硬件通信 也没有mqtt 作为桥接 也不能http 请求 api 所以也不能 json字符串这么爽传输 所以要用tcp 请求 进行数据交互 数据还是16进制的 写法 有帧头 什么的 对于这种物联网的这种对接 我的理解就是 我们做的工作就像翻译 把这些看不懂的 字节流 变成…

Pytest集成Allure生成测试报告

# 运行并输出报告在Report文件夹下 查看生成的allure报告 1. 生成allure报告&#xff1a;pycharm terminal中输入命令&#xff1a;产生报告文件夹 pytest -s --alluredir../report 2. pycharm terminal中输入命令&#xff1a;查看生成的allure报告 allure serve ../report …

spring boot初始化的几个总结

spring intializr File->New->Project 注意&#xff1a;Spring Initializer中 Java版本选择模块已经不支持1.8了。 Spring Boot 3.x要求 Java最低版本为17&#xff0c; 最新的SpringBoot版本已经要求Java22了 所以&#xff0c;你可以升级Java版本&#xff0c;使用Spri…

VMware虚拟机迁移:兼用性踩坑和复盘

文章目录 方法失败情况分析&#xff1a;参考文档 方法 虚拟机关机&#xff0c;整个文件夹压缩后拷贝到新机器中&#xff0c;开机启用即可 成功的情况&#xff1a; Mac (intel i5) -> Mac (intel i7)Mac (intel, MacOS - VMware Fusion) -> DELL (intel, Windows - VMw…

6月28日PolarDB开源社区长沙站,NineData联合创始人周振兴将带来《数据库DevOps最佳实践》主题分享

6月28日&#xff08;周五&#xff09;&#xff0c;PolarDB 开源社区将来到湖南长沙&#xff0c;与湖南的开发者朋友们一起进行数据库技术交流&#xff01;NineData 联合创始人周振兴受邀参加&#xff0c;并将带来《数据库 DevOps 最佳实践》的主题分享。 本次活动议程&#xff…

Jmeter下载、安装及配置

1 Jmeter介绍 Jmeter是进行负载测试的工具&#xff0c;可以在任何支持Java虚拟机环境的平台上运行&#xff0c;比如Windows、Linux、Mac。 Jmeter模拟一组用户向目标服务器发送请求&#xff0c;并统计目标服务器的性能信息&#xff0c;比如CPU、memory usage。 2 Jmeter下载 …

如何利用AI生成可视化图表(统计图、流程图、思维导图……)免代码一键绘制图表

由于目前的AI生成图表工具存在以下几个方面的问题&#xff1a; 大多AI图表平台是纯英文&#xff0c;对国内用户来说不够友好&#xff1b;部分平台在生成图表前仍需选择图表类型、配置项&#xff0c;操作繁琐&#xff1b;他们仍需一份规整的数据表格&#xff0c;需要人为对数据…

C语言 | Leetcode C++题解之第199题二叉树的右视图

题目&#xff1a; 题解&#xff1a; #define MAX_NODE_NUM 100 int* rightSideView(struct TreeNode* root, int* returnSize){if (root NULL) {*returnSize 0;return NULL;}int *res (int *)malloc(sizeof(int) * MAX_NODE_NUM);int cnt 0;struct TreeNode **record (st…

PCIe物理层_CTLE(continuous time linear equalizer)

1.CTLE&#xff08;continuous time linear equalizer&#xff09; 的作用 信号在介质的传输过程中存在趋肤效应(skin effiect)和能量损耗&#xff0c;在接收端数据会存在失真&#xff0c;并且呈现出低通特性。什么意思呢&#xff1f;就是低频率的信号衰减幅度小&#xff0c…

【数据结构】(C语言):二叉搜索树

二叉搜索树&#xff1a; 树不是线性的&#xff0c;是层级结构。基本单位是节点&#xff0c;每个节点最多2个子节点。有序。每个节点&#xff0c;其左子节点都比它小&#xff0c;其右子节点都比它大。每个子树都是一个二叉搜索树。每个节点及其所有子节点形成子树。可以是空树。…

昇思25天学习打卡营第7天|网络构建

昇思25天学习打卡营第7天|网络构建 前言函数式自动微分函数与计算图微分函数与梯度计算Stop GradientAuxiliary data神经网络梯度计算 个人任务打卡&#xff08;读者请忽略&#xff09;个人理解与总结 前言 非常感谢华为昇思大模型平台和CSDN邀请体验昇思大模型&#xff01;从今…

绿色算力|暴雨发布浸没式液冷服务器

随着数字经济的飞速发展和AI创新应用的不断突破&#xff0c;算力规模持续增长&#xff0c;最新发布的《数字中国发展报告&#xff08;2023年&#xff09;》显示&#xff0c;2023年中国算力总规模达到230EFLOPS&#xff0c;居全球第二位。 服务器作为算力基础设施底座&#xff…

mac安装navicate

1.下载好之后点击安装包安装 2.一般情况下会提示安全性什么的,点击允许即可,然后会出现如下界面,点击安装即可. 3.点击打开 4.然后出现如下界面,点击Enter 5.将安装包拖入即可. 6.等待安装即可 7.安装完成后会在启动台看到Navicat16 的图标 8.然后打开软件界面如下:

Variables Reference for vscode

Predefined variables Visual Studio Code 支持在调试、任务配置文件以及一些特定的设置中使用变量替换。这些变量可以使用 ${variableName} 语法在 launch.json 和 tasks.json 文件的某些键和值字符串中使用。 Predefined variables Visual Studio Code 支持以下预定义变量…

[图解]分析模式高阶+课程讲解03物品模式

1 00:00:00,280 --> 00:00:03,440 下一个要探讨的模式是物品模式 2 00:00:04,310 --> 00:00:08,300 说是物品模式&#xff0c;实际上更多的说物品规格 3 00:00:09,210 --> 00:00:12,560 首先&#xff0c;我们要区分一下物品和物品规格的定义 4 00:00:14,440 -->…

205.Mit6.S081-实验二 system calls

Lab2:system calls 在上一个实验室中&#xff0c;您使用系统调用编写了一些实用程序。在本实验室中&#xff0c;您将向xv6添加一些新的系统调用&#xff0c;这将帮助您了解它们是如何工作的&#xff0c;并使您了解xv6内核的一些内部结构。您将在以后的实验室中添加更多系统调用…

人工智能期末复习笔记(更新中)

分类问题 分类&#xff1a;根据已知样本的某些特征&#xff0c;判断一个新的样本属于哪种已知的样本类 垃圾分类、图像分类 怎么解决分类问题 分类和回归的区别 1. 逻辑回归分类 用于解决分类问题的一种模型。根据数据特征或属性&#xff0c;计算其归属于某一类别 的概率P,…

[Cloud Networking] OSPF

OSPF 开放式最短路径优先&#xff08;Open Shortest Path First&#xff09;是一种动态路由协议&#xff0c;它属于链路状态路由协议&#xff0c;具有路由变化收敛速度快、无路由环路、支持变长子网掩码和汇总、层次区域划分等优点。 1 OSPF Area 为了适应大型网络&#xff0…

C程序设计谭浩强第五版

程序习题 第一章1、第5题2、第6题 第三章1、第2题2、第2题3、第3题4、第4题Tips 第一章 1、第5题 编写一个C程序,运行时输出以下图形: #include <stdio.h> int main() {for (int i 0; i < 4; i) // 输出4行循环控制{for (int j 0; j < i; j) //第几行就输出几…

leetcode-19-回溯-组合问题(剪枝、去重)

引自代码随想录 一、[77]组合 给定两个整数 n 和 k&#xff0c;返回 1 ... n 中所有可能的 k 个数的组合。 示例: 输入: n 4, k 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4]] 1、大致逻辑 k为树的深度&#xff0c;到叶子节点的路径即为一个结果 开始索引保证不…