• Presto 之 Query & Stage的几种状态


    一.  前言

         在Presto中,Stage的状态是指:

         

          Query的状态则是指:

         本文主要介绍在Presto中,Query和Stage的几种状态以及每个状态下的主要任务。

    二. Stage的几种状态

           PLANNED:PLANNED是Stage的初始状态,处于PLANNED状态的Stage将会被被Stage调度线程进行调度。

           SCHEDULING:一旦Stage开始被Stage调度线程调度运行,Stage将进入SCHEDULING状态,SCHEDULING状态的主要任务为:

    1. 调用connector的接口获取所有的source split。

    2. 生成source split的调度计划(ScheduleResult)。

    3. 根据source split 生成task等。

         SCHEDULING_SPLITS:Stage的task生成完后,Stage将进入SCHEDULING_SPLITS的状态,SCHEDULING_SPLITS的任务主要包括:

    1. 将task提交到各个worker运行。

    2. 将source split的信息提交给task等。

         SCHEDULED: Task分发到各个worker后,Stage将进入SCHEDULED状态。

         RUNNING: 如果有Task变成Running状态,Stage也变成Running状态,任务将启动运行。

         FINISHED: 结束状态。

    三. Query的几种状态

         QUEUED:QUEUED状态是query的初始状态,当CN收到查询的时候,会首先将该查询的状态置为QUEUED状态,QUEUED的查询会等待resource-group有可运行资源后进入到WAITING_FOR_RESOURCES阶段。

         WAITING_FOR_RESOURCES:当query被submit到resourceGroupManager后,query的状态变成WAITING_FOR_RESOURCES,WAITING_FOR_RESOURCES的状态主要为等待足够的worker个数,当worker的个数足够后,状态转为DISPATCHING状态。

         DISPATCHING:此阶段的主要任务为等到querySubmitter线程池调度运行queryExecution。

         PLANNING:此阶段的主要任务为生成执行计划、RBO优化、生成生成分布式执行计划。

         STARTING:单分布式执行计划生成完成后,查询将进入STARTING状态,CN将开始调度Stage,进入到上边Stage的SCHEDULING状态。

         RUNNING:当Query开始已经有Task被调度运行时,Query将处于Running状态。

         FINISHING:当探测到OutputTask的Stage已经处于FINISHED的时候,Query的状态将修改成FINISHING状态,FINISHING期间主要任务是回调connector的commit接口和做任务清理工作。

         FINISHED:任务结束状态。

  • 相关阅读:
    Open3D RANSAC拟合球
    leetcode两数之和使用JavaScript解题
    LabVIEW定义自定义错误代码在应用程序中使用
    Stable-Diffusion-WebUI 常用提示词插件
    计算机毕业设计Java家乡旅游文化推广网站(源码+系统+mysql数据库+lw文档)
    小快轻准,5分钟自助上线,中小型制造企业数字化转型
    解决:旧版本的 Boostnote 笔记无法导入到新版本 Boostnote 中
    输入ceph命令无效,进入ceph shell界面就有效是正常的吗?
    安全运营中心自动化究竟是好还是坏
    [计算机提升] 环境变量
  • 原文地址:https://blog.csdn.net/wangfeihuo/article/details/132928003