Presto 原理| 青训营笔记

74 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的的第5天

  • OLAP与大数据

OLAP(Online Analytical Processing)是可以对业务数据执行多维分析,进行复杂计算的计算方法。OLAP是许多商业智能 (BI) 应用程序背后的一项强大技术,它可以发现数据、报告查看功能、复杂的分析计算以及预测性“假设”场景、预算计划、预测计划。常见的OLAP引擎见下图。

截屏2022-08-02 14.58.08.png

  • Presto基础概念

  • 基础服务

  • Coordinator :解析SQL语句,生成执行计划,分发执行计划给Worker节点。

  • Worker:执行Task处理数据,与其他Work传输数据。

  • Connector:一个connector代表一种数据源。

  • Catolog:管理元信息与实际数据的映射关系。

(补充)

  • Fixed:用于接收子 Stage 产生的数据,并在集群中对这些数据进行聚合或分组计算。

  • Source:连接数据源,从数据源读取数据。

  • 基础概念query相关

  • Query:基于SQL parser后获得的执行计划。

  • Stage:根据是否需要shuffle将Query拆分成不同的subplan,每个subplan就是一个stage。

  • Fragment:几百等价于stage。

  • Task:单个worker节点下最小的资源管理单位。

  • Pipeline:stage按照LocalExchange切分为若干Operator集合,每个Operator集合定义一个pipeline。

  • Driver:Pipeline的执行实体。

  • Split:输入数据描述,数量上和Driver一一对应,不仅代表实际数据源split,也代表了不同stage间传输的数据。

  • Operator:最小物理算子。

presto基本架构如下:

截屏2022-08-02 16.35.39.png

  • 通信

(补充)Thrift:一种接口描述语言和二进制通讯协议,它被用来定义和创建跨语言的服务。它被当作一个远程过程调用(RPC)框架来使用。

截屏2022-08-02 16.41.02.png

  • Presto重要机制

多租户资源管理:Presto非常适合多租户使用,因为它内置了一个细粒度资源管理系统,类似于Yarn多级队列的管理方式。这使得一个集群可以同时支持多个查询,合理利用CPU,IO和内存资源。支持stage,task,split调度。

优点:轻量的query级别的多级队列资源管理模式。

缺点:存在一定滞后性,只会对Group中正在运行的SQL进行判断。