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

70 阅读2分钟

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

本节课程有以下四点

  1. 介绍大数据与OLAP
  2. 介绍Presto的基础概念与原理,加深对Presto基础概念的理解
  3. 对Presto的特色和重要机制进行讲解和解析
  4. 基于实际工作中遇到的Case,介绍Presto常用的优化工具

概述

  1. 大数据:在信息化时代背景下,由于信息交互,信息存储,信息处理能力大幅度增加而产生的数据。
  2. OLAP:OLAP (OnLine Analytical Processing) 对业务数据执行多维分析,并提供复杂计算,趋势分析和复杂数据建模的能力。是许多商务智能(BI)应用程序背后的技术。现如今OLAP已经发展为基于数据库通过SQL对外提供分析能力
  3. Presto:Presto最初是由facebook研发的构建与Hadoop/HDFS系统之上的PB级交互式分析引擎,其具有如下特点:
    • 多租户任务的管理与调度
    • 多数据源联邦查询
    • 支持内存化计算
    • pipeline式数据处理

概念

  1. Presto的基础概念有哪些
  • 服务相关概念
  • 数据源相关概念
  • Query相关概念
  • 数据传输相关概念

2.Presto的通信方式有哪些,Thrift通信的优势有哪些

Http 1.1 VS Thrift Thrift具有更好的数据编码能力,Http1.1还不支持头部信息的压缩,Thrift具有更好的数据压缩力

3.Presto Worker的不同状态

  1. Active
  2. InActive
  3. Shutdown

4.Presto架构图

image.png

重要机制

  • Presto用户多租户隔离: Presto 通过Resource Group对不同的用户创建不同Group从而实现不同租户,不同场景的资源管理
  • Presto Resource Group的优点:支持通配符的形式,对不同租户,不同提交场景下的用户进行限制
  • Presto Resource Group的缺点:资源的管理和判断是以当前用户正在运行的SQL资源使用量为基准,对于低频大SQL场景不太适用
  • Presto是从以下方面实现了多租户的任务调度:
    1. Stage调度策略
    2. Task的节点选择策略
    3. Split调度策略
  • Presto Stage调度的方式:
    1. AllAtOnceExecutionPolicy
    2. PhasedExecutionPolicy
  • Presto多数据源支持的优点:支持多数据源的联邦查询
  • Presto多数据源支持的缺点:针对不同数据源,还存在许多问题需要解决
    1. 谓词下推
    2. 每个数据源都需要单独的一套catalog管理
    3. 如何针对数据源进行分片操作

性能优化实战

  • 常用的性能工具
    1. Grafana
    2. Arthas
    3. Flame Figure(火焰图)
    4. java指令:jstack等指令