Impala简介(整理)
一、定义(来自百度百科)
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调度机制,尽可能地将数据和计算分配在同一台机器上进行,减少了网络开销。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
centos 7下Hadoop 2.7.2 伪分布式安装
centos 7 下Hadoop 2.7.2 伪分布式安装,安装jdk,免密匙登录,配置mapreduce,配置YARN。详细步骤如下: 1.0 安装JDK 1.1 查看是否安装了openjdk [lei@bogon ~]$ java -version openjdk version "1.8.0_65" OpenJDK Runtime Environment (build 1.8.0_65-b17) OpenJDK 64-Bit Server VM (build 25.65-b01, mixed mode) 1.2 查看openjdk源 [lei@bogon ~]$ rpm -qa | grep java java-1.7.0-openjdk-1.7.0.91-2.6.2.3.el7.x86_64 tzdata-java-2015g-1.el7.noarch python-javapackages-3.4.1-11.el7.noarch javapackages-tools-3.4.1-11.el7.noarch java-1.8.0-openjdk-headless-1.8.0.6...
-
下一篇
Impala之Impalad进程
Impalad进程是Impala的核心组件,它是运行在集群中每个Impala节点上的一个守护进程。它主要负责: 1、从HDFS或HBase中读、写数据; 2、接收来自JDBC、Impala Shell等客户端命令; 3、并行化执行查询语句,分发到Impala集群中其它节点,并将查询中间结果汇报到中央协调节点Impalad进程; 4、定时与statestore通讯,以确定哪些节点是健康的,可以接受新的工作; 5、接收catalogd守护进程(Impala 1.2中引入)的广播,广播信息包括集群中任意Impala节点上创建、修改、删除任意类型的对象,或者通过Impala执行的INSERT、 LOAD DATA语句。 在执行查询时,可以向Impala集群中任一节点上Impalad守护进程提交查询,这一节点便会成为整个查询的协调器节点,其他节点将查询的结果汇报汇聚到该协调节器节点,构成最终的查询结果。也可以采用一定算法负载均衡地向各个节点Impalad守护进程提交查询。
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS8编译安装MySQL8.0.19
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS关闭SELinux安全模块
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作