没有合适的资源?快使用搜索试试~ 我知道了~
Presto架构及原理
15 下载量 115 浏览量
2021-01-27
12:13:49
上传
评论
收藏 384KB PDF 举报
温馨提示
试读
4页
Presto是Facebook推出的一个基于Java开发的大数据分布式 SQL查询引擎,可对从数G到数P的大数据进行交互式的查询,查询的速度达到商业数据仓库的级别,据称该引擎的性能是 Hive的10倍以上。Presto可以查询包括Hive、Cassandra甚至是一些商业的数据存储产品,单个 Presto查询可合并来自多个数据源的数据进行统一分析。Presto的目标是在可期望的响应时间
资源推荐
资源详情
资源评论
Presto架构及原理架构及原理
Presto 是 Facebook 推出的一个基于Java开发的大数据分布式 SQL 查询引擎,可对从数 G 到数 P 的大数据进行交互式的查
询,查询的速度达到商业数据仓库的级别,据称该引擎的性能是 Hive 的 10 倍以上。Presto 可以查询包括 Hive、Cassandra
甚至是一些商业的数据存储产品,单个 Presto 查询可合并来自多个数据源的数据进行统一分析。Presto 的目标是在可期望的
响应时间内返回查询结果,Facebook 在内部多个数据存储中使用 Presto 交互式查询,包括 300PB 的数据仓库,超过 1000
个 Facebook 员工每天在使用 Presto 运行超过 3 万个查询,每天扫描超过 1PB 的数据。
Presto架构
Presto查询引擎是一个Master-Slave的架构,由下面三部分组成:
一个Coordinator节点
一个Discovery Server节点
多个Worker节点
Coordinator: 负责解析SQL语句,生成执行计划,分发执行任务给Worker节点执行
Discovery Server: 通常内嵌于Coordinator节点中
Worker节点: 负责实际执行查询任务,负责与HDFS交互读取数据
Worker节点启动后向Discovery Server服务注册,Coordinator从Discovery Server获得可以正常工作的Worker节点。如果配置
了Hive Connector,需要配置一个Hive MetaStore服务为Presto提供Hive元信息
更形象架构图如下:
Presto低延迟原理
完全基于内存的并行计算
流水线式计算作业
本地化计算
动态编译执行计划
GC控制
Presto存储插件
Presto设计了一个简单的数据存储的抽象层, 来满足在不同数据存储系统之上都可以使用SQL进行查询。
存储插件(连接器,connector)只需要提供实现以下操作的接口, 包括对元数据(metadata)的提取,获得数据存储的位
置,获取数据本身的操作等。
除了我们主要使用的Hive/HDFS后台系统之外, 我们也开发了一些连接其他系统的Presto 连接器,包括HBase,Scribe和定
制开发的系统
插件结构图如下:
presto执行过程
执行过程示意图:
资源评论
weixin_38678300
- 粉丝: 4
- 资源: 1002
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功