一、爲什麼要整合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