Impala官网翻译01-介绍Apache Impala

介绍Apache Impala

Impala直接对存储在HDFS、HBase或亚马逊简单存储服务(S3)中的Apache Hadoop数据提供快速、交互式的SQL查询。除了使用相同的统一存储平台,Impala还使用与Apache Hive相同的元数据、SQL语法(Hive SQL)、ODBC驱动程序和用户界面(Hue中的Impala查询UI)。这为实时或面向批处理的查询提供了一个熟悉而统一的平台。

Impala是对可用于查询大数据的工具的补充。Impala并不能取代Hive等基于MapReduce构建的批处理框架。Hive和其他建立在MapReduce上的框架最适合于长期运行的批处理作业,例如涉及提取、转换和加载(ETL)类型作业的批处理。

注:Impala于2017年11月15日从Apache孵化器毕业。在文档中以前提到 "Cloudera Impala "的地方,现在官方名称为 "Apache Impala"。

Impala的优势

Impala提供了:

  • 数据科学家和分析师已经熟悉的SQL界面。
  • 能够在Apache Hadoop中查询大量数据("大数据")。
  • 在集群环境中进行分布式查询,方便扩展,并利用性价比高的商品硬件。
  • 能够在不同组件之间共享数据文件,无需复制或导出/导入步骤;例如,用Pig写,用Hive转换,用Impala查询。Impala可以从Hive表中读取和写入,实现了使用Impala对Hive生产的数据进行分析的简单数据交换。
  • 单一的系统进行大数据处理和分析,这样客户就可以避免为了分析而进行昂贵的建模和ETL。

Impala如何与Apache Hadoop合作

Impala解决方案由以下组件组成:

  • 客户端 -- -- 包括Hue、ODBC客户端、JDBC客户端和Impala Shell在内的实体都可以与Impala交互。这些接口通常用于发布查询或完成管理任务,如连接到Impala。
  • Hive Metastore - 存储有关 Impala 可用数据的信息。例如,元存储让Impala知道有哪些数据库可用,以及这些数据库的结构是什么。当您通过Impala SQL语句创建、删除和更改模式对象、将数据加载到表中等时,相关的元数据更改会由Impala 1.2中引入的专用目录服务自动广播到所有Impala节点。
  • Impala--这个运行在DataNodes上的进程,负责协调和执行查询。每个Impala实例都可以接收、规划和协调来自Impala客户端的查询。查询分布在Impala节点之间,然后这些节点作为worker,执行并行的查询片段。
  • HBase和HDFS--待查询数据的存储。

使用Impala执行的查询处理方式如下:

  1. 用户应用程序通过ODBC或JDBC向Impala发送SQL查询,ODBC或JDBC提供标准化的查询接口。用户应用程序可以连接到集群中的任何impalad。这个 impalad 成为查询的协调器。
  2. Impala对查询进行解析和分析,以确定整个集群中的impalad实例需要执行哪些任务。执行计划以达到最佳效率。
  3. HDFS和HBase等服务被本地impalad实例访问以提供数据。
  4. 每个impalad将数据返回给协调impalad,后者将这些结果发送给客户端。

Impala的主要特点

Impala提供了以下支持。

  • Hive查询语言(HiveQL)的大部分常见SQL-92功能,包括SELECT、join和聚合函数。
    •   HDFS、HBase和Amazon Simple Storage System(S3)存储,包括。
    •   HDFS文件格式: 定界文本文件、Parquet、Avro、SequenceFile和RCFile。
  • 压缩编解码器。Snappy、GZIP、Deflate、BZIP。
  • 常见的数据访问接口包括
    •   JDBC驱动。
    •   ODBC驱动。
    •   Hue Beeswax和Impala Query UI。
  • impala-shell命令行接口。
  • Kerberos认证。
原文地址:https://www.cnblogs.com/lukairui/p/14376761.html