Ambari Agent Command分析

一、概述:

根据 Ambari Server 架构文章中的介绍,由于 Ambari Server 和 Ambari Agent 之间是通过 HTTP 短连接进行通信,所以 Server 无法把需要执行的 Command,直接推送给 Agent,而是需要把命令存储在 ActionQueue 中,

然后 Agent 通过定期发送 Heartbeat 请求,把 Command 拉过去执行,并通过下次的 Heartbeat 请求,返回执行结果。下面简单分析一下 Command 的处理过程:

二、Agent Command 类型

  • REGISTRATION_COMMAND:注册指令
  • STATUS_COMMAND:汇报状态
  • EXECUTION_COMMAND:执行任务
  • CANCEL_COMMAND:取消任务
  • ALERT_DEFINITION_COMMAND:更新 Alert 定义
  • ALERT_EXECUTION_COMMAND:立即执行一个 Alert

三、Request 处理逻辑

时机:用户触发了一个操作服务/组件的操作

1、计算依赖,生成 Command,并保存到数据库
2、定期从数据库加载 Command,并添加到 ActionQueue
3、心跳逻辑:
· 把 ActionQueue 中的所有 Command 下发给 Agent
· 根据 Agent 的汇报,处理 Request 的结果

时间: 2024-10-12 23:12:05

Ambari Agent Command分析的相关文章

Ambari Agent 架构

Ambari Agent 架构图,由图中看,主要有3部分: HeartBeatHandler:发送 HTTP 请求和 Ambari Server 进行交互.ActionExecutor:Command 执行器.AlertSchedulerHandler:Alert 处理器. 4个数据容器: CommandQueue:存储需要执行的 Command.ResultMap:存储 Command 的执行结果.Alert definitions file:是一个文件,保存所有的 Alert 定义.Aler

Ambari源码分析之总览

一.基本概念: Resource:Ambari把可以被管理的资源的抽象为一个Resource实例,资源可以包括服务.组件.主机节点等,一个resource实例中包含了一系列该资源的属性: Property:服务组件的指标名称: ResourceProvider和PropertyProvider分别对应Resource和Property的提供方,获取指标需要先获取Resource,然后获取Property对应的metric: Query:Query是Resource的内部对象,代表了对该资源的操作

Ambari源码分析之Resource.Type与ResourceProvider对应关系

测试环境:Oracle Enterprise Linux 64-bit (5.8版本) + Oracle 11g 64位 相关说明: Oracle11g64位软件的安装位置为/u01/app/oracle/product/11.2.0/dbhome_1 ,数据库名为默认的orcl,Linux虚拟机的IP设置为192.168.1.121 一.修改listener.ora文件内容 命令:[[email protected] ~]$ vi /u01/app/oracle/product/11.2.0/

Ambari源码分析之Resource.Type与PropertyProvider对应关系

PropertyProvider是取得监控指标的组件,下面给出Resource.Type与PropertyProvider对应关系: Resource.Type PropertyProvider Cluster GangliaReportPropertyProvider Service NagiosPropertyProvider Host GangliaHostPropertyProvider;NagiosPropertyProvider Component StackDefinedPrope

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.7 源码编译笔记

环境CentOS 6.5 1.安装jdk [[email protected] zzh]# wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.rpm [[email protected] zzh

CENTOS 6部署Ambari

一.准备工作: 1. 基本工具 yum rpm scp curl wget pdsh 前几个一般系统都自带了, pdsh 需要自己装 : yum install pdsh 这个命令没有成功执行 自己下载 pdsh.tar.bz2 ,用 tar -jxvf filename.tar.bz 解压.之后进入 filename 文件夹,执行 ./configure, 然后执行 make 和 make install 命令.安装结束. 另:使用 yum install pdsh 没有成功的问题安装 epe