首页 > 代码库 > Ambari Agent Command分析

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 的结果

技术分享

 

技术分享

 

技术分享

 

技术分享

 

Ambari Agent Command分析