一、 Cloudera Impala简介
Cloudera Impala 可以直接为存储在HDFS或HBase中的Hadoop数据提供快速,交互式的SQL查询。除了使用相同的存储平台外, Impala和Apache Hive一样也使用了相同的元数据,SQL语法(Hive SQL),ODBC驱动和用户接口(Hue Beeswax),这就很方便的为用户提供了一个相似并且统一的平台来进行批量或实时查询。
Cloudera Impala 是用来进行大数据查询的补充工具。 Impala 并没有取代像Hive这样基于MapReduce的分布式处理框架。Hive和其它基于MapReduce的计算框架非常适合长时间运行的批处理作业,例如那些涉及到批量 Extract、Transform、Load ,即需要进行ETL作业。
二、 Impala的优点
Impala 提供了:
     数据科学家或数据分析师已经熟知的SQL接口
     能够在Apache Hadoop 的大数据中进行交互式数据查询
   Single system for big data processing and analytics so customers can avoid costly modeling and ETL just for analytics 
三、在CDH下Cloudera Impala如何工作
下图显示了在Cloudera环境中,Impala的定位。
Cloudera <wbr>Impala
1.Impala 由以下几部分组成:

Impala State Store :State Store标定了在你的环境中关于impalad实例运行的信息。 此信息用于查找数据,以便于分布式资源对查询的 响应。 

 impalad :impalad进程运行在datanodes上,并且响应来自Impala shell的命令,它是Impala的服务端。impalad接受来自数据连接层和最优化执行任务调度的请求。impalad会间歇性的更新Impala State Store的名字和地址 

 Impala shell :Impala shell是Impala的客户端接口,用来运行查询命令用来完成管理任务,例如连接Impala的服务端impalad。通过ODBC或JDBC提供了一个标准化的查询接口来完成查询的接收和传递。 

 2.利用Impala进行查询步骤如下: 

 (1)用户通过 Hue Beeswax,the Impala shell, 或者ODBC 这样的客户端接口来提交查询请求 

 (2)Impala 的分布式查询引擎通过集群来创建和分发查询任务 

 (3)每个节点直接读取本地的HDFS或HBase中的数据来完成部分分布式查询任务,以提升查询性能。  

 (4)impalad将结果返回给客户端。 

 四、 Impala的主要特点 

  Impala提供以下支持: 

       常见的 Hive标准查询语言 (HiveQL) ,包括select, joins, and aggregate 功能 

       HDFS和HBase的存储格式 

            HDFS文件格式:TextFile, SequenceFile 

            压缩编码:Snappy, GZIP, BZIP   

       常见的Hive接口: 

                ODBC driver 

            Hue Beeswax 

            Impala命令行接口 

            Kerberos authentication