Jast blog Jast blog
首页
  • 《Ambari自定义开发教程》笔记
  • 《CDH教程》笔记
  • 《ClickHouse教程》笔记
  • 《HDFS教程》笔记
  • 《DolphinScheduler教程》笔记
  • 《Hbase教程》笔记
  • 《Iceberg教程》笔记
  • 《Hive教程》笔记
  • 《Flume教程》笔记
  • 《Kafka教程》笔记
  • 《Impala教程》笔记
  • 《Hue教程》笔记
  • 《Spark教程》笔记
  • 《Flink教程》笔记
  • 《Phoenix教程》笔记
  • 《ElasticSearch教程》笔记
  • 《Kylin教程》笔记
  • 《Storm教程》笔记
  • 《Yarn教程》笔记
  • 《Presto教程》笔记
  • 《图数据库教程》笔记
  • 《Kerberos教程》笔记
  • 《Maxwell教程》笔记
  • 《MinIO教程》笔记
  • 《DataX教程》笔记
  • 《Superset教程》笔记
  • 《IOTDB教程》笔记
  • 《大数据相关》笔记
  • 《PaddleNLP教程》笔记
  • 《Nginx教程》笔记
  • 《Java技术文档》
  • 《Maven教程》笔记
  • 《IDEA使用教程》
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档

Jast-zsh

如果你知道你要去哪里,全世界都会给你让路。
首页
  • 《Ambari自定义开发教程》笔记
  • 《CDH教程》笔记
  • 《ClickHouse教程》笔记
  • 《HDFS教程》笔记
  • 《DolphinScheduler教程》笔记
  • 《Hbase教程》笔记
  • 《Iceberg教程》笔记
  • 《Hive教程》笔记
  • 《Flume教程》笔记
  • 《Kafka教程》笔记
  • 《Impala教程》笔记
  • 《Hue教程》笔记
  • 《Spark教程》笔记
  • 《Flink教程》笔记
  • 《Phoenix教程》笔记
  • 《ElasticSearch教程》笔记
  • 《Kylin教程》笔记
  • 《Storm教程》笔记
  • 《Yarn教程》笔记
  • 《Presto教程》笔记
  • 《图数据库教程》笔记
  • 《Kerberos教程》笔记
  • 《Maxwell教程》笔记
  • 《MinIO教程》笔记
  • 《DataX教程》笔记
  • 《Superset教程》笔记
  • 《IOTDB教程》笔记
  • 《大数据相关》笔记
  • 《PaddleNLP教程》笔记
  • 《Nginx教程》笔记
  • 《Java技术文档》
  • 《Maven教程》笔记
  • 《IDEA使用教程》
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
  • Ambari自定义服务开发-项目初始化
  • Ambari自定义服务开发-组件安装启动停止卸载介绍
  • Ambari自定义服务开发-自定义服务配置文件在Ambari中的设置方法
  • Ambari自定义服务开发-自定义服务配置文件生成
  • Ambari自定义服务开发-代码如何获取配置参数
  • Ambari自定义服务开发-修改配置文件提示服务重启
  • Ambari自定义服务开发-自定义告警
  • Ambari自定义服务开发-查看历史版本配置
  • Ambari自定义服务开发-调试方法
  • Ambari自定义服务开发-执行Shell命令
  • Ambari自定义服务开发-快捷访问链接生成
  • Ambari自定义服务开发-服务组件启动顺序设置
  • Ambari自定义服务开发-服务组件安装依赖另外一个组件设置
  • Ambari自定义服务开发-监控指标Metrics介绍
  • Ambari自定义服务开发-使用客户端下载配置文件
  • Ambari自定义服务开发-美化(增强型)配置参数设置
  • Ambari自定义服务开发-自定义开发安装包整合到Ambari-Server中
  • Ambari自定义服务开发-自定义脚本运行
  • Ambari自定义服务开发-常用函数
  • Ambari自定义服务开发问题处理-中文乱码
  • Ambari自定义服务开发问题处理-告警项UNKWN
  • Ambari自定义服务开发问题处理-Agent安装服务报错unknown
  • Ambari自定义服务开发问题处理-修改源码配置,服务重启后未生效
  • 《Ambari自定义开发教程》笔记
Jast-zsh
目录

[toc]

# 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>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254

自己编写的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>
                    <!--组件类型,取值: MASTER、SLAVE、CLIENT-->
                    <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>
                    <!--组件类型,取值: MASTER、SLAVE、CLIENT-->
                    <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>
                    <!--组件类型,取值: MASTER、SLAVE、CLIENT-->
                    <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>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200

# 配置参数详细介绍

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

<?xml version="1.0"?>
<metainfo>
    <schemaVersion>2.0</schemaVersion>
    <services>
        <service>
            <!--服务名称,在所有Ambari安装服务中保持唯一-->
            <name>DORIS</name>
      </service>
  </services>
</metainfo>
1
2
3
4
5
6
7
8
9
10
层级 字段名称 是否为父元素(即无具体值,具体值在子元素中配置) 描述 取值举例 取值范围
一级 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>
                    <!--组件类型,取值: MASTER、SLAVE、CLIENT-->
                    <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>
                    <!--组件类型,取值: MASTER、SLAVE、CLIENT-->
                    <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>
                    <!--组件类型,取值: MASTER、SLAVE、CLIENT-->
                    <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>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
上次更新: 2024/04/08, 10:46:11
最近更新
01
Linux可视化监控
02-26
02
Maven私服搭建
02-26
03
当ElasticSearch时间字段设置多个格式到底是用的哪个?
01-19
更多文章>
Theme by Vdoing | Copyright © 2016-2025 Jast-zsh | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式