您好,登錄后才能下訂單哦!
Hive中怎么通過外部表操作Hbase數(shù)據(jù),很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
概述:
HBase:
查詢效率比較高,常為實時業(yè)務(wù)提供服務(wù),但是其查詢方式比較單一,只能通過row方式get單條數(shù)據(jù),或者通過scan加過濾器的方式掃描數(shù)據(jù)表獲取數(shù)據(jù)。
Hive:
hive用來存儲結(jié)構(gòu)化數(shù)據(jù),常用來搭建數(shù)據(jù)倉庫作為離線分析的數(shù)據(jù)存儲,支持HQL操作,但是對于復雜HQL都會轉(zhuǎn)化成mapreduce任務(wù),執(zhí)行比較慢。
有時候我們數(shù)據(jù)存在HBase中,但是需要通過sql語句來操作hbase表數(shù)據(jù),我們一般使用Hive外部表操作HBase數(shù)據(jù)。
大體步驟如下:
1.拷貝依賴包
將Hive操作HBase依賴的幾個包拷貝到Hive安裝目錄下的lib下(每個hive節(jié)點都要執(zhí)行拷貝):
/usr/lib/hive/lib/zookeeper.jar;
/usr/lib/hive/lib/hbase.jar;
/usr/lib/hive/lib/hive-hbase-handler-X.X.X.jar
/usr/lib/hive/lib/guava-11.0.2.jar;
2.HBase操作
登錄hbase shell控制臺,新建hbase表ljs:student(ljs是命名空間,student是表名)
執(zhí)行命令:
create_namespace 'ljs'
create 'ljs:student','info'
查看表結(jié)構(gòu):
!desc 'ljs:student'
向HBase表插入數(shù)據(jù):
put 'ljs:student','1001','info:name','ljs1001'
put 'ljs:student','1001','info:age','21'
put 'ljs:student','1001','info:score','89'
put 'ljs:student','2001','info:name','ljs1002'
put 'ljs:student','2001','info:age','24'
put 'ljs:student','2001','info:score','78'
查看表數(shù)據(jù):
3.Hive操作
執(zhí)行/usr/hdp/2.6.3.0-235/hive/bin/hive登錄到hive控制臺
新建hive數(shù)據(jù)表:
create external table hive_student(user_no string,user_name string,user_age string,user_score string) stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' with serdeproperties ("hbase.columns.mapping" = ":key,info:name,info:age,info:score") tblproperties("hbase.table.name" = "ljs:student");
查詢hive表,可查看hbase映射表中對應的數(shù)據(jù):
至此Hive操作HBase表數(shù)據(jù)完成。
注意:
1.hive中建hbase映射表時,建表語句中關(guān)鍵字“hbase.columns.mapping”后面的對應映射字段要與HBase表字段大小寫一致。否則可能映射失敗。
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。