在建立Hbase表的時候默認一張表只有一個region,全部的put操做都會往這一個region中填充數據,當這個一個region過大時就會進行split。若是在建立HBase的時候就進行預分區則會減小當數據量猛增時因爲region split帶來的資源消耗。oop
HBase表的預分區須要緊密結合業務場景來選擇分區的key值,每一個region都有一個startKey和一個endKey來表示該region存儲的rowKey範圍。spa
建立包含預分區表的命令以下:code
> create 't1', 'cf', SPLITS => ['20150501000000000', '20150515000000000', '20150601000000000'] 或者 > create 't2', 'cf', SPLITS_FILE => '/home/hadoop/splitfile.txt' /home/hadoop/splitfile.txt中存儲內容以下: 20150501000000000 20150515000000000 20150601000000000
該語句會建立4個region:blog
startkey endkey region0 - 20150501000000000 region1 20150501000000000 20150515000000000 region2 20150515000000000 20150601000000000 region3 20150601000000000 - // region0沒有startKey // region3沒有endKey // 當put的一條數據rowKey值爲20150516000000000時則會放入region2中
從HBase的Web UI中能夠查看到表的分區hadoop
每一個region的命名方式以下:[table],[region start key],[region id]資源