天天看点

Ambari 架构(四)Ambari Agent 架构

Ambari 架构(四)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 的工作流程:

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 重新加载一遍

actionexecutor:定期从 commandqueue 中加载需要执行的 command,找到 command 对应的 python 脚本,执行脚本,并把结果存储到 resultmap 中。

alertschedulerhandler:从 alert definitions 文件中加载所有 alert 定义,根据 alert 定义,找到对应的 python 脚本,周期性执行,并把结果存储到 alertcollect 中。