七、【计算】Presto架构原理与优化介绍(上) | 青训营笔记

  👉引言💎

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。
热爱写作,愿意让自己成为更好的人…


在这里插入图片描述

铭记于心
🎉✨🎉我唯一知道的,便是我一无所知🎉✨🎉
  • 这是我参与「第四届青训营 」笔记创作活动的第七天

学习内容

本节课程主要分为四个方面:

  1. 介绍大数据与 OLAP 的演进之路,并简单介绍 Presto 的设计理念

  2. 介绍 Presto 的基础概念与原理,加深对Presto基础概念的理解

  3. 对 Presto 的特色和重要机制进行讲解和剖析

  4. 基于实际工作中遇到的case,介绍 Presto 常用的优化工具,以及 Presto 在字节内部的相关优化

名词解析

1 大数据与OLAP概念概述

大数据

OLAP

2 Presto 基础概念-服务
  • Coordinator(负责调度):

    • 解析SQL语句

    • ⽣成执⾏计划

    • 分发执⾏任务给Worker节点执⾏

  • Worker

    在一个presto集群中,存在一个coordinator节点和多个worker节点,coordinator节点是管理节点,而worker节点就是工作节点,在每个worker节点上都会存在一个worker服务进程,该服务进程主要进行数据的处理以及task的执行,worker服务进程每隔一定的时间都会向coordinator上的服务发送心跳,接受调度。当客户端提交一个查询的时候,coordinator则会从当前存活的worker列表中选择出适合的worker节点去运行task,而worker在执行每个task的时候又会进一步对当前task读入的每个split进行一系列的操作和处理

  • Discovery Service(将coordinator和woker结合到一起的服务):

    • Worker节点启动后向Discovery Server服务注册

    • Coordinator从Discovery Server获得Worker节点

    所有的worker都把自己注册到Discovery Server上,Discovery Server是一个发现服务的service,Discovery Server发现服务之后,coordinator便知道在集群中有多少个worker能够工作,分配工作到worker时便有了根据

3 Presto基础概念-数据源
  • Connector

    Presto通过Connector来支持多数据源,一个Connector代表一种数据源,如Hive Connector代表了对Hive数据源的支持。可以认为Connector是由Presto提供的适配多数据源的统一接口

  • Catalog

    针对不同的数据源,Connector和Catalog是一一对应的关系,Catalog包含了schema和data source的映射关系。

    Presto基础概念-Query部分

  • Query

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

  • Stage

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

  • Fragment

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

  • Task

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

  • Pipeline

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

  • Driver

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

  • Split

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

  • Operator

    最小的物理算子

    Presto基础概念-数据传输部分

  • Exchange

    表示不同 Stage 间的数据传输,大多数意义下等价于 Shuffle

  • LocalExchange

    Stage内的 rehash 操作,常用于提高并行处理数据的能力(Task在presto中只是最小的容器,而不是最小的执行单元)

一、概述

0 大数据与OLAP
  • 什么是大数据

在这里插入图片描述

在信息化时代背景下,由于信息交互,信息存储,信息处理能力大幅增加而产生的数据

  • 什么是OLAP

    OLAP (OnLine Analytical Processing) 对业务数据执行多维分析,并提供复杂计算,趋势分析和复杂数据建模的能力。是许多商务智能(BI)应用程序背后的技术。现如今OLAP已经发展为基于数据库通过SQL对外提供分析能力

  • OLAP 对比 MapReduce

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

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

  • OLAP核心概念:

在这里插入图片描述

  • 维度

  • 度量

常见的OLAP引擎:

  • 预计算引擎:Kylin,Druid

  • 批式处理引擎:Hive,Spark

  • 流式处理引擎:Flink

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

1 Presto设计理念

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

  • 多租户任务的管理与调度

  • 多数据源联邦查询

  • 支持内存化计算

  • pipeline式数据处理

2 设计思想

基于Presto进行的二次开发:

Prestodb

Trino

Openlookeng

🌹写在最后💖
路漫漫其修远兮,吾将上下而求索!伙伴们,再见!🌹🌹🌹在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦想new的出来

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值