Hbase 表預分割槽 手動分割槽

2021-08-16 22:19:15 字數 905 閱讀 8050

預設情況下,在建立hbase表的時候會自動建立乙個region分割槽,當匯入資料的時候,所有的hbase客戶端都向這乙個region寫資料,直到這個region足夠大了才進行切分。一種可以加快批量寫入速度的方法是通過預先建立一些空的regions,這樣當資料寫入hbase時,會按照region分割槽情況,在集群內做資料的負載均衡。

命令方式:

create 『t1』, 『f1』,

也可以使用api的方式:

bin/hbase org.apache.hadoop.hbase.util.regionsplitter test_table hexstringsplit -c 10 -f info

引數:

test_table是表名

hexstringsplit 是split 方式

-c 是分10個region

-f 是family

這樣就可以將表預先分為15個區,減少資料達到storefile 大小的時候自動分割槽的時間消耗,並且還有以乙個優勢,就是合理設計rowkey 能讓各個region 的併發請求平均分配(趨於均勻) 使io 效率達到最高,但是預分割槽需要將filesize 設定乙個較大的值,設定哪個引數呢, hbase.hregion.max.filesize 這個值預設是10g 也就是說單個region 預設大小是10g,

這個引數的預設值在0.90 到0.92到0.94.3各版本的變化:256m--1g--10g

但是如果mapreduce input型別為tableinputformat 使用hbase作為輸入的時候,就要注意了,每個region乙個map,如果資料小於10g 那只會啟用乙個map 造成很大的資源浪費,這時候可以考慮適當調小該引數的值,或者採用預分配region的方式,並將檢測如果達到這個值,再手動分配region。

HBase預分割槽

hbase提供了預分割槽功能,即使用者可以在建立表的時候對錶按照一定的規則分割槽。hbase表在剛剛被建立時,只有1個分割槽 region 當乙個region過大 達到hbase.hregion.max.filesize屬性中定義的閾值,預設10gb 時,表將會進行split,為2個分割槽。表在進行...

HBASE 預分割槽建表

在create乙個表時如果不指定預分配region,則缺省會先分配乙個region,這樣在大資料並行載入時效能比較低,因為所有的資料都往乙個region灌入,容易引起單節點負載公升高,從而影響入庫效能,乙個好的方法時在建立表時預先分配數個region。方法有兩種,主要針對不同版本可供選擇。1.使用r...

HBase預分割槽 UniformSplit

如果某個hbase的表查詢只是以隨機查詢為主,可以用uniformsplit的方式進行,它是按照原始byte值 從0x00 0xff 右邊以00填充。以這種方式分割槽的表在插入的時候需要對rowkey進行乙個技巧性的改造,比如原來的rowkey為rawstr,則需要對其取hashcode,然後進行按...