HBase(09) HBase 建表高階屬性

2021-08-28 21:08:07 字數 1091 閱讀 5130

預設情況下,在建立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。

alter

使用方法:

如 修改壓縮演算法

disable 'table'

enable 'table'

但是需要執行major_compact 『table』 命令之後 才會做實際的操作。

describe 『table』 這個命令檢視了create table 的各項引數或者是預設值。

HBASE 預分割槽建表

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

HBase 建表API使用

string table table configuration conf hbaseconfiguration.create connection conn connectionfactory.createconnection conf admin admin conn.getadmin 刪除指定...

HBase的高表和寬表

hbase中的寬表是指很多列較少行,即列多行少的表,一行中的資料量較大,行數少 hbase中高表是指很多行較少列,即行多列少,一行中的資料量較少,行數大。hbase的row key是分布式的索引,也是分片的依據。hbase的row key column family column qualifier...