Presto SQL执行步骤

1.客户端通过 HTTP 发送一个查询语句给Presto集群的Coordinator;

2.Coordinator 接收到客户端传来的查询语句,对该语句进行解析、生成查询执行计划,并根据查询执行计划依次生成 SqlQueryExecution -> SqlStageExecution -> HttpRemoteTask;

3.Coordinator 将每个Task分发到所需要处理的数据所在的Worker上进行分析;

4.执行Source Stage 的 Task,这些Task通过Connector从数据源中读取所需要的数据;

5.处于下游的Stage中用的Task会读取上游的Stage产生的输出结果,并在该Stage的每个Task所在的Worker内存中进行后续的计算和处理;

6.Coordinator 从分发的Task之后,一直持续不断的从Single Stage 中的Task获得计算结果,并将结果写入到缓存中,直到所所有的计算结束;

7.Client 从提交查询后,就一直监听 Coordinator 中的本次查询结果集,立即输出。直到轮训到所有的结果都返回,本次查询结束;

标签: coordinator、task、stage、presto、worker、面试
  • 回复
隐藏