场景下的交互式计算引擎Impala和Presto
Posted 大数据与微服务架构
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了场景下的交互式计算引擎Impala和Presto相关的知识,希望对你有一定的参考价值。
应用于ROLAP场景下的交互式计算引擎Impala和Presto
具有以下特点:
1、跟Hadoop生态系统完好结合,可与Hive Metastore对接,处理hive中的表,可直接处理存储在HDFS和Hbase中的数据。
2、计算与存储分析:仅仅是查询引擎,不提供数据存储服务。
3、MPP架构,采用经典的MPP架构,具有良好的扩展性,能够应对TB甚至PB级数据交互式查询需求;
4、嵌套式数据存储,支持常见的列式存储格式,比如ORC和Parquet。
Impala:由Cludera公司开发,充分结合传统数据库与大数据系统Hadoop的优势,构造一个全新的、支持SQL与多租户、并具备良好的灵活性和扩展性的高性能查询引擎。
一、特征:
1、Impala完全抛弃了MapReduce这个不太适合做SQL查询的范式,借鉴了MPP并行数据库思想,采用了全服务进程的设计架构。
2、采用全内存实现,不需要把中间结果写入磁盘,省掉大量的I/O开销。
3、充分利用本地读,尽可能的将数据和计算分配到同一台机器上。
4、用C++实现,做了很多针对底层的优化,eg:SSE指令。
二、基本架构:
1、Catalogd:元信息管理服务
2、Statestored:状态管理服务器
3、Impalad:同时承担协调者和执行这双重角色。
三、访问方式
通过JDBC/ODBC访问,通过Kerberos或LADP进行认证。
Presto:由Facebook公司开源,能够处理TB甚至PB级别的数据量,由于Presto能与Hive进行无缝集成,因而成为主流的OLAP引擎。
一、基本架构:
是一个Master-Slave架构,由一个Coordinator服务,一个Discovery Server服务,多个Worker服务组成。
1、Coordinator:协调者,接收客户端查询请求(SQL)并对齐进行词法分析,语法分析生成逻辑查询计划及物理查询计划,将各个任务调度到各位worker上执行,并在worker返回结果后对其进一步汇总。在一个Presto集群中可同时存在多个Coordinator防止单点故障。
2、Discovery Server:服务发现组件,各个Worker启动时会定期向Discovery Server注册,并将状态信息汇报给Discovery Server
3、Worker:任务执行者。
Presto是一个分布式查询引擎,并不提供数据存储功能,为此,Presto采用了插件化设计思路,支撑多种数据样,包括Hive、HDFS、mysql、Cassanddra、Hbase和Redis等。
二、访问方式
Presto是插件式架构,通过连接器接入外部数据源,为了区分各个数据源中的数据,它在数据库之上引入了一层命名空间:catalog,前面提到的Hive、Cassandra和Mysql等在Presto中均以catalog存在。不同的catalog中可以有多个数据库,每个数据库中进一步可以存在多张表。
区别于多维度数据组织的MOLAP类型的OLAP查询引擎Druid和Kylin。
以上是关于场景下的交互式计算引擎Impala和Presto的主要内容,如果未能解决你的问题,请参考以下文章