知识库 : Impala Hbase 整合使用说明

Edit Document

Impala与 Hbase整合使用说明              

目录

Impala Hbase 整合使用说明

一、 UDH 环境 集成 配置

二、 Hive 映射已存在的 Hbase

三、使用 impala 验证映射的 Hbase

四、常见问题汇总

HBase 是一个基于列的 NoSQL 数据库,它可以实现的数据的灵活存储。它本身是一个大表,在一些应用中,通过设计 RowKey ,可以实现对海量数据的快速存储和访问。但是,对于复杂的查询统计类需求,如果直接基于 HBase API 来实现,性能非常差,或者,可以通过实现 MapReduce 程序来进行查询分析,这也继承了 MapReduce 所具备的延迟性。

实现 Hive HBase 集成,我们知道, impala hive 共享相同的 metstore 数据库, Hive 表的列的映射信息也适用 impala ,所以二者集成,可以使用我们熟悉的 SQL, 像操作传统关系型数据库一样,很容易给出复杂查询、统计分析的 SQL 设计,并通过 Impala 查询统计分析,比原生 MapReduce 以及 Hive 的执行速度快很多

 

UDH 环境 集成 配置

1. 首先要确保 /usr /lib /hive/lib   HBase jar 包的版本要和实际环境中 HBase 的版本一致,需要用 /usr/lib/hbase /lib/ 目录下得 jar 做软连接,如下图:

 

             

2. UDH hive 配置界面以下属性:

 

         hive.aux.jars.path

 

 

         hbase.zookeeper.quoru m

 

         zookeeper.znode.parent

 

 

Hive 映射已存在的 Hbase

H ive 中的外部表可以映射到已存在的 Hbase 表,如映射到百度爬虫数据

 

 

上面 DDL 语句中,在 WITH SERDEPROPERTIES 选项中指定 Hive 外部表字段到 HBase 列的映射,其中 “:key” 对应于 HBase 中的 RowKey ,名称为 rkey ,其余的就是列簇 info 中的列名。最后在 TBLPROPERTIES 中指定了 HBase 中要进行映射的表名。

 

使用 impala 验证映射的 Hbase

Impala 共享 Hive Metastore ,这时需要同步元数据,可以通过在 Hue impala 查询界面 执行同步命令:

INVALIDATE METADATA;

然后,就可以查看到映射 HBase 中表的结构:

        

 

 

        

 

通过上面三步,我们就完成了 Hive HBase 集成 配置

 

常见问题汇总

 

  1. hive 中创建映射表报如下错误,原因 hive 没有指定 hbase 的连接地址

 

              解决:在 hive-site.xml 中添加 Hbase 的连接方法,需要添加两个属性分别是 hbase.zookeeper.quorum zookeeper.znode.parent 对应如下图

 

 

  1. hive 中执行 select count(*) from scores 语句查询时出现如下错误

 

 

              解决: hive-site.xml hive.aux.jars.path 属性里缺少 htrace-core.jar 库路径

             

  1. I mpala 执行查询出现 AnalysisException: Failed to load metadata for table 错误,检查 impala 配置主目录下( /etc/impala/conf )是否包含 hbase-site.xml 文件。

 

Attachments:

Impala Hbase 整合使用说明.docx (application/vnd.openxmlformats-officedocument.wordprocessingml.document)
Impala Hbase 整合使用说明.docx (application/vnd.openxmlformats-officedocument.wordprocessingml.document)
Impala Hbase 整合使用说明.docx (application/vnd.openxmlformats-officedocument.wordprocessingml.document)