安装与使用Cloudera Impala
Cloudera Impala提供快速的、交互式的SQL查询方式,直接基于Apache Hadoop存储在HDFS或HBase中的数据进行查询。除了使用与Apache Hive相同的统一存储平台外,Impala也使用了与Hive相同的元数据、SQL语法(Hive SQL)、ODBC驱动和用户接口(Cloudera Impala查询UI使用Hue)。这样就提供了一个用于实时或批量的查询的熟悉的、统一的平台。
Cloudera Impala是一个查询大数据的工具。Impala不会取代例如hive这样基于MapReduce的批处理框架。Hive和其他的基于MapReduce的批处理框架最适合用于长时间运行的批处理作业,如执行批量的抽取、转换、载入类的作业。
Impala 优点
Impala提供了
- 数据科学家、分析人员熟悉的SQL接口
- 交互式查询Apache Hadoop中的大数据
- 可同时进行大数据处理、分析的单一系统,用户可以避免为了分析进行昂贵的建模、ETL操作
Cloudera Impala与CDH如何协同工作
下图显示了在cloudera环境中Impala的定位
Impala由以下组件组成:
- 客户端 - 包括Hue、ODBC客户端、JDBC客户端、可与Impala交互的Impala Shell。这些接口通常用于执行查询或完成管理任务,例如连接到Impala
- Hive Metastore - 存储可用于Impala数据的信息。例如,Impala通过metastore了解哪些数据库可用以及这些数据库的结构。当你使用Impala SQL语句,执行创建、删除修改schema对象、加载数据到表中、以及执行其他类似操作时,相关元数据的变化,通过Impala 1.2引入的单独的catalog服务,自动广播到所有Impala节点。
- Cloudera Impala - 本程序运行于数据节点,用于协调和执行查询。每一个Impala的实例可以获取、解析以及协调Impala客户端传来的查询。查询是被分布到各Impala节点间,这些节点作为workers,并行执行查询片段。
- HBase and HDFS - 所查询数据的存储位置
Impala执行查询的处理过程如下:
- 用户程序通过ODBC或JDBC发送SQL给Impala,其中Impala提供了标准的查询接口。用户程序可能连接到集群中任意impalad进程,这一impalad进程作为这一查询的协调器。
- Impala解析、分析这一查询,确定什么任务由集群中哪一impalad实例执行,执行计划最优。
- Impalad实例会访问本地HDFS和HBase服务,获取数据。
- 每一个impalad都返回数据给协调器impalad,并由它发送结果给客户端。
Impala主要特性
Impala提供以下支持:
- Hive查询语言(HiveQL)中最通用的SQL-92功能,包括SELECT、连接(join)、以及聚合函数
- HDFS and HBase 存储,包括:
- HDFS文件格式:Text文件, SequenceFile, RCFile, Avro文件以及Parquet。
- 压缩编解码: Snappy, GZIP, Deflate, BZIP。
- 通用Hive接口,包括:
- JDBC驱动
- ODBC驱动
- Hue Beeswax和新Cloudera Impala Query UI
- Impala命令行接口
- Kerberos认证