说明
数据产品经理教程 正在编写中,欢迎大家加微信 gairuo123 (备注:数据产品教程) 提供意见、建议、纠错、催更。应大家要求,作者开办数据产品和数据分析培训班,详情 数据产品经理培训 / 数据分析培训。
Impala是Cloudera公司主导开发的新型查询系统,它提供SQL 语义,能查询存储在Hadoop的HDFS和HBase中的PB级大数据。Impala是基于MPP查询引擎的,它的计算和存储是在同一台节点上,并且共享自己的内存、磁盘、CPU等,这样每个节点可以方便的进行并行计算。
已有的Hive系统虽然也提供了SQL语义,但由于Hive底层执行使用的是 MapReduce引擎,仍然是一个批处理过程,难以满足查询的交互性。相比之下,Impala的最大特点也是最大卖点就是它的快速。那么Impala如 何实现大数据的快速查询呢?在回答这个问题前,需要先介绍Google的Dremel系统,因为Impala最开始是参照 Dremel系统进行设计的。
Impala 提高了 Apache Hadoop 上 SQL 查询性能的标准,同时保留了熟悉的用户体验。 使用 Impala,您可以实时查询存储在 HDFS 或 Apache HBase 中的数据,包括 SELECT、JOIN 和聚合函数。 此外,Impala 使用与 Apache Hive 相同的元数据、SQL 语法 (Hive SQL)、ODBC 驱动程序和用户界面 (Hue Beeswax),为面向批处理或实时查询提供熟悉且统一的平台。 (因此,Hive 用户只需很少的设置开销即可使用 Impala。)
为了避免延迟,Impala 绕过 MapReduce,通过一个专门的分布式查询引擎直接访问数据,该引擎与商业并行 RDBMS 中的引擎非常相似。 结果是性能比 Hive 快一个数量级,具体取决于查询和配置的类型。
与查询 Hadoop 数据的替代方法相比,Impala 有许多优点,包括:
查询的优势:
-(1)Impala完全抛弃了MapReduce这个不太适合做SQL查询的范式,而是像Dremel一样借鉴了MPP并行数据库的思想,采用了全服务进程的设计架构,所有计算均在预先启动的一组服务中进行,可支持更高的并发,同时省掉不必要的shuffle、sort等开销;
-(2)Impala采用全内存实现,不需要把中间结果写入磁盘,省掉了大量I/O开销;
-(3)Impala充分利用本地读(而非远程网络读),尽可能地将数据和计算分配在同一台机器,减少了网络开销。
更新时间:2022-06-29 09:58:41 标签:impala 大数据 查询