Ambari Agent 架构

Ambari Agent 架构图,由图中看,主要有3部分:

HeartBeatHandler:发送 HTTP 请求和 Ambari Server 进行交互。
ActionExecutor:Command 执行器。
AlertSchedulerHandler:Alert 处理器。

4个数据容器:

CommandQueue:存储需要执行的 Command。
ResultMap:存储 Command 的执行结果。
Alert definitions file:是一个文件,保存所有的 Alert 定义。
AlertCollect:存储 Alert 的检查结果。

简述一下 Ambari Agent 的工作流程:

1、HeartBeatHandler:收集组件当前状态(通过ResultMap)、Command 执行结果(通过ResultMap)、Alert 检查结果(通过 AlertCollect)等,封装到 HTTP Request 当中,发送给 Ambari Server;Ambari Server 响应请求,通过 HTTP Response 带回来需要执行的 Command、需要终止的 Command、发生修改的 Config、发生修改的 Alert 定义等,并把 Comand 和 修改的 Config 封装为 Agent Command 对象,存储到 CommandQueue 中;把修改的 Alert 定义,更新到 Alert definitions 文件中(如果 Alert definitions 文件发生了变化,需要通知 AlertSchedulerHandler 重新加载一遍)。
2、ActionExecutor:定期从 CommandQueue 中加载需要执行的 Command,找到 Command 对应的 Python 脚本,执行脚本,并把结果存储到 ResultMap 中。
3、AlertSchedulerHandler:从 Alert definitions 文件中加载所有 Alert 定义,根据 Alert 定义,找到对应的 Python 脚本,周期性执行,并把结果存储到 AlertCollect 中。

时间: 2024-12-20 05:13:00

Ambari Agent 架构的相关文章

Ambari Agent Command分析

一.概述: 根据 Ambari Server 架构文章中的介绍,由于 Ambari Server 和 Ambari Agent 之间是通过 HTTP 短连接进行通信,所以 Server 无法把需要执行的 Command,直接推送给 Agent,而是需要把命令存储在 ActionQueue 中, 然后 Agent 通过定期发送 Heartbeat 请求,把 Command 拉过去执行,并通过下次的 Heartbeat 请求,返回执行结果.下面简单分析一下 Command 的处理过程: 二.Agen

Ambari Server 架构

Ambari Server 架构图,由图中看,主要也是四部分: Resource Service:资源服务,用来接收前端的 Rest 请求.关于 Resource 的几个基本概念:Resource:Ambari Server 定义了各种各样的 Resource,比如 Config.User.Cluster.Component.Alert 等都是一种 Resource.Resource Type:每种 Resource 都对应一个 ResourceType,标记所属的资源类型.Resource S

ambari安装问题记录:Ambari Agent host cannot reach Ambari Server 'localhost:8080'.

在安装完ambari-server并配置之后,选定客户端进行指定安装的时候,发现总是遇到这一错误 Ambari Agent host cannot reach Ambari Server 'localhost:8080'. 我看了一下错误日志发现在从ambari-server传送到客户端的setupAgent.py脚本的main函数中的参数设置老是不对,如下所示: 156 def main(argv=None): 157 scriptDir = os.path.realpath(os.path.

Ambari Agent 源码分析

一.ambari-agent 启动方式 Ambari-Agent的启动脚本为/etc/init.d/ambari-agent.该脚本主要实现了start,stop,status,restart,reset方法.对于start,stop,status,reset方法的实现,直接调用/usr/sbin/ambari-agent脚本,将所有命令参数传入进去,reset直接调用stop,在调用start. 二.ambari-agent启动脚本 /usr/sbin/ambari-agent 通过软链接指向

Ambari窥探分布式心跳机制

Ambari是在Hadoop大数据生态圈的基础上应运而生,Ambari的架构也借助了分布式的思想,细细品味,与Hadoop分布式架构有很多相似之处. Hadoop中单NN 与多DN的通信是借助netty封装的RPC机制实现,单Ambari server与多Agent通信则是基于restful api + json实现,rpc与rest api的争论不是本文要讨论的重点,我们追求的目标只有一个,完美实现业务需求. 心跳设计一个主要的原因是判断客户端是否在线,每隔一段时间会发送数据交互.Ambari

ambari搭建

简介: 1.ambari为分布式架构的软件,主要由两部分组成:Ambari Server 和 Ambari Agent.简单来说,用户通过 Ambari Server 通知 Ambari Agent 安装对应的软件:Agent 会定时地发送各个机器每个软件模块的状态给 Ambari Server,最终这些状态信息会呈现在 Ambari 的 GUI,方便用户了解到集群的各种状态,并进行相应的维护.(类似zabbix agent模式) 2.ambari为创建.管理.监视 Hadoop 的集群,Amb

ambari

参考博客: https://www.unixhot.com/article/46 使用ambari 快速部署hadoop 集群 Ambari是 Apache Software Foundation 中的一个顶级项目.Ambari可以创建.管理.监控 Hadoop 的集群.包括整个Hadoop生态圈(例如 Hive,Hbase,Sqoop,Zookeeper 等).无论是初学者像快速部署一套Hadoop环境,还是用于生产的自动化部署,Ambari都可以满足. 你可以在官网http://ambari

Ambari深入学习(III)-开源使用及其改进思考

Ambari采用的不是一个新的思想和架构,也不是完成了软件的新的革命,而是充分利用了一些已有的优秀开源软件,巧妙地把它们结合起来,使其在分布式环境中做到了集群式服务管理能力.监控能力.展示能力.这些优秀开源软件有: 在agent端,采用了puppet管理节点; 在Web端,采用了ember.js作为前端的MVC构架和NodeJS相关工具,用handlebars.js作为页面渲染引擎,在CSS/HTML方面还用了Bootstrap 框架; 在Server端,采用了Jetty, Spring,Jet

ambari介绍及安装

Ambari简介 Ambari概述 Apache Ambari是一种基于Web的工具,支持Apache Hadoop集群的创建.管理和监控.Ambari已支持大多数Hadoop组件,包括HDFS.MapReduce.Hive.Pig. Hbase.Zookeeper.Sqoop和Hcatalog等:除此之外,Ambari还支持Spark.Storm等计算框架及资源调度平台YARN. Apache Ambari 从集群节点和服务收集大量信息,并把它们表现为容易使用的,集中化的接口:Ambari W