Hbase 大表快速count

2021-08-06 04:56:47 字數 1835 閱讀 1912

第一種比較簡單,但是只適合小表進行count

1.count命令

最直接的方式是在hbase shell中執行count的命令可以統計行數。

[html]view plain

copy

hbase

>

count 『t1′  

hbase>

count 『t1′, 

interval

=>

100000  

hbase>

count 『t1′, 

cache

=>

1000  

hbase>

count 『t1′, 

interval

=>

10, 

cache

=>

1000  

其中,interval為統計的行數間隔,預設為1000,cache為統計的資料快取。這種方式效率很低,如果錶行數很大的話不建議採用這種方式。

下面兩種方法可以進行大表count

2. 呼叫mapreduce

[plain]view plain

copy

$hbase_home/bin/hbase   org.apache.hadoop.hbase.mapreduce.rowcounter 『tablename』  

這種方式效率比上一種要搞很多,呼叫的hbase jar中自帶的統計行數的類。

1000w耗時兩分鐘。

3.hive over hbase

如果已經見了hive和hbase的關聯表的話,可以直接在hive中執行sql語句統計hbase表的行數。

hive over hbase 表的建表語句為:

/*建立hive與hbase的關聯表*/

[sql]view plain

copy

create

table

hive_hbase_1(

keyint

,value string)  

stored by

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

with

serdeproperties (

=":key,cf:val"

)  tblproperties("hbase.table.name"

="t_hive"

,"hbase.table.default.storage.type"

="binary"

);  

/*hive關聯已經存在的hbase*/

[sql]view plain

copy

create

external 

table

hive_hbase_1(

keyint

,value string)  

stored by

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

with

serdeproperties (

=":key,cf:val"

)  tblproperties("hbase.table.name"

="t_hive"

,"hbase.table.default.storage.type"

="binary"

);  

hbase 資料遷移,表count

小表 count shell count tablename 大表hbase row count hbase org.apache.hadoop.hbase.mapreduce.rowcounter tablename 2 離線匯出。匯出hbase org.apache.hadoop.hbase.m...

MySQL 大表的count 優化實現

以下是基於我結合b 樹的資料結構和對實驗結果的推測作出的判斷,如有錯誤,懇請指正!今天實驗了一下mysql的count 操作優化,以下討論基於mysql5.7 innodb儲存引擎.x86 windows作業系統。建立的表的結構如下 資料量為100萬 首先是關於mysql的count count p...

Count(矩陣快速冪)

學習矩陣快速冪可以看這篇部落格 矩陣快速冪高階 description farmer john有n頭奶牛.某天奶牛想要數一數有多少頭奶牛,以一種特殊的方式 第一頭奶牛為1號,第二頭奶牛為2號,第三頭奶牛之後,假如當前奶牛是第n頭,那麼他的編號就是2倍的第n 2頭奶牛的編號加上第n 1頭奶牛的編號再加...