跳到主要内容

Kubernetes 上的恢复

HivePlus on Kubernetes 通过使用 Deployment 创建 DAGAppMaster Pod,能够快速从 DAGAppMaster 故障中恢复。当 DAGAppMaster Pod 被杀死或其存活探针报告故障时,Kubernetes 自动创建新的 DAGAppMaster Pod 来替换旧的 Pod。(在早期版本中,MR3 本身负责检测 DAGAppMaster Pod 的故障并请求新的 DAGAppMaster Pod,从而使恢复过程相当缓慢。)下面介绍 HivePlus on Kubernetes 在以下情况下的行为:1)DAGAppMaster Pod 被杀死;2)Beeline 连接被杀死。

当 DAGAppMaster Pod 被杀死时

当 DAGAppMaster Pod 被杀死时,执行以下序列:

  • Kubernetes 立即创建新的 DAGAppMaster Pod。
  • 对于活动查询,Beeline 持续收到 RUNNING 状态但没有进一步进展,直到新的 DAGAppMaster Pod 上线。
  • 最终查询重新开始,Beeline 也继续正常运行。

在内部,新的 DAGAppMaster Pod 恢复活动查询创建的所有 DAG。因此,用户无需再次提交相同的查询。

当 Beeline 连接被杀死时

如果 Beeline 连接被杀死(例如使用命令 kill -9),HivePlus 会从 HiveServer2 中移除其对应的会话,并杀死 DAGAppMaster 中任何正在运行的 DAG。