Presto工人正常关机

时间:2018-12-14 20:00:33

标签: presto

作为自动扩展我们的presto集群的一部分,我们希望在让EC2终止前,正常关闭presto worker。遵循命令后

curl -v -XPUT --data'“ SHUTTING_DOWN”'-H“内容类型:application / json” http://250.0.46.167:8081/v1/info/state

工作日志立即立即指示“ com.facebook.presto.server.GracefulShutdownHandler请求关闭”,并且协调器中的节点很快变为“ shutting_down”状态。工作进程最终在4分钟后退出(由于2分钟的两倍宽限期,而不是待处理的查询)。

到目前为止,一切都很好,但是对于任何托管守护程序都是如此。工作进程立即重新启动,很快节点在协调器中恢复为“活动”状态。

我们希望Presto正常关机的工作大致如下所示:关机请求将发送到协调器(而不是工作器)。协调器告诉工作程序关闭,然后在逻辑上将其从活动节点列表中删除。如果工作人员重新启动并重新注册,协调员将在下一小时内忽略它。

我想知道当前的Presto集群所有者/运营商如何处理此问题?

2 个答案:

答案 0 :(得分:0)

我所做的是在 PUT 请求之后,我继续以 1 秒的间隔轮询同一资源上的 GET 输出,并在实例无法响应(服务关闭)或返回 ACTIVE(服务重新启动)时立即关闭实例

在正常关闭后,1 秒不足以让服务再次完全上线,所以这对我来说一直很好

答案 1 :(得分:0)

graceful shutdown documentation 包含 HTTP PUT 的所有相关详细信息,以及它的整体工作方式。

通常集群节点通常会运行很长时间。协调器在关闭时自动停止对工作线程的调度并将其从池中移除。