【简介】

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

【优点】

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

2、省掉了MapReduce作业启动的开销。MapReduce启动task的速度很慢(默认每个心跳间隔是3秒钟),Impala直接通过相应的服务进程来进行作业调度,速度快了很多。
Impala完全抛弃了MapReduce这个不太适合做SQL查询的范式,而是像Dremel一样借鉴了MPP并行数据库的思想另起炉灶,因此可做更多的查询优化,从而省掉不必要的shuffle、sort等开销。

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

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

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

【与spark的对比】

一、总体上
Shark扩展了Apache Hive,大大加快在内存和磁盘上的查询。

而Impala是企业级数据仓库系统, 可以很好地使用Hive/ HDFS,从架构层来说,类似于传统的并行数据库。这两个系统有着很多共同的目标,但也有很大差异。

二、与现有系统的兼容性
Shark直接建立在Apache/Hive代码库上,所以它自然支持几乎所有Hive特点。它支持现有的Hive SQL语言,Hive数据格式(SerDes),用户自定义函数(UDF),调用外部脚本查询。

因为Impala使用自定义的C++运行,它不支持Hive UDF。这两个系统将会与许多BI工具整合,这一直是Impala的主要目标。Shark正在被用于一些BI工具,如Tableau,不过这并没有被探索更多。

三、内存中的数据处理
Shark允许用户显式地加载在内存中的数据,以加快查询处理,其内存使用有效率的,压缩的面向列的格式。

Impala还没有提供在内存中的存储。

四、容错
Shark被设计为支持短期和长时间运行的查询。它可以从查询故障恢复(感谢底层Spark引擎)。

Impala目前是更侧重于短查询,不容错(如果节点发生故障,查询必须重新启动,对短查询来说这无疑是可以接受的)。

五、性能
做全面的比较太早了点。Shark和Impala都报告比Hive快10-100倍,但这都依赖具体情况和系统负载。两个项目也都在未来6个月内会做重要优化。以我们的经验来看,Sharkr当前版本,如果是内存的数据一般比Hive快100倍,如果是磁盘上的数据一般快5-10倍,这取决于查询(带关联连接的查询,能比Hive快很多)。

【推荐教程】

1、impala入门基础教程:http://www.aboutyun.com/thread-8629-1-1.html

2、解析Impala架构:https://sanwen8.cn/p/169uSyN.html

3、Impala:新一代开源大数据分析引擎:http://www.csdn.net/article/2013-12-04/2817707-Impala-Big-Data-Engine

[impala] impala 简介的更多相关文章

  1. 【原创】大数据基础之Impala(1)简介、安装、使用

    impala2.12 官方:http://impala.apache.org/ 一 简介 Apache Impala is the open source, native analytic datab ...

  2. Impala 架构探索-Impala 系统组成与使用调优

    要好好使用 Impala 就得好好梳理一下他得结构以及他存在得一些问题或者需要注意得地方.本系列博客主要想记录一下对 Impala 架构梳理以及使用上的 workaround. Impala 简介 首 ...

  3. 入门大数据---安装ClouderaManager,CDH和Impala,Hue,oozie等服务

    1.要求和支持的版本 (PS:我使用的环境,都用加粗标识了.) 1.1 支持的操作系统版本 操作系统 版本 RHEL/CentOS/OL with RHCK kernel 7.6, 7.5, 7.4, ...

  4. 初识 Cloudera Impala

    Impala是Cloudera公司主导开发的新型查询系统,它提供SQL语义,能查询存储在Hadoop的HDFS和HBase中的PB级大数据.已有的Hive系统尽管也提供了SQL语义,但因为Hive底层 ...

  5. 【原创】大数据基础之Impala(2)实现细节

    一 架构 Impala is a massively-parallel query execution engine, which runs on hundreds of machines in ex ...

  6. impala操作hase、hive

    impala中使用复杂类型(Hive):    如果Hive中创建的表带有复杂类型(array,struct,map),且储存格式(stored as textfile)为text或者默认,那么在im ...

  7. How-to: Do Statistical Analysis with Impala and R

    sklearn实战-乳腺癌细胞数据挖掘(博客主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId=1005269003&a ...

  8. 【impala学习之一】impala

    环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk8 CM5.4 一.ImpalaImpala是基于Hive的大数 ...

  9. <Parquet><Physical Properties><Best practice><With impala>

    Parquet Parquet is a columnar storage format for Hadoop. Parquet is designed to make the advantages ...

随机推荐

  1. ubuntu java 环境配置

    下载oracle java sudo add-apt-repository ppa:webupd8team/java -y sudo apt-get update sudo apt-get insta ...

  2. 深入理解Linux内核-页高速缓存

    页高速缓存:1.磁盘高速缓存的一种 2.一种对完整的数据页进行操作的磁盘高速缓存.3.将一页数据写到块设备的时候,内核首先检查对应的页是否已经在高速缓存中,不在就添加并填充数据.4.I\O数据的传送并 ...

  3. MySQL Workbench 的安全设置

    今日用MySQL Workbench进行数据库的管理更新时,执行一个更新的语句碰到以下错误提示: Error Code: 1175 You are using safe update mode and ...

  4. CSS中Zen Coding

    值别名 有几个常用的别名: p → % e → em x → ex 可以用这些别名来代替完整的单位: w100p → width: 100% m10p30e5x → margin: 10% 30em ...

  5. LeetCode: Palindrome Partitioning II 解题报告

    Palindrome Partitioning II Given a string s, partition s such that every substring of the partition ...

  6. Linux服务器CPU、内存、磁盘空间、负载情况查看python脚本

    [本文出自天外归云的博客园] 网上搜,东拼西凑,组装了一个可以查Linux服务器CPU使用率.内存使用率.磁盘空间占用率.负载情况的python脚本. 脚本内容如下: # -*- coding:utf ...

  7. C#学习笔记(32)——委托改变窗体颜色

    说明(2017-11-23 22:17:34): 1. 蒋坤的作业,点击窗体1里面的按钮,出现窗体2:点击窗体2里的按钮,窗体1改变背景色. 2. 做完窗体传值后,这个作业就很简单了. 代码: For ...

  8. C#学习笔记(24)——C#将PPT批量转为JPG(最简单的方法)

    说明(2017-8-1 11:15:46): 1. 哈哈,我就说微软肯定有自己的办法,把PPT转成图片. 2. 主要是要引入两个微软自己的程序集,vs里自带直接添加引用,注意一下版本,12.0是off ...

  9. 随手记Swift基础和Optional Type(问号?和感叹号!)

    距离Apple推出Swift已经有几天了,网上也时不时出现"急招Swift程序猿,要求有一天工作经验"的帖子. 看到Swift,除了苹果放的另外一门语言的链接(http://swi ...

  10. sed——linux下对文本当控制操作(替换,追加)

    sed——linux下对文本当控制操作(替换,追加) 2011-12-12 19:27:17 分类: LINUX Linux下sed命令 1. Sed简介 sed 是一种在线编辑器,它一次处理一行内容 ...