前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >大数据工具篇之Hive与HBase整合完整教程

大数据工具篇之Hive与HBase整合完整教程

作者头像
数据饕餮
发布2019-01-14 11:15:39
6340
发布2019-01-14 11:15:39
举报
文章被收录于专栏:数据饕餮数据饕餮数据饕餮

一、引言

  最近的一次培训,用户特意提到Hadoop环境下HDFS中存储的文件如何才能导入到HBase,关于这部分基于HBase Java API的写入方式,之前曾经有过技术文章共享,本文就不再说明。本文基于Hive执行HDFS批量向HBase导入数据,讲解Hive与HBase的整合问题。这方面的文章已经很多,但是由于版本差异,可操作性不大,本文采用的版本均基于以下版本说明中的版本。

二、版本说明

序号

软件

版本

1

Hive

0.10.0

2

HBase

0.94.0

3

Hadoop

1.0.1

三、配置指南

3.1 创建配置文件

  cp conf/hive-default.xml.template hive-default.xml

  cp conf/hive-default.xml.template hive-site.xml

  3.2 修改配置文件

  基于hive-default.xml.template进行拷贝复制的hive-site.xml文件有问题,主要集中在<description></description>标签不配对的情况,需要根据错误提示进行修改,修改完成后的配置文件如下所示:  

View Code

   3.3 新增配置属性-hive.aux.jars.path  

1 <property> 
2     <name>hive.aux.jars.path</name>  
3     <value>file:///home/hadoop/source/hive/lib/hive-hbase-handler-0.10.0.jar,file:///home/hadoop/source/hive/lib/hbase-0.94.0.jar,file:///home/hadoop/source/hive/lib/zookeeper-3.4.3.jar</value> 
4 </property>

  3.4 拷贝Jar包到Hive/lib目录

  hbase-0.94.0.jar,zookeeper-3.4.3.jar

四、测试脚本-创建HBase能够识别的数据表

1 CREATE TABLE hbase_table_1(key int, value string)   
2 STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'  
3 WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf1:val")  
4 TBLPROPERTIES ("hbase.table.name" = "xyz");

五、异常解决

  5.1 错误提示

java.lang.NoClassDefFoundError: com/google/protobuf/Message
at org.apache.hadoop.hbase.io.HbaseObjectWritable.(HbaseObjectWritable.java
…

   5.2 解决方案  

  将$HBASE_HOME/lib/protobuf-java-2.4.0a.jar 拷贝到 $HIVE_HOME/lib/.

六、运行效果  

[hadoop@hadoop1 lib]$ hive -hiveconf hbase.zookeeper.quorum=hadoop1
WARNING: org.apache.hadoop.metrics.jvm.EventCounter is deprecated. Please use org.apache.hadoop.log.metrics.EventCounter in all the log4j.properties files.
Logging initialized using configuration in jar:file:/home/hadoop/source/hive/lib/hive-common-0.10.0.jar!/hive-log4j.properties
Hive history file=/tmp/hadoop/hive_job_log_hadoop_201401012315_758621762.txt
hive> CREATE TABLE hbase_table_1(key int, value string)   
    > STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'  
    > WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf1:val")  
    > TBLPROPERTIES ("hbase.table.name" = "xyz"); 
OK
Time taken: 23.246 seconds
hive> show tables;
OK
hbase_table_1
Time taken: 1.346 seconds
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2014年01月02日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档