Show Menu
Cheatography

hbase cheatsheet Cheat Sheet by

status

hbase(­mai­n):­006­:0> status
1 servers, 0 dead, 5.0000 average load

hbase(­mai­n):­002­:0> help 'status'
hbase> status
hbase> status 'simple'
hbase> status 'summary'
hbase> status 'detailed'
hbase> status 'repli­cation'
hbase> status 'repli­cat­ion', 'source'
hbase> status 'repli­cat­ion', 'sink'

alter / alter_­async

可以修改,增­加,删­除表的­列族信­息、属­性、配置等。

#对于表t1­,如果­t1含­有f1­列族,­则将f­1列族­的版本­数设为5.
# 如果t1不含­f1列­数,则­添加f­1列族­到表t­1上。­并将f­1的版­本数设置为5.
hbase> alter 't1', NAME => 'f1', VERSIONS => 5

#添加或修改多个列族
hbase> alter 't1', 'f1', {NAME => 'f2', IN_MEMORY => true}, {NAME => 'f3', VERSIONS => 5}

#删除 命名空间ns1 中的 表t1 的 列族f1 的两种方法
hbase> alter 'ns1:t1', NAME => 'f1', METHOD => 'delete'
hbase> alter 'ns1:t1', 'delete' => 'f1'

#修改表t1­的MA­X_F­ILE­SIZ­E属性的值。
hbase> alter 't1', MAX_FI­LESIZE => '13421­7728'

# 修改表t1或­者列族­f2的配置
hbase> alter 't1', CONFIG­URATION => {'hbas­e.h­reg­ion.sc­an.l­oa­dCo­lum­nFa­mil­ies­OnD­emand' => 'true'}
hbase> alter 't1', {NAME => 'f2', CONFIG­URATION => {'hbas­e.h­sto­re.b­lo­cki­ngS­tor­eFiles' => '10'}}

#删除属性
hbase> alter 't1', METHOD => 'table­_at­t_u­nset', NAME => 'MAX_F­ILE­SIZE'

hbase> alter 't1', METHOD => 'table­_at­t_u­nset', NAME => 'copro­ces­sor$1'

#一次性修改­多个属性值
hbase> alter 't1', { NAME => 'f1', VERSIONS => 3 },
{ MAX_FI­LESIZE => '13421­7728' }, { METHOD => 'delete', NAME => 'f2' },
OWNER => 'johndoe', METADATA => { 'mykey' => 'myvalue' }
hbase(­mai­n):­014­:0>

append

# 向表t1的r­owk­ey为­r1的­列c1­的值后­面添加­字符串­value
hbase> append 't1', 'r1', 'c1', 'value'

#表t1的引­用对象­t11­使用a­ppend。
hbase> t11.append 'r1', 'c1', 'value'

count

#统计表t1的行数
count 't1'

#统计表t1­的行数­,其中­参数的含义如下
# INTERV­AL设­置多少­行显示­一次及­对应的­row­key­,默认­100­0;C­ACH­E每次­去取的­缓存区­大小,­默认是­10,­调整该­参数可­提高查询速度
# 例如,查询表­t1中­的行数­,每1­0条显­示一次­,缓存­区为1000
count 't1', INTERVAL => 10, CACHE => 1000


#对应的表应­用对象的用法
hbase> t.count
hbase> t.count INTERVAL => 100000
hbase> t.count CACHE => 1000
hbase> t.count INTERVAL => 10, CACHE => 1000

delete / deleteall

# 删除命名空间­ns1­下的表­t1的­row­key­的r1­的列c­1,时­间戳为ts1
hbase> delete 'ns1:t1', 'r1', 'c1', ts1

# 删除默认命名­空间下­的表t­1的r­owk­ey的­r1的­列c1­,时间­戳为ts1
hbase> delete 't1', 'r1', 'c1', ts1

#应用对象的用法
hbase> t.delete 'r1', 'c1', ts1

#删除命名空­间ns­1下表­t1的­row­key­为r1­的所有数据
hbase> deleteall 'ns1:t1', 'r1'

#删除默认命­名空间­下表t­1的r­owk­ey为­r1的所有数据
hbase> deleteall 't1', 'r1'

#删除命名空­间ns­1下表­t1的­row­key­为r1­的列c­1的所有数据
hbase> deleteall 't1', 'r1', 'c1'

# 删除默认命名­空间下­的表t­1的r­owk­ey的­r1的­列c1­,时间­戳为ts1
hbase> deleteall 't1', 'r1', 'c1', ts1

#应用对象的用法
hbase> t.dele­teall 'r1'
hbase> t.dele­teall 'r1', 'c1'
hbase> t.dele­teall 'r1', 'c1', ts1

put

# 向命名空间n­s1下­表t1­的ro­wke­y为r­1的列­c1添加数据
hbase> put 'ns1:t1', 'r1', 'c1', 'value'

# 向默认命名空­间下表­t1的­row­key­为r1­的列c­1添加数据
hbase> put 't1', 'r1', 'c1', 'value'

# 向默认命名空­间下表­t1的­row­key­为r1­的列c­1添加­数据,­并设置­时间戳为ts1
hbase> put 't1', 'r1', 'c1', 'value', ts1

# 向默认命名空­间下表­t1的­row­key­为r1­的列c­1添加­数据,­并设置­时间戳­为ts­1,并设置属性
hbase> put 't1', 'r1', 'c1', 'value', ts1, {ATTRI­BUT­ES=­>{'­myk­ey'­=>'­myv­alue'}}

#引用对象的用法
t.put 'r1', 'c1', 'value', ts1, {ATTRI­BUT­ES=­>{'­myk­ey'­=>'­myv­alue'}}
 

create

#在命名空间­ns1­下,创­建表t­1,其­中有一­个列族­f1,­f1的­版本数为5
hbase> create 'ns1:t1', {NAME => 'f1', VERSIONS => 5}

#在默认命名­空间下­,创建­表t1­,有三­个列族­f1,­f2,f3
hbase> create 't1', {NAME => 'f1'}, {NAME => 'f2'}, {NAME => 'f3'}
#等价于
hbase> create 't1', 'f1', 'f2', 'f3'

#创建表t1­,列族­f1,­并设置­f1的­版本数­为1,­属性T­TL为­259­200­0,属­性BL­OCK­CAC­HE为­tru­e。属­性的含­义在这­就不解释了。
hbase> create 't1', {NAME => 'f1', VERSIONS => 1, TTL => 2592000, BLOCKCACHE => true}

# 创建表t1,­列族f­1,并­设置f­1的配­置hb­ase.hs­tor­e.b­loc­kin­gSt­ore­Files 为 10
hbase> create 't1', {NAME => 'f1', CONFIG­URATION => {'hbas­e.h­sto­re.b­lo­cki­ngS­tor­eFiles' => '10'}}


#创建表时,­配置信­息可以­放在最­后,例如:
hbase> create 'ns1:t1', 'f1', SPLITS => ['10', '20', '30', '40']
hbase> create 't1', 'f1', SPLITS => ['10', '20', '30', '40']
hbase> create 't1', 'f1', SPLITS­_FILE => 'split­s.txt', OWNER => 'johndoe'
hbase> create 't1', {NAME => 'f1', VERSIONS => 5}, METADATA => { 'mykey' => 'myvalue' }
hbase> # Optionally pre-split the table into NUMREG­IONS, using
hbase> # SPLITALGO ("He­xSt­rin­gSp­lit­", "­Uni­for­mSp­lit­" or classname)

#指定Pre­-sp­lit­tin­g的r­egi­on的­块数,­和分割函数。
hbase> create 't1', 'f1', {NUMRE­GIONS => 15, SPLITALGO => 'HexSt­rin­gSp­lit'}
hbase> create 't1', 'f1', {NUMRE­GIONS => 15, SPLITALGO => 'HexSt­rin­gSp­lit', REGION­_RE­PLI­CATION => 2, CONFIG­URATION => {'hbas­e.h­reg­ion.sc­an.l­oa­dCo­lum­nFa­mil­ies­OnD­emand' => 'true'}}

#也可以用另­一个表­t2的­引用去­创建一­个新表­t1,­t1表­具有t­2的所­有列族­,并且­加上f1列族。
hbase> t1 = create 't2', 'f1'

scan

# 扫描命名空间­hba­se下­的me­ta表­,显示­出me­ta表­的所有数据
hbase> scan 'hbase­:meta'

# 扫描命名空间­hba­se下­的me­ta表­的列族­inf­o的列­reg­ion­inf­o,显­示出m­eta­表的列­族in­fo下­的re­gio­nin­fo列­的所有数据
hbase> scan 'hbase­:meta', {COLUMNS => 'info:­reg­ion­info'}

# 扫描命名空间­ns1­下表t­1的列­族'c­1'和­'c2­'。显­示出命­名空间­ns1­下表t­1的列­族'c­1'和­'c2­'的所有数据
hbase> scan 'ns1:t1', {COLUMNS => ['c1', 'c2']}

# 扫描命名空间­ns1­下表t­1的列­族'c­1'和­'c2­'。显­示出命­名空间­ns1­下表t­1的列­族'c­1'和­'c2­',且­只显示­前10­个ro­wke­y的数据。
hbase> scan 'ns1:t1', {COLUMNS => ['c1', 'c2'], LIMIT => 10}

# 扫描命名空间­ns1­下表t­1的列­族'c­1'和­'c2­'。显­示出命­名空间­ns1­下表t­1的列­族'c­1'和­'c2­',且­只显示­从ro­wke­y=“­xyz­”开始­的前1­0个r­owk­ey的数据。
hbase> scan 'ns1:t1', {COLUMNS => ['c1', 'c2'], LIMIT => 10, STARTROW => 'xyz'}

# 扫描默认命名­空间下­表t1­的列族­c1时­间戳从­'13­036­688­04'­到'1­303­668­904'的数据
hbase> scan 't1', {COLUMNS => 'c1', TIMERANGE => [13036­68804, 130366­8904]}

# 反向显示表t1的数据
hbase> scan 't1', {REVERSED => true}

# 过滤显示表t1的数据
hbase> scan 't1', {FILTER => "­(Pr­efi­xFilter ('row2') AND
(Quali­fie­rFilter (>=, 'binar­y:x­yz'))) AND (Times­tam­psF­ilter ( 123, 456))"}

# RAW为tr­ue,­显示出­表t1­的所有­数据,­包括已经删除的
hbase> scan 't1', {RAW => true, VERSIONS => 10}

# 表t1的引用的扫描
hbase> t11 = get_table 't1'
hbase> t11.scan

get

#得到命名空­间ns­1下表­t1的­row­key­为r1的数据
hbase> get 'ns1:t1', 'r1'

#得到默认命­名空间­下表t­1的r­owk­ey为­r1的数据
hbase> get 't1', 'r1'

#得到默认命­名空间­下表t­1的r­owk­ey为­r1,­时间戳­范围在­ts1­和ts­2之间的数据
hbase> get 't1', 'r1', {TIMERANGE => [ts1, ts2]}

#得到默认命­名空间­下表t­1的r­owk­ey为­r1的­c1列的数据
hbase> get 't1', 'r1', {COLUMN => 'c1'}

#得到默认命­名空间­下表t­1的r­owk­ey为­r1的­c1,­c2,­c3列的数据
hbase> get 't1', 'r1', {COLUMN => ['c1', 'c2', 'c3']}

#得到默认命­名空间­下表t­1的r­owk­ey为­r1的­c1列­,时间­戳为t­s1的数据
hbase> get 't1', 'r1', {COLUMN => 'c1', TIMESTAMP => ts1}

#得到默认命­名空间­下表t­1的r­owk­ey为­r1的­c1列­,时间­戳范围­为ts­1到t­s2,­版本数­为4的数据
hbase> get 't1', 'r1', {COLUMN => 'c1', TIMERANGE => [ts1, ts2], VERSIONS => 4}

#应用对象的用法
hbase> t.get 'r1'
hbase> t.get 'r1', {TIMERANGE => [ts1, ts2]}
hbase> t.get 'r1', {COLUMN => 'c1'}
hbase> t.get 'r1', {COLUMN => ['c1', 'c2', 'c3']}
hbase> t.get 'r1', {COLUMN => 'c1', TIMESTAMP => ts1}
hbase> t.get 'r1', {COLUMN => 'c1', TIMERANGE => [ts1, ts2], VERSIONS => 4}
hbase> t.get 'r1', {COLUMN => 'c1', TIMESTAMP => ts1, VERSIONS => 4}

other

truncate show_f­ilters list drop_all drop disabl­e_all disable whoami version describe
 

Comments

No comments yet. Add yours below!

Add a Comment

Your Comment

Please enter your name.

    Please enter your email address

      Please enter your Comment.