进入HBase 命令行
./hbase shell
查看Hbase 的状态 status
hbase(main):007:0> status1 active master, 0 backup masters, 1 servers, 0 dead, 8.0000 average load
显示HBase 中的表 list
list---hbase(main):008:0> listTABLE member mytable test test0417 user web_test 6 row(s) in 0.0100 seconds=> ["member", "mytable", "test", "test0417", "user", "web_test"]
删除表 drop
删除表的前提是表要处于disable的状态,如果没有则disable 表
hbase(main):016:0> drop 'user'0 row(s) in 3.1690 seconds
创建表 create
create 第一个参数是代表Row ,后面的代表Column
hbase(main):017:0> create 'user','info','data'0 row(s) in 8.6390 seconds=> Hbase::Table - userhbase(main):018:0> desc 'user'Table user is ENABLED user COLUMN FAMILIES DESCRIPTION {NAME => 'data', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'} {NAME => 'info', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '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.0180 seconds
插入数据 put
需要主要的是在HBase中更新和创建记录数据是相同的命令,每一条记录将自动记录多次变更的情况,类似于SVN一样,但是在设计表的时候可以设置最大保存的version的最大数,读取的时候也可以读取指定的的版本数
直接给一个列插入数据(非列族下的列),类型为字符串和字典
hbase(main):020:0> put 'user','0001','info','only_info_value'0 row(s) in 0.0700 seconds#插入的是一个字典类型数据,注意字典需要双引号hbase(main):022:0> put 'user','0002','info',"{'value':'1234'}"0 row(s) in 0.0120 seconds
直接赋值给列族中的列,自动创建列,只添加一个的情况
hbase(main):025:0> put 'user','0003','data:age','18'0 row(s) in 0.0150 secondshbase(main):026:0> scan 'user'ROW COLUMN+CELL 0001 column=info:, timestamp=1492422232548, value=only_info_value 0002 column=info:, timestamp=1492422363530, value={'value':'1234'} 0003 column=data:age, timestamp=1492423135470, value=18 3 row(s) in 0.0200 seconds
添加多个列,实质上就是再执行一次put 操作,此时row_key和原来是一样的,如下所示:
hbase(main):027:0> put 'user','0003','data:gender','female'0 row(s) in 0.0090 secondshbase(main):028:0> scan 'user'ROW COLUMN+CELL 0001 column=info:, timestamp=1492422232548, value=only_info_value 0002 column=info:, timestamp=1492422363530, value={'value':'1234'} 0003 column=data:age, timestamp=1492423135470, value=18 0003 column=data:gender, timestamp=1492423353786, value=female 3 row(s) in 0.0110 seconds
读取数据get
读取某一行的所有数据
hbase(main):029:0> get 'user','0001'COLUMN CELL info: timestamp=1492422232548, value=only_info_value 1 row(s) in 0.0270 seconds
读取一行中一个列族的所有信息
(为了演示,给info列增加一个值)hbase(main):033:0> put 'user','0001','info:123','ext_001'0 row(s) in 0.0090 secondshbase(main):035:0> scan 'user'ROW COLUMN+CELL 0001 column=info:, timestamp=1492422232548, value=only_info_value 0001 column=info:123, timestamp=1492496315262, value=ext_001 0002 column=info:, timestamp=1492422363530, value={'value':'1234'} 0003 column=data:age, timestamp=1492423135470, value=18 0003 column=data:gender, timestamp=1492423353786, value=female 3 row(s) in 0.0170 secondshbase(main):037:0> get 'user','0001','info'COLUMN CELL info: timestamp=1492422232548, value=only_info_value info:123 timestamp=1492496315262, value=ext_001 2 row(s) in 0.0090 seconds
获取列族中某一个字段的值
hbase(main):038:0> get 'user','0003','data:age'COLUMN CELL data:age timestamp=1492423135470, value=18 1 row(s) in 0.0110 seconds
获取user表中row key为0003,列标示符中含有a的信息
有问题,待补充读取全表数据scan
hbase(main):042:0> scan 'user'ROW COLUMN+CELL 0001 column=info:, timestamp=1492422232548, value=only_info_value 0001 column=info:123, timestamp=1492496315262, value=ext_001 0002 column=info:, timestamp=1492422363530, value={'value':'1234'} 0003 column=data:age, timestamp=1492423135470, value=18 0003 column=data:gender, timestamp=1492423353786, value=female 3 row(s) in 0.0150 seconds
查询表中有多少行 count
hbase(main):043:0> count 'user'3 row(s) in 0.0140 seconds=> 3
默认是1000行显示一次,也可以调整
# 语法:count
删除指定行某一列的数据 delete
hbase(main):049:0> get 'user','0001'COLUMN CELL info: timestamp=1492422232548, value=only_info_value info:123 timestamp=1492496315262, value=ext_001 2 row(s) in 0.0090 secondshbase(main):050:0> delete 'user','0001','info:123'0 row(s) in 0.0250 secondshbase(main):051:0> get 'user','0001'COLUMN CELL info: timestamp=1492422232548, value=only_info_value 1 row(s) in 0.0070 seconds
添加两个列族 alter table_name ,NAME =>列族名
hbase(main):052:0> desc 'user'Table user is ENABLED user COLUMN FAMILIES DESCRIPTION {NAME => 'data', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'} {NAME => 'info', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '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.0180 secondshbase(main):055:0> alter 'user',NAME =>'Content'Updating all regions with the new schema...1/1 regions updated.Done.0 row(s) in 3.2340 secondshbase(main):056:0> desc 'user'Table user is ENABLED user COLUMN FAMILIES DESCRIPTION {NAME => 'Content', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', COMPRESSION => 'NONE', VERSIONS => '1', TTL => 'FOREVER', MIN_VERSIONS => '0', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'} {NAME => 'data', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'} {NAME => 'info', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'} 3 row(s) in 0.0150 seconds
查询指定时间段的方法 TIMERANGE
hbase(main):012:0> scan 'user'ROW COLUMN+CELL 0001 column=info:, timestamp=1492422232548, value=only_info_value 0002 column=info:, timestamp=1492422363530, value={'value':'1234'} 0003 column=data:age, timestamp=1492423135470, value=18 0003 column=data:gender, timestamp=1492423353786, value=female 3 row(s) in 0.0210 secondshbase(main):013:0> scan 'user',{TIMERANGE =>[1492422232548,1492422232549]}ROW COLUMN+CELL 0001 column=info:, timestamp=1492422232548, value=only_info_value 1 row(s) in 0.0110 seconds