共计 1778 个字符,预计需要花费 5 分钟才能阅读完成。
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 路径下。
Hadoop 集群监控工具 Ambari 安装 http://www.linuxidc.com/Linux/2014-06/103208.htm
使用 Ambari 快速部署 Hadoop 大数据环境 http://www.linuxidc.com/Linux/2014-05/101531.htm