Hive與Hbase整合及hive-hbase-handler的jar包重新編譯

一、爲什麼要整合hive和hbase

二、整合後實現的目標

三、當hive和hbase版本都是1.幾時,需要重新編譯jar包hive-hbase-handler,操作步驟如下:

  • 1、下載hive源碼:(這個地址可方便快捷下載大數據平臺的各個組件
http://archive.apache.org/dist/hive/hive-1.2.1/

  • 2、解壓,進入Hive源碼,把hbase-handler模塊引入Eclipse項目中:

  • 3、創建Java Project:

  • 4、創建lib文件夾

  • 5、導入Hive源碼的hbase-handler模塊

  • 6、把Hive和HBase 安裝包lib目錄下的所有jar包,複製到java project的lib目錄下:

  • 7、把lib包下的所有jar包Build Path,添加到類路徑

將某個jar包從類路徑中刪除:

右鍵-----

  • 8、打包項目,開始重新編譯

  • 9、替換hive/lib目錄下的hive-hbase-handler-1.2.1.jar

四、建表測試:

hive中創建hbase中不存在的表:

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", "hbase.mapred.output.outputtable" = "xyz"); 

Hive去訪問Hbase中已經存在的表,創建外部表(CREATE EXTERNAL TABLE)

CREATE EXTERNAL TABLE hive_hbase_table_t_user (key string, name string, age int)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf_user_info:name,cf_user_info:age")
TBLPROPERTIES ("hbase.table.name" = "hbase_to_hive_t_user");

五、hbase與hive哪些版本兼容?

hive0.90與hbase0.92是兼容的,早期的hive版本與hbase0. 890.90兼容; hive1.x與hbase0.98.x或則更低版本是兼容的。 hive2.x與hbase1.x及比hbase1.x更高版本兼容;

如果想hbase1.x與hive1.x整合,需要編譯hive-hbase-handler代碼。

參考文章:

https://cloud.tencent.com/developer/information/hive%E4%B8%8Ehbase%E6%95%B4%E5%90%88

https://cwiki.apache.org/confluence/display/Hive/HBaseIntegration

發佈了73 篇原創文章 · 獲贊 83 · 訪問量 29萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章