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。