zoukankan      html  css  js  c++  java
  • Impala简介

     

    Impala简介

    一:什么是Impala

            Impala是用于处理存储在Hadoop集群中的大量数据的SQL查询引擎。它是一个用C ++Java编写的开源软件。换句话说,Impala是性能最高的SQL引擎,它提供了访问存储在Hadoop分布式文件系统中的数据的最快方法。

    二:Impala的特点是什么?

        1. Impala支持内存中数据处理,即,它访问/分析存储在Hadoop数据节点上的数据,而无需数据移动。

    2.与其他SQL引擎相比,ImpalaHDFS中的数据提供了更快的访问。

    3.使用Impala,可以访问不同的数据存储,如HDFSApache HBase

    4.Impala支持各种文件格式,如LZO,序列文件,AvroRCFileParquet

    5.Impala使用Apache Hive的元数据,ODBC驱动程序和SQL语法。

    6.C++编写,LLVM(构架编译器)统一编译运行用于优化以任意程序语言编写的程序的编译时间、链接时间、运行时间以及空闲时间,对开发者保持开放,并兼容已有脚本

    三:Impala的核心组件:

    1Impala Statestore

    负责收集分布在集群中各个impalad进程的资源信息、各节点健康状况,同步节点信息,而且还负责query的调度分配

    2Impala Catalog

    分发表的元数据信息到各个impalad

    接收来自statestore的所有请求

    3Impala Daemon

    接收clienthuejdbc或者odbc请求、Query执行并返回给中心协调节点

    子节点上的守护进程,负责向statestore保持通信,汇报工作

     

    四:Impala的组成部分?

        Impala由以下的组件组成:

    1、Clients – HueODBC clientsJDBC clients、和Impala Shell都可以与Impala进行交互,这些接口都可以用在Impala的数据查询以及对Impala的管理。

    2、Hive Metastore元数据) 存储Impala可访问数据的元数据。例如,这些元数据可以让Impala知道哪些数据库以及数据库的结构是可以访问的,当你创建、删除、修改数据库对象或者加载数据到数据表里面,相关的元数据变化会自动通过广播的形式通知所有的Impala节点,这个通知过程由catalog service完成。

    3、Cloudera Impala – Impala的进程运行在各个数据节点(Datanode)上面。每一个Impala的实例都可以从Impala client端接收查询,进而产生执行计划、协调执行任务。数据查询分布在各个Impala节点上,这些节点作为worker(工作者),并行执行查询。

    4、HBaseHDFS – 存储用于查询的数据。

    五:Impala执行查询的具体过程:

    1、客户端通过ODBCJDBC、或者Impala shellImpala集群中的任意节点发送SQL语句,这个节点的impalad实例作为这个查询的协调器(coordinator)。

    2、Impala解析和分析这个查询语句来决定集群中的哪个impalad实例来执行某个任务。

         3、HDFSHBase给本地的impalad实例提供数据访问。

         4、各个impalad向协调器impalad返回数据,然后由协调器impaladclient发送结果集。

     

    Impala的不足之处:

    1、不支持用户定义函数UDF

    2不支持text域的全文搜索。
    3
    、不支持Transforms函数。

    4不支持查询期的容错。
    5
    、对内存要求高。

    Impalahive的对比

    图:ImpalaHive的对比

     

    HiveImpala的不同点总结如下:

     

    Hive适合于长时间的批处理查询分析,而Impala适合于实时交互式SQL查询。

    Hive依赖于MapReduce计算框架,Impala把执行计划表现为一棵完整的执行计划树,直接分发执行计划到各个Impalad执行查询。

    Hive在执行过程中,如果内存放不下所有数据,则会使用外存,以保证查询能顺序执行完成,而Impala在遇到内存放不下数据时,不会利用外存,所以Impala目前处理查询时会受到一定的限制。

    HiveImpala的相同点总结如下:

     

    HiveImpala使用相同的存储数据池,都支持把数据存储于HDFSHBase中。

    HiveImpala使用相同的元数据。

    HiveImpala中对SQL的解释处理比较相似,都是通过词法分析生成执行计划。

    总结:

     

    Impala的目的不在于替换现有的MapReduce工具。

    HiveImpala配合使用效果最佳。

    可以先使用Hive进行数据转换处理,之后再使用ImpalaHive处理后的结果数据集上进行快速的数据分析

     

  • 相关阅读:
    hdu 1028 Ignatius and the Princess III (n的划分)
    CodeForces
    poj 3254 Corn Fields (状压DP入门)
    HYSBZ 1040 骑士 (基环外向树DP)
    PAT 1071 Speech Patterns (25)
    PAT 1077 Kuchiguse (20)
    PAT 1043 Is It a Binary Search Tree (25)
    PAT 1053 Path of Equal Weight (30)
    c++ 常用标准库
    常见数学问题
  • 原文地址:https://www.cnblogs.com/ypsy/p/9989461.html
Copyright © 2011-2022 走看看