impala 订阅
Impala是Cloudera公司主导开发的新型查询系统,它提供SQL语义,能查询存储在Hadoop的HDFS和HBase中的PB级大数据。已有的Hive系统虽然也提供了SQL语义,但由于Hive底层执行使用的是MapReduce引擎,仍然是一个批处理过程,难以满足查询的交互性。相比之下,Impala的最大特点也是最大卖点就是它的快速。 [1] 展开全文
Impala是Cloudera公司主导开发的新型查询系统,它提供SQL语义,能查询存储在Hadoop的HDFS和HBase中的PB级大数据。已有的Hive系统虽然也提供了SQL语义,但由于Hive底层执行使用的是MapReduce引擎,仍然是一个批处理过程,难以满足查询的交互性。相比之下,Impala的最大特点也是最大卖点就是它的快速。 [1]
信息
软件授权
开源免费
特    点
快速
作    用
提供SQL语义,能查询存储在Hadoop的HDFS和HBase中的PB级大数据
释    义
一种新型查询系统
外文名
Impala
开发公司
Cloudera公司
Impala优点
收起全文
精华内容
参与话题
问答
  • Impala

    万次阅读 2017-12-01 10:24:22
    应用场景 在使用Hive的过程中,编写了HQL语句,发现HQL执行过程是非常慢的,...而impala也可以执行SQL,但是比Hive快很多,而Impala根本不用Hadoop的Mapreduce机制,直接调用HDFS的API获取文件,在内存中快速计算!

    应用场景

    在使用Hive的过程中,编写了HQL语句,发现HQL执行过程是非常慢的,因为hive采用的是把HQL转化成hadoop的MapReduce任务,然后编译,打包成jar包,分发到各个server上去执行,这个过程会很慢很慢!而impala也可以执行SQL,但是比Hive快很多,而Impala根本不用Hadoop的Mapreduce机制,直接调用HDFS的API获取文件,在内存中快速计算!
    但是Impala也并不是完全比Hive好。Impala的容错机制没有Hive好,而且没有Hive那么成熟。

    所以一般使用以下方法来决定使用哪个:
    如果是ETL任务使用Hive
    如果是实时的热查询则用Impala

    1. Impala介绍

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

    1.1 Impala的优点

    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调度机制,尽可能地将数据和计算分配在同一台机器上进行,减少了网络开销。

    1.2 Impala的功能

    1. Impala可以根据Apache许可证作为开源免费提供。
    2. Impala支持内存中数据处理,它访问/分析存储在Hadoop数据节点上的数据,而无需数据移动。
    3. 使用类SQL查询访问数据。
    4. Impala为HDFS中的数据提供了更快的访问。
    5. 可以将数据存储在Impala存储系统中,如Apache HBase和Amazon s3。
    6. Impala支持各种文件格式,如LZO,序列文件,Avro,RCFile和Parquet。

    2. Impala VS Phoenix

    现有hbase的查询工具有很多如:Hive,Tez,Impala,Shark/Spark,Phoenix等。

    phoenix,中文译为“凤凰”,很美的名字。Phoenix是由saleforce.com开源的一个项目,后又捐给了Apache基金会。它相当于一个Java中间件,提供jdbc连接,操作hbase数据表。
    但是在生产环境中,不可以用在OLTP中。在线事务处理的环境中,需要低延迟,而Phoenix在查询HBase时,虽然做了一些优化,但延迟还是不小。所以依然是用在OLAT中,再将结果返回存储下来。

    Phoenix的团队用了一句话概括Phoenix:“We put the SQL back in NoSQL” 意思是:我们把SQL又放回NoSQL去了!这边说的NoSQL专指HBase,意思是可以用SQL语句来查询Hbase,你可能会说:“Hive和Impala也可以啊!”。但是Hive和Impala还可以查询文本文件,Phoenix的特点就是,它只能查Hbase,别的类型都不支持!但是也因为这种专一的态度,让Phoenix在Hbase上查询的性能超过了Hive和Impala!

    所以Impala可以针对文本文件,impala可以操作hdfs,hive,hbase等,而Phoenix只针对Hbase。

    展开全文

空空如也

1 2 3 4 5 ... 20
收藏数 6,057
精华内容 2,422
关键字:

impala