温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

ambari怎么增加ElasticSearch服务

发布时间:2021-12-16 10:10:51 来源:亿速云 阅读:224 作者:iii 栏目:云计算

这篇文章主要讲解了“ambari怎么增加ElasticSearch服务”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ambari怎么增加ElasticSearch服务”吧!

        Ambari是支持服务扩展的,只需要,恩,整理,打包,扔我们的服务到它的资源目录,重启服务器就可以了。听起来很简单。它的服务组织结构是分Stack / Service /Component 3层的 。所以我们从Stack开始。一个自定义Stack的目录结构如图(从HDP的复制过来)。

自定义Stack

[root@master stacks]# pwd
/var/lib/ambari-server/resources/stacks
[root@master stacks]# tree NQ
NQ
└── 1.1
    ├── configuration
    │   └── cluster-env.xml
    ├── metainfo.xml
    ├── repos
    │   └── repoinfo.xml    #软件仓库的URL
    └── services    #服务目录
        └── ELASTICSEARCH
            ├── configuration
            │   └── elasticsearch-env.xml
            ├── metainfo.xml
            ├── metrics.json
            └── package
                ├── archive.zip
                ├── scripts
                │   └── master.py
                └── templates

9 directories, 8 files

有了Stack后(当然,你直接扔到HDP的服务下面也可以),我们可以添加自己的服务了。可以看到服务是在Stack的services下的,每个目录。

自定义Service

目录结构

        |_ services
            |_ <service_name>
               metainfo.xml    #服务配置文件
               metrics.json    #运维指标配置,映射ganglia和ambari
               |_ configuration
                  {configuration files}    #配置文件
               |_ package
                  {files, scripts, templates}    #安装脚本,模板和一些文件

metainfo.xml     服务配置文件,我尽量写全面一点,为了解释清楚各个配置项。

<?xml version="1.0"?>
<metainfo>
    <schemaVersion>2.0</schemaVersion>
    <services>
        <service>
            <name>ELASTICSEARCH</name>
            <displayName>ElasticSearch</displayName>
            <comment>ElasticSearch service</comment>
            <version>1.4.0</version>
            <components>
                <component>
                    <name>ELASTICSEARCH</name>
                    <displayName>ElasticSearch</displayName>
                    <category>MASTER</category>
                    <cardinality>1</cardinality>
                    <commandScript>
                        <script>scripts/master.py</script>
                        <scriptType>PYTHON</scriptType>
                        <timeout>600</timeout>
                    </commandScript>
                </component>
                <component>
                    <name>ELASTICSEARCH_NODE</name>
                    <displayName>ElasticSearchNode</displayName>
                    <category>SLAVE</category>
                    <cardinality>ALL</cardinality>
                     <auto-deploy> <!--自动部署,仅在cardinality满足的情况下,界面上就不问,在这台主机,是否安装这个组件了-->
                        <enabled>false</enabled>
                    </auto-deploy>
                    <commandScript>
                        <script>scripts/slave.py</script>
                        <scriptType>PYTHON</scriptType>
                        <timeout>600</timeout>
                    </commandScript>
                    <!--<configFiles>
                      <configFile>
                        <type>env</type>
                        <fileName>elasticsearch-env.xml</fileName>
                        <dictionaryName>elasticsearch-env</dictionaryName>
                      </configFile>
                    </configFiles>-->
                </component>
            </components>
            <osSpecifics>
                <osSpecific>
                  <osFamily>any</osFamily>
                  <packages>
                    <package>
                      <name>elasticsearch</name>
                    </package>
                  </packages>
                </osSpecific>
            </osSpecifics>
            <requiredServices>
                <service>GANGLIA</service> <!--依赖服务,安装的时候限制,没有不能继续安装-->
            </requiredServices>
            <configuration-dependencies>
              <config-type>elasticsearch-env</config-type>
            </configuration-dependencies>
            <monitoringService>false</monitoringService> <!--如果是监控服务的话,每个组件重启,他都要重启-->
        </service>
    </services>
</metainfo>
  1. 服务和组件名字一定要大写,不然后面你会全部重新来过的。不要问我为什么知道,我重试了N次。

  2. package节点的name 很重要。yum install [name] 

  3. category节点组件类型可以有MASTER,SLAVE,CLIENT几种,那p2p集群咋办?

  4. MASTER不是必须得有,只有SLAVE也可以

  5. cardinality节点是安装基数。1+ 最少一个 ,  0-1 最多一个 ,ALL 全部

master.py  一个最简单的安装脚本,好吧,实际上它什么也没做

import sys
from resource_management import *
class Master(Script):
  def install(self, env):
    print 'Install the ES Master';
  def stop(self, env):
    print 'Stop the ES Master';
  def start(self, env):
    print 'Start the ES Master';
     
  def status(self, env):
    print 'Status of the ES Master';
  def configure(self, env):
    print 'Configure the ES Master';
if __name__ == "__main__":
  Master().execute()

部署,重启,安装,然后就能看到我们的成果了,虽然看起来超级简单,没关系,下面我们会继续完善功能,配置,监控,告警管理。。。。

ambari怎么增加ElasticSearch服务

感谢各位的阅读,以上就是“ambari怎么增加ElasticSearch服务”的内容了,经过本文的学习后,相信大家对ambari怎么增加ElasticSearch服务这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI