第一種比較簡單,但是只適合小表進行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頭奶牛的編號再加...