Impala概述

题记

本文内容资料来源于拉钩教育大数据高薪训练营

impala的概述

Impala是Cloudera提供的⼀款开源的针对HDFS和HBASE中的PB级别数据进⾏交互式实时查询(Impala速度快),Impala是参照⾕歌的新三篇论⽂当中的Dremel实现⽽来,其中旧三篇论⽂分别是
(BigTable,GFS,MapReduce)分别对应我们即将学的HBase和已经学过的HDFS以及MapReduce。
Impala最⼤卖点和最⼤特点就是快速,Impala中⽂翻译是⾼⻆羚⽺。

Impala的优缺点

  • 优点
    • Impala没有和hive一样采用mapReduce作为计算引擎,而是采用了MPP数据库技术(Massively Parallel Processing)即大规模并行处理,大大提高了查询速度。
    • 使⽤LLVM(C++编写的编译器)产⽣运⾏代码,针对特定查询⽣成特定代码。
    • 优秀的IO调度,Impala⽀持直接数据块读取和本地代码计算。
    • 选择适合的数据存储格式可以得到最好的性能(Impala⽀持多种存储格式)。
    • 尽可能使⽤内存,中间结果不写磁盘,及时通过⽹络以stream的⽅式传递。
  • 缺点
    • Impala属于MPP架构,只能做到百节点级,⼀般并发查询个数达到20左右时,整个系统的吞吐已经达到满负荷状态,在扩容节点也提升不了吞吐量,处理数据量在PB级别最佳。
    • 资源不能通过YARN统⼀资源管理调度,所以Hadoop集群⽆法实现Impala、Spark、Hive等组件的动态资源共享

Impala与Hive对比分析

查询过程

  • Hive:Hive存在冷启动的问题,即一个task会启动对应的MapReduce,会存在多个MapReduce的启动和关闭的过程。
  • Impala:Impala运行后台守护线程,不存在冷启动的情况。
    中间结果
  • Hive:Hive通过MR计算引擎对数据进行分析,在其中存在缓冲区数据溢写到磁盘的过程,且MR在shuffle过程中默认存在Sort过程,因此会有较大的磁盘开销。
  • Impala:在执行程序之间使用流的方式传输中间结果,避免了数据写磁盘的过程,尽可能使用内存。
    交互查询
  • Hive:适合批处理,不适合实时交互查询。
  • Impala:非常适合交互式查询,当数据量限制在PB级
    计算引擎
  • Hive:是基于批处理的Hadoop MapReduce
  • Impala:更像是MPP数据库
    容错
  • Hive:Hive是容错的(通过MR&Yarn实现)
  • Impala:Impala没有容错,由于良好的查询性能,Impala遇到错误会重新执⾏⼀次查询
    查询速度
    Impala:Impala⽐Hive快3-90倍

适⽤场景

  • Hive: 复杂的批处理查询任务,数据转换任务,对实时性要求不⾼同时数据量⼜很⼤的场景。
  • Impala:实时数据分析,与Hive配合使⽤,对Hive的结果数据集进⾏实时分。impala不能完全取代hive,impala可以直接处理hive表中的数据。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。