-
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路径下。
-
Ambari-整体介绍
猜你喜欢
转载自blog.csdn.net/oZuoLuo123/article/details/53943223
今日推荐
周排行