从Elasticsearch详解Ambari与第三方软件的集成(二)

上文已经简单介绍了前因,这里我们就最核心的内容:如何做,进行讲解。

 

二. 集成实现过程详解

Ambari下服务资源的定义结构如下图所示:

|_ stacks
   |_ <stack_name>
      |_ <stack_version>
         metainfo.xml
         |_ hooks
         |_ repos
            repoinfo.xml
         |_ services
            |_ <service_name>
               metainfo.xml
               metrics.json
               |_ configuration
                  {configuration files}
               |_ package
                  {files, scripts, templates}

下面就以Elasticsearch服务的集成为例,对所有核心的实现内容逐一讲解,elasticsearch集成项目定义结构如下图所示:

 

1. metainfo.xml - 服务整体描述

首先,通过metainfo.xml文件对elasticsearch这个服务进行一个标准的描述,完整文件如下所示:

<?xml version="1.0"?>
<metainfo>
    <schemaVersion>2.0</schemaVersion>
    <services>
        <service>
            <name>ELASTICSEARCH</name>
            <displayName>Elasticsearch</displayName>
            <comment>A highly scalable open-source full-text search and analytics engine. Including storage, searching, and analyzing big volumes of data quickly and in near real time. </comment>
            <version>6.4.2</version>
            <components>
                <component>
                    <name>ELASTICSEARCH_MASTER</name>
                    <displayName>Elasticsearch Master</displayName>
                    <category>MASTER</category>
                    <cardinality>1+</cardinality>
                    <versionAdvertised>true</versionAdvertised>
                    <commandScript>
                        <script>scripts/es_master.py</script>
                        <scriptType>PYTHON</scriptType>
                        <timeout>1200</timeout>
                    </commandScript>
                    <logs>
                        <log>
                            <logId>elasticsearch_master</logId>
                            <primary>true</primary>
                        </log>
                    </logs>
                </component>
                <component>
                    <name>ELASTICSEARCH_SLAVE</name>
                    <displayName>Elasticsearch Slave</displayName>
                    <category>SLAVE</category>
                    <cardinality>0+</cardinality>
                    <versionAdvertised>true</versionAdvertised>
                    <commandScript>
                        <script>scripts/es_slave.py</script>
                        <scriptType>PYTHON</scriptType>
                        <timeout>1200</timeout>
                    </commandScript>
                    <logs>
                        <log>
                            <logId>elasticsearch_slave</logId>
                            <primary>true</primary>
                        </log>
                    </logs>
                </component>
            </components>
            <osSpecifics>
                <osSpecific>
                    <osFamily>any</osFamily>
                    <packages>
                        <package>
                            <name>elasticsearch-6.4.2</name>  <!-- Not using. Please make sure the os already contains all the dependencies. -->
                        </package>
                    </packages>
                </osSpecific>
            </osSpecifics>
            <commandScript>
                <script>scripts/service_check.py</script>
                <scriptType>PYTHON</scriptType>
                <timeout>300</timeout>
            </commandScript>

            <configuration-dependencies>
                <config-type>elasticsearch-config</config-type>
                <config-type>elasticsearch-env</config-type>
                <config-type>elasticsearch-log4j</config-type>
            </configuration-dependencies>

            <restartRequiredAfterChange>true</restartRequiredAfterChange>

            <quickLinksConfigurations>
                <quickLinksConfiguration>
                    <fileName>quicklinks.json</fileName>
                    <default>true</default>
                </quickLinksConfiguration>
            </quickLinksConfigurations>

        </service
  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值