Presto 架构 | 青训营笔记

82 阅读2分钟

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

概述

大数据

马丁·希尔伯特 的总结: 大数据其实是在2000年后,因 为信息化的快速发展。信息交换、信息 存储、信息处理三个方面能力的大幅增 长而产生的数据。

大数据与 OLAP的演进

  • Hadoop:基于廉价机器的存算分离的大规模分布式处理系统
  1. 谷歌在2003、2004年 发布Google File System论文、MapReduce论文。
  2. 2008年,Hadoop成为apache顶级项目

OLAP(OnLine Analytical Processing)对业务数据执行多维分析,并提供复杂计算,趋势分析和复杂 数据建模的能力。是许多商务智能(BI)应用程序背后的技术。

  • OLAP 和 MapReduce

1.MapReduce代表了抽象的物理执行模型,使用门槛较高

2.与 Mapreduce Job 相比, OLAP 引擎常通过 SQL 的形式,为数据分析、数据开发人员提供统一的逻 辑描述语言,实际的物理执行由具体的引擎进行转换和优化。

常见的OLAP引擎

  • 预计算引擎:Kylin,Druid
  • 批式处理引擎:Hive,Spark
  • 流式处理引擎:Fink
  • 交互式理引擎:Presto,Clickhouse,Doris

Presto基础原理与概念

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

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

Fragment 基本等价于Stage,属于在不同阶段的称呼,在本门课程可以认为两者等价

Task单个Vorker节点上的最小资源管理单元:在一个节点上,一个Stage只有一个Task,一个Query可能有多个Task

Query相关

Pipeline Stage按照LocalExchange切分为若干Operator集合,每 个Operator集合定义一个Pipeline.

Driver Pipeline的可执行实体,Pipeline和Driver的关系可类比程序和进程,是最小的执行单元,通过火山迭代模型执行每一个Operator.

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

Operator 最小的物理算子。

Presto重要机制:

  1. 多租户资源管理
  2. 多租户任务调度
  3. 内存计算
  4. 多数据源联邦查询