Impala简介(整理)

简介:         一、定义(来自百度百科)         Impala是Cloudera公司主导开发的新型查询系统,它提供SQL语义,能查询存储在Hadoop的HDFS和HBase中的PB级大数据。

        一、定义(来自百度百科)

        Impala是Cloudera公司主导开发的新型查询系统,它提供SQL语义,能查询存储在Hadoop的HDFS和HBase中的PB级大数据。已有的Hive系统虽然也提供了SQL语义,但由于Hive底层执行使用的是MapReduce引擎,仍然是一个批处理过程,难以满足查询的交互性。相比之下,Impala的最大特点也是最大卖点就是它的快速。

        二、Impala组成

        1、客户端:包括JDBC、ODBC、Hue、Impala Shell等,用于执行查询或完成管理任务;

        2、Hive Metastore:存储可用于Impala数据的信息,包括可用数据库及其结构。当执行Impala Sql语句进行schema对象的创建、修改及删除,或加载数据到表中等操作时,相关元数据的变化,通过单独的catalog服务自动广播到所有Impala节点;

        3、Cloudera Impala(Impalad进程):运行于数据节点的Impala程序,用于协调和执行查询。每一个Impala的实例可以获取、解析以及协调Impala客户端传来的查询。查询是被分布到各Impala节点间,这些节点作为workers,并行执行查询片段;

        4、HDFS、HBase:数据的实际存储位置。

        三、Impala查询执处理过程

        1、用户程序通过JDBC、ODBC、Impala Shell等Impala 客户端发送Sql语句给Impala;

        2、用户程序连接到集群中任意Impalad进程,这一进程作为整个查询的协调器;

        3、Impala解析、分析查询,确定哪些任务由集群中哪一Impalad实例执行,并生成最优执行计划;

        4、Impalad实例访问对应HDFS、HBase服务,获取数据;

        5、每一个Impalad实例将数据返回给协调器Impalad,由其发送结果给客户端。

        四、优点(来自百度百科)

        1、Impala不需要把中间结果写入磁盘,省掉了大量的I/O开销。

        2、省掉了MapReduce作业启动的开销。MapReduce启动task的速度很慢(默认每个心跳间隔是3秒钟),Impala直接通过相应的服务进程来进行作业调度,速度快了很多。

        3、Impala完全抛弃了MapReduce这个不太适合做SQL查询的范式,而是像Dremel一样借鉴了MPP并行数据库的思想另起炉灶,因此可做更多的查询优化,从而省掉不必要的shuffle、sort等开销。

        4、通过使用LLVM来统一编译运行时代码,避免了为支持通用编译而带来的不必要开销。

        5、用C++实现,做了很多有针对性的硬件优化,例如使用SSE指令。

        6、使用了支持Data locality的I/O调度机制,尽可能地将数据和计算分配在同一台机器上进行,减少了网络开销。

相关文章
|
存储 分布式计算 Hadoop
impala入门(一篇就够了)
impala入门(一篇就够了)
237 0
|
6月前
|
SQL 分布式计算 大数据
面经:Impala实时查询引擎原理与性能调优
【4月更文挑战第11天】Apache Impala是高性能的大数据查询引擎,常在面试中被关注。本文分享了Impala的面试重点:架构(Catalog Service、Statestore、Impalad)、查询流程、SQL特性、性能调优及与其他引擎的对比。理解其工作原理、SQL使用和调优策略,对于面试和实际工作都至关重要。通过示例和知识点详解,助你提升对Impala的掌握,自信应对技术考察。
359 3
|
6月前
|
SQL 存储 固态存储
presto、impala、kudu相关优化整理
presto、impala、kudu相关优化整理
|
6月前
|
SQL 分布式计算 Hadoop
Apache Impala 的安装部署
Apache Impala 的安装部署
219 0
|
SQL 存储 分布式计算
Impala 架构了解
Impala 架构了解
Impala 架构了解
|
SQL XML 分布式计算
CDH 搭 建_Impala|学习笔记
快速学习 CDH 搭 建_Impala
485 0
CDH 搭 建_Impala|学习笔记
|
SQL 分布式计算 Java
KuduSpark_Impala 访问 Kudu | 学习笔记
快速学习 KuduSpark_Impala 访问 Kudu
315 0
KuduSpark_Impala 访问 Kudu | 学习笔记
|
SQL 存储 Java
Kudu 整合 impala-java 操作 | 学习笔记
快速学习 Kudu 整合 impala-java 操作
441 0
Kudu 整合 impala-java 操作 | 学习笔记
|
SQL Java 数据库连接
JDBC 操作 impala | 学习笔记
快速学习 JDBC 操作 impala
1023 0
JDBC 操作 impala | 学习笔记
|
数据可视化 大数据 数据库
集成 Oozie 服务-集成 Impala 服务 | 学习笔记
快速学习 集成 Oozie 服务-集成 Impala 服务
109 0
集成 Oozie 服务-集成 Impala 服务 | 学习笔记