presto背景及发展
长话短说,大数据时代,hadoop的解决方案,解决了完美的大数据存储和很好的解决了计算的问题,但是由于hadoop采用的是一套MR的解决方案,这就导致hadoop可以解决大批量的离线计算问题但是不能很好的解决AC-hoc的问题,faceBook开源了presto
presto的特点
多数据源
支持sql
支持混合查询
拓展性
混合计算
高性能
内存计算,流水线
presto的服务进程
coordinator :
coordinator为整个presto的管理节点,接受客户端的查询,查询语句的解析,生成查询语句执行计划,stage和task的调度。
worker:
在presto集群中存在多个work节点和一个coordinator节点,work节点处理task并执行以及进一步对task读入的spit进行一系列的操作和处理,每隔一段时间想coordinator通报自己的情况,coordinator会在存货的worker中挑选出还是worker节点去运行task
presto的模型
connector
presto通过各种各项的connect来连接数据源,connect的信息配置在$PRESTO_HOME/etc/catalog/xxxx.properties,其中connection.name,presto就使用这个参数来确定使用那个connector来访问这个数据源。
catalog
一个catalog类似一个MySQL的实例,其中xxx.properties.的文件名字就是catalog的名字,xxx.properties中描述了相关的连接信息。
schema
类似一个数据库
table
类似一个table
presto的执行流程
client---coordinate---多个worker---query---拆分成多个stage--中间通过exchange连接---拆分成task---一个或者多个driver
---spit--多个oprate--page(1M 16*1024数据)---多个block