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

Help Us Go Positive!

We offset our carbon usage with Ecologi. Click the link below to help us!

We offset our carbon footprint via Ecologi
 

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.