presto使用及介绍

什么是presto

presto是一个开源的分布式的查询引擎,基于内存,它本身不接入数据,可以连接多种数据源,例如 Hive ,Mysql,Kafka,MongeDB等,一条Presto查询可以将多个数据源进行合并查询。
preto适合OLAP,而非OLTP,所以不要将preto当成数据库来使用。

presto优势

低延迟,高并发,纯内存计算引擎,查询效率是hive的数十倍

presto查询速度规模

数G到数P规模

presto数据模型

分为Catalog,Schema,Table三层

Catalog: 数据源,例如是Hive,还是Mysql等等
Schema: 库
Table: 表

presto架构

preso是一个Master-Slave架构,由一个Coordinator节点,一个Disovery Server节点及多个Worker节点组成
Coordinator:负责query解析和分发,work管理,meta管理
Disovery Server: 节点心跳,默认内嵌于Coordinator中,于Coordinator共享一台机器
Worker:计算节点,收到分发的task任务后,就会去对应的数据源取数

简单流程

Worker节点启动后向Discovery Server服务注册,Coordinator从Disovery Server获得正常工作的Worker节点,

presto 接入方式

使用Prosot的方式有多种: presto-cli,jdbc,http等等

以presto-cli为例接入hive数据源:

./presto-cli.jar --server presto.xxx.com:9200 --catalog hive --schema xxx 就可以进入presto终端界面

preto缺点

容错能力差: 当一个worker节点挂掉或者其他原因导致该worker节点上的查询失败的时候,整个query也会失败
内存限制:目前版本presto基于纯内存计算,内存不够也会失败,不会dump到磁盘上
并行查询:因所有的task都是并行计算,一个很慢会导致整个都很慢
并发限制: 因全内存操作,会导致同时处理的任务有限

presto使用及介绍_第1张图片

你可能感兴趣的:(大数据开发,java)