文档章节

ambari 二次开发之增加ElasticSearch服务

纳兰琴
 纳兰琴
发布于 2015/03/21 13:55
字数 725
阅读 2.3K
收藏 0

#程序员薪资揭榜#你做程序员几年了?月薪多少?发量还在么?>>>


        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()


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


参考资料

https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=38571133


© 著作权归作者所有

纳兰琴
粉丝 51
博文 23
码字总数 13442
作品 0
杭州
高级程序员
私信 提问
加载中

评论(0)

【原创】大数据基础之Ambari(2)通过Ambari部署ElasticSearch(ELK)

ambari2.7.3(hdp3.1) 安装 elasticsearch6.3.2 ambari的hdp中原生不支持elasticsearch安装,下面介绍如何通过mpack方式使ambari支持elasticsearch安装: 一 安装Service 1 下载 Mpack incl...

osc_kbyywydz
2019/01/17
3
0
详解Linux运维工程师高级篇(大数据安全方向)

详解linux运维工程师高级篇(大数据安全方向) hadoop安全目录: kerberos(已发布) elasticsearch knox oozie ranger apache sentry 简介: 从运维青铜到运维白银再到运维黄金,这里就要牵...

cs312779641
2018/02/07
0
0
升级ambari、HDP版本(ambari 2.1升级到2.4、HDP2.3升级到2.5)

转载自:http://blog.csdn.net/levycui/article/details/52461377 官方升级版本说明 http://docs.hortonworks.com/HDPDocuments/Ambari-2.4.0.1/bkambari-installation/content/determinesta......

osc_k816frzg
2018/01/07
8
0
Openstack Sahara组件和架构简介

1.简介 Apache Hadoop是目前被广泛使用的主流大数据处理计算框架,Sahara项目旨在使用用户能够在Openstack平台上便于创建和管理Hadoop以及其他计算框架集群,实现类似AWS的EMR(Amazon Elas...

osc_qgmf9fjw
2019/05/12
2
0
Ambari自定义Service

一、Ambari基本架构 img016.jpg Ambari Server 会读取 Stack 和 Service 的配置文件。当用 Ambari 创建服务的时候,Ambari Server 传送 Stack 和 Service 的配置文件以及 Service 生命周期的...

osc_a22drz29
2019/03/25
2
0

没有更多内容

加载失败,请刷新页面

加载更多

centos7.4解压方式安装mysql5.7

删除Mysql yum remove mysql mysql-server mysql-libs mysql-server; find / -name mysql #将找到的相关东西删掉;例如:rm -rf /var/lib/mysql rpm -qa|grep mysql #(查询出来的东东yum rem......

中颀013
34分钟前
21
0
如何在电脑屏幕上录制视频?安利一款屏幕录像软件

如何在电脑屏幕上录制视频?相信很多小伙伴都会有这个需求,毕竟如今网上有很多教学视频或者游戏直播视频等,它们在市场上有产出所以必定会有大量需求,所以,如果伙伴们也想通过对电脑视频进...

斯卡哈
35分钟前
22
0
SQL笔试 I 经典44题及答案解析

01 建表语句 create table Student(sid varchar(10),sname varchar(10),sage datetime,ssex nvarchar(10));insert into Student values('01' , '赵雷' , '1990-01-01' , '男');insert into......

osc_s4e6jr85
35分钟前
14
0
csharp WebUploader 分块上传

HTML部分 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs" Inherits="up6.index" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://......

osc_afifi2qt
36分钟前
13
0
通信原理的新认识-从实践到原理

在读书期间,本人是学习的通信专业,曾反复研读樊昌信老师写的《通信原理》这本书,一直停留在表面且没有新的理解,直到毕业之后从事通信相关的工作,才在实践层面对通信有了新认识。现就将新...

osc_2mvp7jnu
38分钟前
19
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部