Presto架构原理与优化介绍 | 青训营笔记

78 阅读2分钟

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

一、概述

大数据与OLAP的演进

  • 什么是大数据?

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

image.png

  • Hadoop:基于廉价机器的存算分离的大规模分布式处理系统

1.谷歌在2003、2004年 发布Google File System论文、MapReduce论文。

2.2008年,Hadoop成为apache顶级项目

  • OLAP(OnLine Analytical Processing) 对业务数据执行多维分析,并提供复杂计算,趋势分析和复杂数据建模的能力。是许多商务智能(BI) 应用程序背后的技术。
  • OLAP VS MapReduce
  1. MapReduce代表了抽象的物理执行模型,使用门槛较高。

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

  • 常见的OLAP引擎:

预计算引擎: Kylin, Druid

批式处理引擎: Hive, Spark

流式处理引擎: Flink

交互式处理引擎: Presto, Clickhouse, Doris

  • Presto设计思想

Presto最初是由Facebook研发的构建于Hadoop/HDFS系统之上的PB级交互式分析引擎, 其具有如下的特点:

多租户任务的管理与调度

多数据源联邦查询

支持内存化计算

Pipeline式数据处理

二、Presto基础原理和概念

  • 基础概念介绍-服务相关 Coordinator:

解析SQL语句、生成执行计划、券爱执行任务GWoke节点

Worker:

sk处理数据、执行Tas、共其他Wotke交互传输数据

  • 基础概念介绍-数据源相关 Connector:

一个Connector代表种数据源。 可以认为Connector是由Presto提供的适配多数据源的统一接口。

Catalog:

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

  • 基础概念介绍-query相关

Query

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

Stage

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

Fragment

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

Task

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

image.png

  • 基础概念介绍-数据传输相关

image.png

image.png

  • 核心组件架构介绍

image.png

  • 核心组件架构介绍-服务发现

image.png

  • 核心组件架构介绍-通信机制

image.png