hbase hive結合使用

2021-08-27 22:48:15 字數 3846 閱讀 7063

1 hbase到hive的使用:

相當於從hive上建立乙個外表,快捷引用到hbase表,這麼做能利用上hive的sql查詢能力,方便查詢hbase資料。

a) hbase準備表和資料:

create "test","base","cf","data"

put "test","key1","base:name","basename1"

put "test","key2","base:name","basename2"

put "test","key3","base:name","basename3"

put "test","key1","base:age","baseage1"

put "test","key2","base:age","baseage2"

put "test","key3","base:age","baseage3"

put "test","key1","data:name","dataname1"

put "test","key2","data:name","dataname2"

put "test","key3","data:name","dataname3"

put "test","key1","data:age","dataage1"

put "test","key2","data:age","dataage2"

put "test","key3","data:age","dataage3"

put "test","key1","cf:name","cfname1"

put "test","key2","cf:name","cfname2"

put "test","key3","cf:name","cfname3"

put "test","key1","cf:age","cfage1"

put "test","key2","cf:age","cfage2"

put "test","key3","cf:age","cfage3"

準備的表邏輯結構:

b) 建立hbase對映的hive表:

語法如下:

create external table  hbase_hive_1(key string, value string)   指定hive表和列

stored by 'org.apache.hadoop.hive.hbase.hbasestoragehandler' with serdeproperties 指定hive到hbase應用的類

tblproperties("hbase.table.name"="f_stu") 指定hbase的表

這就是hive的外表,快捷鏈結,hive和hbase對映涉及到的hive/lib/hive-hbase-handler-0.14.0.jar這個包

hbase-hive僅僅是乙個對映,如果hbase資料變更,那麼hive這個對映的資料也會變更, 這個做過測試。

這樣,就能依靠hbase來 新增/修改單條記錄, 然後利用hive這個外表來實現hbase資料統計(完美結合)

對上述hbase表增加hive外表寫法:

create external table  hbase_hive_3(key string, basename string, baseage string, dataname string, dataage string)     

stored by 'org.apache.hadoop.hive.hbase.hbasestoragehandler' with serdeproperties

tblproperties("hbase.table.name"="test")

hive查詢結果:

hive (default)> select * from hbase_hive_3 ;       

okhbase_hive_3.key hbase_hive_3.basename hbase_hive_3.baseage hbase_hive_3.dataname hbase_hive_3.dataage

key1 basename111 baseage1 dataname1 dataage1

key2 basename2 baseage2 dataname2 dataage2

key3 basename3 baseage3 dataname3 dataage3

2 hbase到hive的使用:a)  stu資料; 以\t間隔

1	zhangsan

2 lisi

3 wangwu

b) hive 準備原表資料:

hive>create table stu(id string,name string) row format delimited fields terminated by '\t';

hive>load data local inpath '/opt/stu' into table stu;

c) hbase 建立空表,用於裝載hive原表資料:

hbase>create 'stu', 'base'
d) hive建立hbase目標表的對映表:

hive>create external table stu_hbase(key string, name string) 

stored by 'org.apache.hadoop.hive.hbase.hbasestoragehandler'

tblproperties ("hbase.table.name" = "stu");

e) 將hive原表資料拷貝乙份到 hive-hbase對映表:

hive>insert overwrite table stu_hbase select * from stu;   此時關聯hbase的表hbase_table就有資料了。
f) 檢測hbase 表資料:

hbase(main):009:0> scan 'stu'

row column+cell

1 column=base:name, timestamp=1456725485282, value=zhangsan

2 column=base:name, timestamp=1456725485282, value=lisi

3 column=base:name, timestamp=1456725485282, value=wangwu

此時stu裡面有資料了。

感覺所謂的hive到hbase,還是在hive中建立了乙個hbase的外表,只不過此時hbase表沒有資料,然後將hive中建立的這個habse外表資料裝載hive原來表的資料而已。

3 總結:

目前,在工作中,只遇到過 以hbase表為基礎,建立hive外表關聯的場景,目的是給資料庫的人員查詢使用。

hbase hive應用場景

一.hive應用場景 本文主要講述使用 hive 的實踐,業務不是關鍵,簡要介紹業務場景,本次的任務是對搜尋日誌資料進行統計分析。集團搜尋剛上線不久,日誌量並不大 這些日誌分布在 5 台前端機,按小時儲存,並以小時為週期定時將上一小時產生的資料同步到日誌分析機,統計資料要求按小時更新。這些統計項,被...

Vim Markdown 結合使用

vim 編輯文件,通過瀏覽器實時檢視 markdown 文件。使用示例 鏈結 或者git clone vim bundle vundle.vim 配置 vimrc set nocompatible filetype off set rtp vim bundle vundle.vim vundle 安...

for結合range使用

range表示乙個資料範圍,也是屬於容器型別 range 整型資料 結束資料 引數表示結束資料,結束資料是不包含的,開始資料不指定預設是0 使用for結合range使用,迴圈列印三次人生苦短,我用python for value in range 3 range 3 0,2 print 顯示資料範圍...