1.启动的HBase的前提是饲养员,Hadoop的启动为前提。
1.1启动饲养员命令:zkServer.sh启动
1.2启动hadoop的命令:start-all.sh
1.3启动HBase的命令:start-hbase.sh
2.转入到HBase的
2.1查看所有表
list
2.2创建表
hbase(main):008:0> create 'user','info1','info2'
0 row(s) in 0.2640 seconds
=> Hbase::Table - user
2.3描述表
hbase(main):002:0> describe 'user'
Table user is ENABLED
COLUMN FAMILIES DESCRIPTION
{NAME => 'info1', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOP
E => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => 'FOREVER'
, KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE
=> 'true'}
{NAME => 'info2', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOP
E => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => 'FOREVER'
, KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE
=> 'true'}
2 row(s) in 0.1460 seconds
2.4判断表存在
hbase(main):003:0> exists 'user'
Table user does exist
0 row(s) in 0.0110 seconds
2.5添加记录
列族
列簇:HBASE表中的每个列,都归属于某个列族列族是表的架构的一部分分(而列不是),必须在使用表之前定义。
列名都以列作为前缀,例如课程:历史,课程:数学都属于课程这个列族。
列簇:可以看成一个大表
行列:可以看成一个小表,查看全表的内容,可以区分行列的不同,也以为着IP地址的不同。
相同的行列即为一张表。
hbase(main):004:0> put 'user','1234','info1:name','zhangsan'
0 row(s) in 0.1720 seconds
hbase(main):005:0> put 'user','1234','info1:age','18'
0 row(s) in 0.0130 seconds
hbase(main):006:0> put 'user','12345','info1:name','zhangsan'
0 row(s) in 0.0130 seconds
hbase(main):007:0> put 'user','12345','info1:age','18'
0 row(s) in 0.0410 seconds
2.6扫描全表
hbase(main):008:0> scan 'user'
ROW COLUMN+CELL
1234 column=info1:age, timestamp=1544619103106, value=18
1234 column=info1:name, timestamp=1544619059266, value=zhangsan
12345 column=info1:age, timestamp=1544619239382, value=18
12345 column=info1:name, timestamp=1544619197577, value=zhangsan
2 row(s) in 0.0480 seconds
2.7查看记录rowkey下的所有数据
hbase(main):001:0> get 'user','rowkey'
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/root/apps/hbase-0.99.2/lib/slf4j-log4j12-1.7.7.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/root/apps/hadoop-2.6.4/share/hadoop/common/lib/slf4j-log4j12-1.7.5.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]
COLUMN CELL
0 row(s) in 0.4030 seconds
2.8查看表中记录总数
hbase(main):002:0> count 'user'
2 row(s) in 0.0430 seconds
=> 2
2.9获取某个列族的某个列
hbase(main):003:0> get 'user','1234','info1:name'
COLUMN CELL
info1:name timestamp=1544619059266, value=zhangsan
1 row(s) in 0.0390 seconds
2.10删除记录
hbase(main):005:0> delete 'user','1234','info1:name'
0 row(s) in 0.0840 seconds
hbase(main):006:0> scan 'user'
ROW COLUMN+CELL
1234 column=info1:age, timestamp=1544619103106, value=18
12345 column=info1:age, timestamp=1544619239382, value=18
12345 column=info1:name, timestamp=1544619197577, value=zhangsan
2 row(s) in 0.0280 seconds
2.11删除整行
hbase(main):007:0> deleteall 'user','12345'
0 row(s) in 0.0140 seconds
hbase(main):009:0> scan 'user'
ROW COLUMN+CELL
1234 column=info1:age, timestamp=1544619103106, value=18
1 row(s) in 0.0220 seconds
2.12清空表
hbase(main):010:0> truncate 'user'
Truncating 'user' table (it may take a while):
- Disabling table...
- Truncating table...
0 row(s) in 5.5450 seconds
hbase(main):011:0> scan 'user'
ROW COLUMN+CELL
0 row(s) in 0.0220 seconds
2.13删除一张表先要屏蔽该表,才能对该表进行删除
第一步禁用 '表名',
第二步降 '表名'
hbase(main):012:0> disable 'user'
0 row(s) in 1.2020 seconds
hbase(main):013:0> drop 'user'
0 row(s) in 0.1840 seconds
hbase(main):014:0> exists 'user'
Table user does not exist
0 row(s) in 0.0130 seconds
2.14更新记录就是重写一遍,进行覆盖,HBase的没有修改,都是追加。