美文网首页
Impala入门(定位 架构)

Impala入门(定位 架构)

作者: gregocean | 来源:发表于2019-08-03 16:45 被阅读0次

    参考资料

    基于Impala平台打造交互查询系统(选型)
    Impala查询优化
    大数据CDH之查询优化
    Impala内存优化
    基础语法

    产品定位

    定位.png

    实现语言:主要是C++
    性能: 略优于Presto
    架构:MPP架构

    • Impala整个执行节点都是无状态的,因此down掉一个节点,再启动没有问题。
    • Impala兼容hive存储
    • 还有一些点如Apache顶级项目、成熟社区、多种数据源格式兼容、高效的查询性能都是我们考虑特有的选型因素。

    架构原理

    执行过程.png
    • 兼容多种数据源:metastore直接对接各种DB
    • 利用catalogd提供元数据服务。可以直接连DB也可以通过catalogd,一般是利用hive里的metastore获取数据。
    • Impala高效的原因是其将原始数据缓存下来,catalogd启动会浏览缓存获取数据。
    • 它有一个statestored服务,是一个发布订阅服务,所有状态以及轮转都是在statestored服务中进行。左边是impala的执行节点,所有查询都是发往这些节点,节点执行后会下发到所有相关节点上去
    • 整个impala是无状态的,所有的连接者都像是一个协调者。

    角色进程

    1. Impala Deamon ps -ef|grep impalad
      该进程运行于集群每个节点的守护进程,是Impala的核心组件,每个节点该进程的名称为 impalad 。
      • 负责读取数据文件;接受来自impala-shell、Hue / JDBC/ODBC的查询请求,与其他节点并行分布式工作,
      • 并将本节点的查询结果返回给中心协调者节点(建议使用JDBC/ODBC接口以round-robin的方式将每个查询提交的不同节点 impalad上)。
    2. Impala Statestore ps -ef | grep statestored
      • Statestore 搜集集群中 impalad 进程节点的健康状况,并不断的将健康状况结果转发给所有的 impalad 进程节点.
      • 一个 impala 集群只需要一个 statestore 进程节点。
      • Statestore的目的:在集群故障时对 impalad进程节点同步信息,
    3. Impala Catalog
      当 Impalad 集群中执行SQL 语句会引起元数据变化时,catalog服务负责将这些变化推送到其他 impalad进程节点上。

    语法区别

    • 搜集信息
        hive> analyze table; 
        impala> compute stats;  
    

    更多见
    https://www.jianshu.com/p/3d2c9989a682

    缺点

    • UDF,不支持UPDATE/DELTE操作,不支持同一SELECT中多个DISTINCT

    相关文章

      网友评论

          本文标题:Impala入门(定位 架构)

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