交互式查询工具 Imapala
第1部分 Impala 概念
1.1 Impala 是什么
Impala是Cloudera提供的一款开源的针对HDFS和HBASE中的PB级别数据进行交互式实时查询(Impala速度快),Impala是参照谷歌的新三篇论文当中的Dremel实现而来,其中旧三篇论文分别是(BigTable,GFS,MapReduce)分别对应我们即将学的HBase和已经学过的HDFS以及MapReduce。
Impala最大卖点和最大特点就是快速,Impala中文翻译是高角羚羊。
1.2 Impala 优缺点
Impala抛弃了MapReduce使用了类似于传统的MPP数据库技术,大大提高了查询的速度
MPP (Massively Parallel Processing),就是大规模并行处理,在MPP集群中,每个节点资源都是独立享有也就是有独立的磁盘和内存,每个节点通过网络互相连接,彼此协同计算,作为整体提供数据服务。
优点:
- 基于内存运算,不需要把中间结果写入磁盘,省掉了大量的I/O开销
- 无需转换为 MapReduce,直接访问存储在HDFS,HBase中的数据进行作业调度,速度快
- 使用了支持Data locality的I/O调度机制,尽可能地将数据和计算分配在同一台机器上进行,减少了网络开销
- 支持各种文件格式,如TEXTFILE 、SEQUENCEFILE、RCFile、Parquet
- 可以访问Hive的metastore,对Hive数据直接做数据分析
缺点:
- 对内存的依赖大,且完全依赖于Hive
- 实践中,分区超过1万,性能严重下降
- 只能读取文本文件,而不能直接读取自定义二进制文件
- 每当新的记录/文件被添加到HDFS中的数据目录时,该表需要被刷新
Impala 和 Hive 对比