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

54 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第7天,在第七节课中主要了解到了Presto架构原理与优化介绍有关的内容。

概述

大数据与OLAP系统的演进

大数据:

  • 通信和网络带宽的大幅增长
  • 整理、转换、分析数据的能力大幅增长
  • 计算机存储量的大幅增长 Hadoop:
  • 基于廉价机器的存算分离的大规模分布式处理系统 OLAP:对业务数据执行多维分析,并提供复杂计算。趋势分析和复杂数据建模的能力,是许多商务智能应用程序背后的技术 OLAP核心概念:
  • 维度、度量 常见的OLAP引擎:
  • 预计算引擎:Kylin,Druid
  • 批式处理引擎:Hive,Spark
  • 流式处理引擎:Flink
  • 交互式处理引擎:Presto、Clickhouse,Doris

Presto设计思想

特点:

  • 多租户任务的管理与调度
  • 多数据源联邦查询
  • 支持内存化计算
  • Pipiline式数据处理

Presto基础原理和概念

基础概念介绍

服务相关

Coornator:

  • 解析SQL语句
  • 生成执行计算
  • 分发执行任务给Worker节点 Worker:
  • 执行Task处理数据
  • 与其他Worker交互传输数据

数据源相关

Connector:

  • 一个Connector代表一种数据源,可以认为Connector是由Presto提供的适配多数据源的统一接口 Catalog:
  • 管理元信息与实际数据的映射关系

Query相关

  • Query
  • Stage
  • Fragment
  • Task
  • Pipeline
  • Driver
  • Split
  • Operator

数据传输相关

  • Exchange&LocalExchange
  • Exchange
  • LocalExchange

核心组件架构介绍

Presto架构图

image.png 服务发现:

  • Worker配置文件配置Discovery Service地址
  • Worker节点启动后会向Discovery Service注册
  • Coordinator从Discovery Service获取Worker的地址 通信机制:
  • Presto Client/JDBC Client与Server间通信:Http
  • Coordinator与Worker间的通信:Thrift/Http
  • Worker与Woker间的通信:Thrift/Http

Presto重要机制

多租户资源管理

多租户下的任务调度

内存计算

多数据源联邦查询

性能优化实战