美文网首页
Impala概述

Impala概述

作者: 一拳超疼 | 来源:发表于2020-07-24 10:01 被阅读0次

    题记

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

    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表中的数据。

    相关文章

      网友评论

          本文标题:Impala概述

          本文链接:https://www.haomeiwen.com/subject/bcadlktx.html