|
一、引言 最近的一次培訓(xùn),用戶特意提到Hadoop環(huán)境下HDFS中存儲的文件如何才能導(dǎo)入到HBase,關(guān)于這部分基于HBase Java API的寫入方式,之前曾經(jīng)有過技術(shù)文章共享,本文就不再說明。本文基于Hive執(zhí)行HDFS批量向HBase導(dǎo)入數(shù)據(jù),講解Hive與HBase的整合問題。這方面的文章已經(jīng)很多,但是由于版本差異,可操作性不大,本文采用的版本均基于以下版本說明中的版本。 二、版本說明
三、配置指南 3.1 創(chuàng)建配置文件 cp conf/hive-default.xml.template hive-default.xml cp conf/hive-default.xml.template hive-site.xml 3.2 修改配置文件 基于hive-default.xml.template進(jìn)行拷貝復(fù)制的hive-site.xml文件有問題,主要集中在<description></description>標(biāo)簽不配對的情況,需要根據(jù)錯誤提示進(jìn)行修改,修改完成后的配置文件如下所示:
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 四、測試腳本-創(chuàng)建HBase能夠識別的數(shù)據(jù)表 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/. 六、運(yùn)行效果 [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
|
|
|