hbase整合hive

Hbase是被設(shè)計(jì)用來做K-V查詢,但有時候也會遇到基于Hbase表的復(fù)雜統(tǒng)計(jì),寫MR很不方便。hive考慮到這一點(diǎn),提供了操作Hbase表的接口。hive讀取Hbase表,通過MR最終使用HiveHbaseTableInputFormat來讀取數(shù)據(jù),在getSplit()方法中對Hbase進(jìn)行切分,切分原則是根據(jù)該表對應(yīng)的Hregion,將每個region作為一個InputSplit,即該表有多少個region就有多少個map task;

每個region的大小由參數(shù)hbase.hregion.max.filesize控制,默認(rèn)10G,這樣會使得每個map task處理的數(shù)據(jù)文件太大,map task性能自然很差;

為Hregion表預(yù)分配region,使得每個region的大小在合理的范圍;

實(shí)際操作

--在hive中新建一個外部表,

create external table h_table(id string, col1 string, age int,col2 string)

STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'

--映射關(guān)系,id=:key;col1=f1:col1;age=f1:age;col2=f1:col2

WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,f1:col1,f1:age,f1:col2")

TBLPROPERTIES("hbase.table.name" = "table1");

另外hbase還可以對接到

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • pyspark.sql模塊 模塊上下文 Spark SQL和DataFrames的重要類: pyspark.sql...
    mpro閱讀 9,934評論 0 13
  • Hive操作命令: 創(chuàng)建表: 創(chuàng)建一個新表,結(jié)構(gòu)與其他一樣
    行走在朝圣路上閱讀 1,915評論 0 1
  • 簡介 HBase是高可靠性,高性能,面向列,可伸縮的分布式存儲系統(tǒng),利用HBase技術(shù)可在廉價(jià)PC Serve...
    九世的貓閱讀 2,388評論 1 6
  • 1/列出mysql數(shù)據(jù)庫中的所有數(shù)據(jù)庫sqoop list-databases -connect jdbc:mys...
    時待吾閱讀 2,831評論 1 5
  • hive.ddl.output.format:hive的ddl語句的輸出格式,默認(rèn)是text,純文本,還有json...
    博弈史密斯閱讀 2,106評論 0 6

友情鏈接更多精彩內(nèi)容