Impala 是Cloudera公司主导开发的新型查询系统,它提供SQL语义,能查询存储在Hadoop的HDFS和HBase中的PB级大数据。已有的Hive系统虽然也提供了SQL语义,但由于Hive底层执行使用的是MapReduce引擎,仍然是一个批处理过程,难以满足查询的交互性。相比之下,Impala的最大特点也是最大卖点就是它的快速。----来源于百度百科

Impala核心能力

Impala是性能最高的SQL引擎(提供类似RDBMS的体验),它提供了访问存储在Hadoop分布式文件系统中的数据的最快方法。 Impala 可以实现快速查询。

二、技术特性

  • 基于内存进行计算(即计算过程中没有中间数据落盘),能够对 PB 级数据进行交互式实时查询、分析
  • 无需转换为 MR,直接读取 HDFS 及 Kudu 数据 ,从而大大降低了延迟。
  • Impala 没有 MapReduce批处理,而是通过使用与商用并行关系数据库中类似的分布式查询引擎(由 Query Planner、Query Coordinator 和Query Exec Engine 三部分组成)
  • 前端 java、后端 C++ 编写,使用 LLVM 框架统一编译运行(区别于 GCC)
  • 兼容 HiveSQL
  • 支持 Hive 基本的一些查询等,Hive 中的一些复杂结构是不支持的
  • 具有数据仓库的特性,可对 Hive 数据直接做数据分析
  • 三、功能特性

  • Impala支持内存中数据处理,它访问/分析存储在Hadoop数据节点上的数据,而无需数据移动。
  • 使用类SQL查询访问数据。
  • Impala为HDFS中的数据提供了更快的访问。
  • 可以将数据存储在Impala存储系统中,如Apache HBase和Amazon s3。
  • Impala支持各种文件格式,如LZO,序列文件,Avro,RCFile和Parquet。
  • 四、Impala 工作原理

    Impalad :
    Impala 核心组件,运行在各个数据节点上面, 守护进程 Impala daemon,它负责接收从 impala-shell、Hue、JDBC、ODBC 等接口发送的查询语句,解析 SQL 语句并执行查询任务,任务完成返回结果给到客户端。Impalad 内部是由 Query Planner、Query Coordinator 和 Query Executor 三部分组成:。

    State Store : 负责检查集群各个节点上 Impala daemon 的健康状态,同时不间断地将结果反馈给各个 Impala daemon。守护进程 :statestored,整个集群只运行一个进程。

    Catalogd : 负责元数据管理,可以从 Hive 元数据库中提取更新元数据给其他组件,也能将元数据变化通知给集群的各个节点,

    五、日常运维指令

    连接 Impala

    impala-shell  -i data -s xxx -d rawdata -k
    
    -d:指定数据库登录
    -i:指定 impalad 登录,这个一般在 元数据节点连接 impala 的时候,要指定
    -k:如果启用 kerberos,则需要指定
    -s:指定 kerberos 登录的账号,如果不指定,默认账号是 “impala” ,如果混部 kerberos 场景下,客户给我们的 principal 是 sa_cluster,那就要指定 -s 为 sa_cluster
    -q:直接执行 sql 语句,不用进入  impala-shell 环境
    -o:查询结果输出到指定文件
    复制代码
  • 🔥我说MySQL每张表最好不超过2000万数据,面试官让我回去等通知?
  • 【超详细】Zod 入门教程
  • 私信