Ambari-整体介绍,ambari-整体


  • Ambari目标

    • 解决Hadoop生态系统部署

      • 部署:hadoop组件间有依赖,包括配置、版本、启动顺序、权限配置等。

      • 部署过程跟踪。能够展示出部署过程中每个步骤的状态及相关信息。
      • 多机部署问题,当集群规模增加后,机器出问题机率增加,在部署或更新中可能会出现机器故障

        • 组件本身设计:hadoop及其组件需要容忍机器的故障,同时需要防止不兼容版本组件给系统带来的影响

        • 部署服务:需要能够容忍某些组件启动、更新失败

    • 配置管理

      • 可以将默认配置写入stack中(stack后续介绍),在开启时ambari将stack中各个版本的config文件读入,在使用blueprint创建集群部署hadoop时,直接生成command-json文件。(blueprint后续介绍)
    • 服务状态展示、监控、报警

  • Ambari主要概念

    • 资源

      • ambari将集群及集群中的服务、组件、机器都视为资源,资源的状态都会记录在db中

    • Hadoop生态

      • Stack

        • 发行版本的含义,如HDP,可以有若干版本。
      • Service

        • 服务,属于stack,一个stack下可以有多个service,service也可以分多个版本,版本间可以有继承关系。例如zookeeper就是一项服务。
      • Component

        • 组件,属于service,一个service下可以有多个component组成。例如HDFS服务下的组件有datanode,namenode等。
      • 角色

        • Component可以指定部署时的角色,如master、slave等,也可以指定每种角色需要的host个数。例如namenode为单一host组件,可以部署在master机器上,datanode可以部署在多台host上那么可以指定部署datanode的角色为slave
      • host

        • host为运行ambari-agent的一台机器,同时也是搭建集群内部的一台机器,可以为host设置对应的角色,例如master,slave等。
  • Ambari整体流程

    • restAPI->ambari-server

      • 单步创建

        • 通过调用ambari提供的restAPI进行集群的单步创建
        • Add cluster:新建集群
        • Update cluster:更新集群配置
        • Add service for cluster:向集群添加服务
        • Add component for service:为每个服务添加对应组件
        • Add host for cluster:添加host资源
        • Add component on host:设置每个host上运行的组件
        • Install/Start/Stop service:安装/开启/关闭 集群的对应服务
      • Blueprint 

        • 调用一次restAPI即可进行集群创建、服务安装、组件部署、服务开始等集群操作,简化了单步创建的调用次数。
    • ambari-server->ambari-agent

      • ambari-server端负责接收rest请求,再向agent端发送命令,发送命令的格式是json,内部包涵部署脚本执行命令(安装/开始/停止服务)所需要的配置信息,这里所指的配置信息一般是手动部署集群需要配置的xml文件,例如hadoop-site.xml文件,在blueprint或单步创建里会有详细说明。
      • ambari-agent执行脚本。ambari-agent所执行的脚本存储在ambari-server 机器上的/var/lib/ambari-server/resources/stacks/HDP/2.0.6/下各个service路径下的package路径下的scripts内,脚本的编写语言为python,脚本继承了名为Script的父类,该父类提供了一些函数,例如Script.get_config(),该函数将agent接收来自server端的command-json文件的内容转化为字典格式方便脚本实现部署时对配置的使用。具体anent接收到的command-json保存在了运行agent机器下的/var/lib/ambari-agent/data路径下。



相关内容

    暂无相关文章