这是我参与【第四届青训营-大数据场】笔记创作活动的第8天
什么是大数据?
-
大数据=大规模的数据量?
-
关于大数据这里我们参考马丁·希尔伯特的总结:大数据其实是在2000年后,因为信息化的快速发展。信息交换、信息存储、信息处理三个方面能力的大幅增长而产生的数据。
-
OLAP(OnLine Analytical Processing)对业务数据执行多维分析,并提供复杂计算,趋势分析和复杂数据建模的能力。是许多商务智能(Bl)应用程序背后的技术。
- OLAP VS MapReduce
1.MapReduce 代表了抽象的物理执行模型,使用门槛较高 2.与 Mapreduce Job 相比,OLAP 引擎常通过 SQL 的形式,为数据分析、数据开发人员提供统一的逻辑描述语言,实际的物理执行由具体的引擎进行转换和优化。
基础概念介绍-数据源相关
Connector: 一个 Connector 代表一种数据源。可以认为 Connector 是由 Presto 提供的适配多数据源的统一接口。
Catalog:
管理元信息与实际数据的映射关系。
基础概念介绍-Query 相关
Query
基于 SQL parser 后获得的执行计划
Stage
根据是否需要 shuffle 将 Query 拆分成不同的 subplan,每一个 subplan 便是一个 stage Fragment
基本等价于 Stage,属于在不同阶段的称呼,在本门课程可以认为两者等价
Task
单个 Worker 节点上的最小资源管理单元: 在一个节点上,一个 Stage 只有一个 Task, 一个 Query 可能有多个Task基础概念介绍-Query相关
Pipeline
Stage 按照 LocalExchange 切分为若干 Operator 集合, 每个 Operator 集合定义一个 Pipeline.
Driver
Pipeline 的可执行实体,Pipeline 和 Driver 的关系可类比 程序和进程,是最小的执行单元,通过 火山迭代模型执行每一个Operator.
Spli
输入数据描述(数据实体是 Page), 数量上和 Driver --对应,不仅代表实际数据源split,也代表了不同stage间传输的数据。
Operator
最小的物理算子。 基础概念介绍-数据传输相关
Exchange & LocalExchange:
- Exchange:
- 表示不同 Stage 间的数据传输,大多数意义下等价于 Shuffle
- LocalExchange:
- Stage 内的 rehash 操作,常用于提高并行处理数据的能力(Task在
- Presto 中只是最小的容器,而不是最小的执行单元)
- LocalExchange 的默认数值是16。
- Discovery Service:
1.Worker 配置文件配置 Discovery Service地址
-
Worker 节点启动后会向 Discovery Service 注册
-
Coordiantor 从Discovery Service 获取 Worker 的地址
- 核心组件架构介绍-通信机制
通信机制
- Presto Client/ JDBC Client与Server 间通信.Http
- Coordinator 与 Worker 间的通信 Thrift /Http
- Worker 与 Worker 间的通信 Thrift/Http
Http 1.1 VS Thrift
-
Thrift 具有更好的数据编码能力,Http 1.1 还不支持头部信息的压缩,Thrift 具有更好的数据压缩率
-
多租户下的任务调度- Stage 调度
-
PhasedExecutionPolicy:
-
不代表每个 stage 都分开调度
- 典型的应用场景(join查询)
- Build 端:右表构建用户join的hashtable
- Probe 端:对用户左表数据进行探查,需要等待build端完成
- Build 端构建hashtable端时,probe 端是一直在空跑的
多租户下的任务调度 - Task 调度
- Task 的数量如何确定:
- Source:根据数据meta决定分配多少个节点
- Fixed: hash partition count 确定,如集群节点数量
- Sink: 汇聚结果,一台机器
- / Scaled:无分区限制,可拓展,如write数据
- V Coordinator Only: 只需要coordinator参与