Ambari系统架构设计
时间 2019-12-12
标签
ambari
系统
架构
设计
-
-
- 恢复:master的故障恢复有两种选择
-
- 动做恢复:在这个例子中,动做会被持久化,而后在恢复时被从新构建执行计划。集群状态也会被持久化到数据库中,并在重启后从新构建状态。有种状况可能会发生,就是动做已经执行完毕,但因为master崩溃而没有记录状态,这时须要有一种机制来确认这个操做时幂等的,而且将数据库中全部被标记为完成或失败的动做都从新制定计划并执行。被持久化的动做能够经过redo logs查看。
- 还有一种状况是基于指望状态的恢复。在这种状况下,master持久化了一个指望状态,并经过重启的手段来使集群达到这个状态。
- 由于咱们提早对操做作了执行计划并持久化了它,因此这种基于动做的恢复跟咱们的总体设计结合的很好。尽管咱们持久化了指望状态,咱们仍然须要对动做从新作执行计划。并且从ambari的视角来看,设置指望状态的实践没有捕获操做对集群状态的改变。持久化的动做能够经过redo logs来查看。
- agent的恢复只须要重启agent就能够了,由于agent是无状态的。agent的失败能够由master经过必定时间的心跳包缺失而获知。
- 待定的:agent重启是怎么样的?
- 安全:
-
- 一种方式是使用HTTP基础认证。这意味着客户端的每次请求都要经过一个credentials(多是base46编码过的),服务端必须对每次调用都作认证。这种方法对命令行客户端使用api比较容易。这种方法服务端不保存客户端的session状态。
- 还有一种方式是使用HTTP session和Cookies。每当服务端作了一次认证,就生成一个session-id,存储起来,并将session-id做为一个id返回并存储到客户端。在接下来的请求中,客户端可使用这个session-id来作认证。这种方法在不须要每次请求都作认证的请求下会颇有效率。VMWare的vCloud REST API 1.0中就使用了这种方法。可是,因为安全问题,他们在以后的版本中弃用了这种方法(http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displ
ayKC&externalId=1025884)。这种方法在服务端保持了session状态,而没有作到RESTFulnes(若是咱们在乎这个的话)
- 咱们能够同时支持以上两种方式。
- 对于命令行工具,推荐使用第一种方式。对于基于浏览器的应用,第二种方式能够防止重复认证。
- 以上两种认证方式都应该经过HTTPS方式来完成。用户认证信息和session令牌永远不要在HTTP下进行传输。
- 向导:
-
- 在HMC(1.0发布版)(小型机控制软件)中,向导在安装、配置主机过程当中是一个很是integrated的过程。在ambari1.1中,在主机上安装agent是,向导是一个很是有用的方法。在HMC1.0中,向导会得到主机信息,并将其添加到数据库中。这将成为ambari中agent向master注册过程的一部分。向导将只经过SSH链接主机并安装agent。在执行向导的过程当中,数据库不会被改变(??)。