Ambari-stack总体介绍

  • Ambari-stack 表示hadoop某个发行版本号。比如HDP-1.0.0,在用ambari创建一个集群时,首先要通过调用restfulAPI设置stack版本号。
  • stack下包括一个或多个service,比如HDP-2.0.6下包括多个service,各自是 ZOOKEEPER,HDFS,YARN,等。
  • 单个service下通过配置service下存储的metainfo.xml来设置构成服务的component(组件)以及部署组件的部署脚本、执行组件的角色名称、部署脚本的文件名、部署脚本的语言种类等信息。
  • stack下package/script/  存放agent操作相关component(组件)的脚本,ambari-agent会依据脚本的函数名称调用脚本的相应函数。
  • stack版本号能够通过metainfo.xml设置继承关系。比如HDP-2.1继承了HDP-2.0.6的各个服务。

Ambari-stack文件夹结构

  • HDP

    • 2.0.6

      • metainfo.xml        (stack的相关信息,包含继承关系等版本号层的性质)
      • services        (该路径下存储各个服务)
        • ZOOKEEPER  

          • metainfo.xml        (里面配置了组件名称,操作组件的脚本名称。脚本的语言种类等信息)
          • configuration
            • global.xml        (服务配置,在blueprint创建集群时使用)
            • zookeeper-log4j.xml
          • package

            • scripts

              • zookeeper_server.py        (组件的操作脚本 包含安装、查询状态、开启组件、关闭组件等操作)

              • zookeeper_cilent.py
              • ...
            • templates        (在部署时脚本里所用到的模板文件)

              • ...
        • YARN
          • ...
        • HDFS
          • ...


          • ...
      • hooks        (在调用脚本前须要运行的脚本。比如为集群各个服务创建linux-user)
        • ...
      • repos        (yum安装所须要的repos配置信息)
        • ...
  • 当写创建好stack后。须要重新启动ambari-server。能够在浏览器中通过restfulAPI来查看stack创建是否成功。

    • http://<ambari-server>:8080/api/v1/stacks
  • 对于服务下的metainfo.xml一定要保证格式、内容的正确性,假设ambari不能正常读取,那将识别不出stack的信息。

Ambari-stack 脚本编写规则介绍

  • Ambari-agent在运行脚本时,会依据脚本的函数名进行调用。

    下面是基本操作函数。

  • 实现方式是一个组件建一个类,该类能够继承ambari提供的父类Script。该父类提供了一些默认方法比如状态检查,转换json等方法。

  • install()

    • 在调用ambari-server安装相应服务的restapi时,ambari-server会给ambari-agent发送command-json格式的文件,agent会调用脚本中名为install()函数来进行部署。

    • 函数作用在于在集群内部署该服务的相应组件。

  • start()

    • 函数作用是开启该服务下相应组件。

    • 注意:该方法须要在install成功后调用。
  • stop()

    • 该函数作用是停止该服务下的相应组件。
    • 注意:该方法调用的api与install同样且组件状态为STARTED。
  • status()

    • 在组件开启后。agent会不断检測组件的状态,并把状态通过心跳汇报给server端,server端收到心跳状态后更新当前集群的服务信息,当用户调用install api来停止组件时,server依据更新后的组件信息来向相应的host发出命令,假设某组件异常终止。那么server在发送停止命令时不会向异常终止的组件所在的agent发送停止命令。

    • status()状态检查能够使用父类提供的一种方式,check_process_status(file_path)。该函数针对提供的文件路径检查相应文件内部的组件进程号是否存在。假设不存在,那么agent就通过心跳汇报给server。
  • main()
    • 操作脚本的main函数直接调用父类的execute()函数就可以。

Ambari-stack介绍的更多相关文章

  1. ELK Stack 介绍 & Logstash 日志收集

    ELK Stack 组成 Software Description Function E:Elasticsearch Java 程序 存储,查询日志 L:Logstash Java 程序 收集.过滤日 ...

  2. java集合系列——List集合之Stack介绍(五)

    1.Stack的简介 Stack 类表示后进先出(LIFO)的对象堆栈.它通过五个操作对类 Vector 进行了扩展 ,允许将向量视为堆栈.它提供了通常的 push 和 pop 操作,以及取堆栈顶点的 ...

  3. 堆栈Stack介绍

    堆栈(Stack)代表了一个后进先出的对象集合.当您需要对各项进行后进先出的访问时,则使用堆栈.当您在列表中添加一项,称为推入元素,当您从列表中移除一项时,称为弹出元素. Stack 类的方法和属性 ...

  4. Treiber Stack介绍

    简介 Treiber Stack在 R. Kent Treiber在1986年的论文Systems Programming: Coping with Parallelism中首次出现.它是一种无锁并发 ...

  5. Java 集合系列07之 Stack详细介绍(源码解析)和使用示例

    概要 学完Vector了之后,接下来我们开始学习Stack.Stack很简单,它继承于Vector.学习方式还是和之前一样,先对Stack有个整体认识,然后再学习它的源码:最后再通过实例来学会使用它. ...

  6. Java 集合系列 06 Stack详细介绍(源码解析)和使用示例

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

  7. java之Stack详细介绍

    1  Stack介绍 Stack简介 Stack是栈.它的特性是:先进后出(FILO, First In Last Out). java工具包中的Stack是继承于Vector(矢量队列)的,由于Ve ...

  8. 【转】 Java 集合系列07之 Stack详细介绍(源码解析)和使用示例

    概要 学完Vector了之后,接下来我们开始学习Stack.Stack很简单,它继承于Vector.学习方式还是和之前一样,先对Stack有个整体认识,然后再学习它的源码:最后再通过实例来学会使用它. ...

  9. 从零自学Hadoop(05):Ambari

    阅读目录 序 引入背景 Ambari介绍 在线安装 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,Sour ...

  10. stack

    stack介绍:先进后出 实现C++STL,栈有两个参数:template<class T,class Container = deque<T>> class stack: 参 ...

随机推荐

  1. 使用Spring提供Quartz来实现定时任务

    Spring功能越来越多了,用起来还很舒服方便,Quartz实现的定时任务就是一个. 首先是配置文件: <?xml version="1.0" encoding=" ...

  2. python input 与raw_input函数的区别

    转自:http://blog.csdn.net/sruru/article/details/7790436 以前没有深入考虑过raw_input与input函数的区别,所以一直比较困惑,今天测试之后, ...

  3. 使用Git下载Hadoop的到本地Eclipse开发环境

    使用Git下载Hadoop的到本地Eclipse开发环境 博客分类: Hadoop *n*x MacBook Air hadoopgitmaveneclipsejava  问题场景 按照官网http: ...

  4. C#.NET常见问题(FAQ)-SplitPanel如何设置上下和左右

    定位到Orientation属性即可     更多教学视频和资料下载,欢迎关注以下信息: 我的优酷空间: http://i.youku.com/acetaohai123   我的在线论坛: http: ...

  5. android google map v1 v2 v3 参考

    V1,V2已经不被推荐使用,谷歌强烈推荐使用V3. 本人在选择时着实纠结了良久,现在总结如下: 对于V1,现在已经申请不到API KEY了,所以不要使用这个版本.这个是网址:https://devel ...

  6. 使用JSP实现输出(web基础学习笔记二)

    Jsp:Java Server Page 服务器端的Java页面,动态网页技术 jsp注释 显式注释:这种注释客户端是允许看见的;<!--html注释--> 隐式注释:这种注释客户端是看不 ...

  7. 通过Shell命令与JavaAPI读取ElasticSearch数据 (能力工场小马哥)

    主要内容: 通过JavaAPI和Shell命令两种方式操作ES集群 集群环境: 两个 1,未配置集群名称的单节点(模拟学习测试环境); 2,两个节点的集群(模拟正常生产环境). JDK8+Elasti ...

  8. js es6 map 与 原生对象区别

    区别 object和Map存储的都是键值对组合.但是: object的键的类型是 字符串: map的键的类型是 可以是任意类型: 另外注意,object获取键值使用Object.keys(返回数组): ...

  9. Java读取文件整理

    /** * 以字节为单位读取文件,常用于读二进制文件,如图片.声音.影像等文件. */ public class ReadFromFile { public static void readFileB ...

  10. 微信小程序独家秘笈之抽奖大转盘

    代码地址如下:http://www.demodashi.com/demo/14209.html 一.前期准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.co ...