文档章节

ambari 二次开发之增加ElasticSearch服务

纳兰琴
 纳兰琴
发布于 2015/03/21 13:55
字数 725
阅读 659
收藏 0
点赞 0
评论 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


© 著作权归作者所有

共有 人打赏支持
纳兰琴
粉丝 45
博文 18
码字总数 13442
作品 0
杭州
高级程序员
详解Linux运维工程师高级篇(大数据安全方向)

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

cs312779641 ⋅ 02/07 ⋅ 0

简单分析Ambari——顶级Hadoop管理方案

前面我们提到了两个比较火的Hadoop集群运维管理工具 Ambari和Cloudera Manager。它们集安装,配置,监控于一身,对于Hadoop的初学者可以起到很好的帮助作用。这篇文章就对Ambari着重介绍一下...

叁金 ⋅ 05/25 ⋅ 0

CentOS6、7局域网离线安装Ambari

(自己安装多遍,踩过各种坑,终于趟顺了,下面绝对完整版) (安装6、7的步骤一样,只是相关执行命令6、7会有差别) 1.1 Ambari Ambari的作用来说,就是创建、管理、监视 Hadoop的集群。Amb...

cp_panda_5 ⋅ 04/18 ⋅ 0

Elastic Search学习笔记1——安装elasticsearch2.4.6

Elastic Search 简介 1.基于Apache Lucene的开源搜索引擎 2.采用Java编写 RESTful API风格 3.较容易的横向扩展 应用场景 1.海量数据分析引擎 2.数据搜索引擎 3.数据仓库 官网 https://www.el...

晨猫 ⋅ 03/09 ⋅ 0

elasticsearch-head 安装介绍

elasticsearch-head 是用于监控 Elasticsearch 状态的客户端插件,包括数据可视化、执行增删改查操作等。elasticsearch-head 插件的安装在 Linux 和 Windows 没什么区别,安装之前确保当前系...

BeckJin ⋅ 05/19 ⋅ 0

APM 代理环境部署之 Hadoop 篇

面对企业中越来越复杂且相互依赖的 IT 环境和应用。IBM Cloud Application Performance Management (APM) 不仅是一个监控工具。更是可视化,可控性和自动化的解决方案。它是您身边的职能管家...

牛 凤枝 ⋅ 05/02 ⋅ 0

ELK 实验(二)安装Elastic Search 单节点

Linux 安装 java -version echo $JAVA_HOME 木有返回,环境没有设置好。。。 vi /etc/profile export JAVAHOME=/usr/java/jdk1.8.0162 export JREHOME=$JAVAHOME/jre export CLASSPATH=$JAV......

pcdog ⋅ 04/15 ⋅ 0

分布式定时任务Elastic-Job框架在SpringBoot工程中的应用实践(一)

摘要:如何构建具备作业分片和弹性扩缩容的定时任务系统是每个大型业务系统在设计时需要考虑的重要问题? 对于构建一般的业务系统来说,使用Quartz或者Spring Task即可基本满足我们的单体服用...

癫狂侠 ⋅ 05/12 ⋅ 0

ELK 实验(七)Elasticsearch 集群管理

Head 插件 head插件是一个elasticsearch的集群管理工具,它是完全由html5编写的独立网页程序。 Github: https://github.com/mobz/elasticsearch-head git clone https://github.com/mobz/e...

pcdog ⋅ 04/20 ⋅ 0

logstash、elasticsearch、kibana搭建日志平台

1、下载logstash a、官方下载地址:https://www.elastic.co/downloads/logstash b、解压:tar -xzvf logstash-5.1.1.tar.gz c、设置用户测试的配置文件:vim logstatsh_test.conf,编辑内容如...

binhu ⋅ 05/23 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

笔试题之Java基础部分【简】【一】

基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io 的语法,虚拟机方面的语法,其他 1.length、length()和size() length针对...

anlve ⋅ 28分钟前 ⋅ 2

table eg

user_id user_name full_name 1 zhangsan 张三 2 lisi 李四 `` ™ [========] 2018-06-18 09:42:06 星期一½ gdsgagagagdsgasgagadsgdasgagsa...

qwfys ⋅ 52分钟前 ⋅ 0

一个有趣的Java问题

先来看看源码: public class TestDemo { public static void main(String[] args) { Integer a = 10; Integer b = 20; swap(a, b); System.out......

linxyz ⋅ 57分钟前 ⋅ 0

十五周二次课

十五周二次课 17.1mysql主从介绍 17.2准备工作 17.3配置主 17.4配置从 17.5测试主从同步 17.1mysql主从介绍 MySQL主从介绍 MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主...

河图再现 ⋅ 今天 ⋅ 0

docker安装snmp rrdtool环境

以Ubuntu16:04作为基础版本 docker pull ubuntu:16.04 启动一个容器 docker run -d -i -t --name flow_mete ubuntu:16.04 bash 进入容器 docker exec -it flow_mete bash cd ~ 安装基本软件 ......

messud4312 ⋅ 今天 ⋅ 0

OSChina 周一乱弹 —— 快别开心了,你还没有女友呢。

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子 :分享吴彤的单曲《好春光》 《好春光》- 吴彤 手机党少年们想听歌,请使劲儿戳(这里) @clouddyy :小萝莉街上乱跑,误把我认错成...

小小编辑 ⋅ 今天 ⋅ 8

Java 开发者不容错过的 12 种高效工具

Java 开发者常常都会想办法如何更快地编写 Java 代码,让编程变得更加轻松。目前,市面上涌现出越来越多的高效编程工具。所以,以下总结了一系列工具列表,其中包含了大多数开发人员已经使用...

jason_kiss ⋅ 昨天 ⋅ 0

Linux下php访问远程ms sqlserver

1、安装freetds(略,安装在/opt/local/freetds 下) 2、cd /path/to/php-5.6.36/ 进入PHP源码目录 3、cd ext/mssql进入MSSQL模块源码目录 4、/opt/php/bin/phpize生成编译配置文件 5、 . ./...

wangxuwei ⋅ 昨天 ⋅ 0

如何成为技术专家

文章来源于 -- 时间的朋友 拥有良好的心态。首先要有空杯心态,用欣赏的眼光发现并学习别人的长处,包括但不限于工具的使用,工作方法,解决问题以及规划未来的能力等。向别人学习的同时要注...

长安一梦 ⋅ 昨天 ⋅ 0

Linux vmstat命令实战详解

vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令...

刘祖鹏 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部