基礎(chǔ)操作
#create table
create 'tableName',{NAME=>'f'}
#scan a table
scan 'my_test',{COLUMNS => ['f1:a1','f1:b1']}
#get line data by rowkey
get 'tablename','rowkey'
#delete table
disable 'tableName'
drop 'tableName'
預(yù)分區(qū)
UniformSplit
占用空間小,rowkey前綴完全隨機(jī)。將可能的鍵的空間平均分割的聚合體。當(dāng)鍵是近似一致的隨機(jī)字節(jié)時(shí)(例如散列),建議使用這個(gè)。行是范圍為 00 => FF 的原始字節(jié)值,用0右填充以保持相同的 memcmp()順序。對(duì)于
byte[]環(huán)境來(lái)說(shuō),這是一種自然的算法,可以節(jié)省空間,但是對(duì)于可讀性來(lái)說(shuō),它并不一定是最簡(jiǎn)單的。
HexStringSplit
占用空間大,rowkey是十六進(jìn)制的字符串作為前綴的。HexStringSplit 是一個(gè)典型的 RegionSplitter.SplitAlgorithm來(lái)選擇 region 邊界。HexStringSplit region 邊界的格式是MD5校驗(yàn)和或任何其他均勻分布的十六進(jìn)制值的ASCII表示形式。Row是十六進(jìn)制編碼的長(zhǎng)值,其范圍為“00000000”=>“FFFFFFFF”,并左填充0,以使其在字典上保持與二進(jìn)制相同的順序。由于這種分割算法使用十六進(jìn)制字符串作為鍵,所以在 shell 中方便讀寫,但是占用更多的空間,而且可能不夠直觀。
DecimalStringSplit
rowkey是10進(jìn)制數(shù)字字符串作為前綴的
# 基于隨機(jī)算法創(chuàng)建一個(gè)有4默認(rèn)個(gè)分區(qū)的表
hbase>create 't2','f1', { NUMREGIONS => 4 , SPLITALGO => 'UniformSplit' }
# 基于 hex keys 創(chuàng)建一個(gè)有5個(gè)默認(rèn)分區(qū)的表
hbase>create 'table_name','f1', { NUMREGIONS => 500, SPLITALGO => 'HexStringSplit' }