跳跃性有点大~
1,进入hbase
[root@5f2929d8f8f4 admin]# hbase shell
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/admin/hbase-1.1.2/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/admin/hadoop-2.7.0/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
2022-05-03 04:49:26,124 WARN [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 1.1.2, rcc2b70cf03e3378800661ec5cab11eb43fafe0fc, Wed Aug 26 20:11:27 PDT 2015
2,查看服务器状态
hbase(main):001:0> status
1 servers, 0 dead, 3.0000 average load
3,创建表,包含两个列族
hbase(main):002:0> create 'mytable','baseinfo','extrainfo'
0 row(s) in 1.2720 seconds
=> Hbase::Table - mytable
4,创建数据
创建一行数据rowkey为P001,再往baseinfo的列族中增加4列数据,往extrainfo列族中增加一列数据。
hbase(main):003:0> put 'mytable','P001','baseinfo:name','Jack'
0 row(s) in 0.1270 seconds
hbase(main):004:0> put 'mytable','P001','baseinfo:age','21'
0 row(s) in 0.0080 seconds
hbase(main):005:0> put 'mytable','P001','baseinfo:tel','13921345678'
0 row(s) in 0.0090 seconds
hbase(main):006:0> put 'mytable','P001','baseinfo:id_card','12345678'
0 row(s) in 0.0080 seconds
hbase(main):007:0> put 'mytable','P001','extrainfo:company','Dream'
0 row(s) in 0.0040 seconds
5,使用scan扫描整张表数据
hbase(main):008:0> scan 'mytable'
ROW COLUMN+CELL
P001 column=baseinfo:age, timestamp=1651553704698, value=21
P001 column=baseinfo:id_card, timestamp=1651553753222, value=12345678
P001 column=baseinfo:name, timestamp=1651553690435, value=Jack
P001 column=baseinfo:tel, timestamp=1651553727449, value=13921345678
P001 column=extrainfo:company, timestamp=1651553776178, value=Dream
1 row(s) in 0.0270 seconds
6,使用count统计表行数
hbase(main):009:0> count 'mytable'
1 row(s) in 0.0220 seconds
=> 1
7,查询数据
可以查询一行所有数据,可以获取指定行和列族的所有列数据,获取指定行、列族的所有数据,
hbase(main):010:0> get 'mytable','P001'
COLUMN CELL
baseinfo:age timestamp=1651553704698, value=21
baseinfo:id_card timestamp=1651553753222, value=12345678
baseinfo:name timestamp=1651553690435, value=Jack
baseinfo:tel timestamp=1651553727449, value=13921345678
extrainfo:company timestamp=1651553776178, value=Dream
5 row(s) in 0.0250 seconds
hbase(main):011:0> get 'mytable','P001','baseinfo'
COLUMN CELL
baseinfo:age timestamp=1651553704698, value=21
baseinfo:id_card timestamp=1651553753222, value=12345678
baseinfo:name timestamp=1651553690435, value=Jack
baseinfo:tel timestamp=1651553727449, value=13921345678
4 row(s) in 0.0140 seconds
hbase(main):012:0> get 'mytable','P001','baseinfo:name'
COLUMN CELL
baseinfo:name timestamp=1651553690435, value=Jack
1 row(s) in 0.0090 seconds
8,更新数据
hbase(main):013:0> put 'mytable','P001','baseinfo:name','Tom'
0 row(s) in 0.0110 seconds
hbase(main):014:0> get 'mytable','P001','baseinfo:name'
COLUMN CELL
baseinfo:name timestamp=1651553926770, value=Tom
1 row(s) in 0.0100 seconds
9,查询指定版本的列族信息
hbase(main):015:0> create 'multi_versions',{NAME=>'baseinfo', VERSIONS=>3}
0 row(s) in 1.2340 seconds
=> Hbase::Table - multi_versions
hbase(main):016:0> put 'multi_versions','10000','baseinfo:name','Jack'
0 row(s) in 0.0110 seconds
hbase(main):017:0> put 'multi_versions','10000','baseinfo:name','Tom'
0 row(s) in 0.0050 seconds
hbase(main):018:0> put 'multi_versions','10000','baseinfo:name','Mark'
0 row(s) in 0.0090 seconds
hbase(main):019:0> get 'multi_versions','10000','baseinfo:name'
COLUMN CELL
baseinfo:name timestamp=1651554044660, value=Mark
1 row(s) in 0.0080 seconds
hbase(main):020:0> get 'multi_versions','10000',{COLUMN=>'baseinfo:name',VERSIONS=>3}
COLUMN CELL
baseinfo:name timestamp=1651554044660, value=Mark
baseinfo:name timestamp=1651554036790, value=Tom
baseinfo:name timestamp=1651554022831, value=Jack
3 row(s) in 0.0140 seconds
10,删除一列数据
hbase(main):021:0> get 'mytable','P001'
COLUMN CELL
baseinfo:age timestamp=1651553704698, value=21
baseinfo:id_card timestamp=1651553753222, value=12345678
baseinfo:name timestamp=1651553926770, value=Tom
baseinfo:tel timestamp=1651553727449, value=13921345678
extrainfo:company timestamp=1651553776178, value=Dream
5 row(s) in 0.0110 seconds
hbase(main):022:0> delete 'mytable','P001','baseinfo:id_card'
0 row(s) in 0.0140 seconds
hbase(main):023:0> scan 'mytable'
ROW COLUMN+CELL
P001 column=baseinfo:age, timestamp=1651553704698, value=21
P001 column=baseinfo:name, timestamp=1651553926770, value=Tom
P001 column=baseinfo:tel, timestamp=1651553727449, value=13921345678
P001 column=extrainfo:company, timestamp=1651553776178, value=Dream
1 row(s) in 0.0160 seconds
11,删除一个列族
在删除列族之前,先disable表,然后将列族标记为delete,再enable表。
hbase(main):024:0> disable 'mytable'
0 row(s) in 2.2660 seconds
hbase(main):026:0> alter 'mytable',NAME=>'extrainfo',METHOD=>'delete'
Updating all regions with the new schema...
1/1 regions updated.
Done.
0 row(s) in 1.9150 seconds
hbase(main):027:0> enable 'mytable'
0 row(s) in 1.2560 seconds
hbase(main):028:0> scan 'mytable'
ROW COLUMN+CELL
P001 column=baseinfo:age, timestamp=1651553704698, value=21
P001 column=baseinfo:name, timestamp=1651553926770, value=Tom
P001 column=baseinfo:tel, timestamp=1651553727449, value=13921345678
1 row(s) in 0.0100 seconds
hbase(main):029:0> describe 'mytable'
Table mytable is ENABLED
mytable
COLUMN FAMILIES DESCRIPTION
{NAME => 'baseinfo', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL =>
'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}
1 row(s) in 0.0190 seconds
12,删除表
可以先执行is_enabled看看有没有被disable,然后再删除。
hbase(main):030:0> is_enabled 'mytable'
true
0 row(s) in 0.0120 seconds
hbase(main):031:0> drop 'mytable'
ERROR: Table mytable is enabled. Disable it first.
Here is some help for this command:
Drop the named table. Table must first be disabled:
hbase> drop 't1'
hbase> drop 'ns1:t1'
hbase(main):032:0> disable 'mytable'
0 row(s) in 2.2500 seconds
hbase(main):033:0> drop 'mytable'
0 row(s) in 1.2600 seconds
13,查看所有表
hbase(main):034:0> list
TABLE
kylin_metadata
multi_versions
2 row(s) in 0.0160 seconds
=> ["kylin_metadata", "multi_versions"]
网友评论