HBase基础操作:命名空间、建删改表、增删改查、分区

启动HBase

[root@master bin]# ./start-hbase.sh 

进入HBase数据库

[root@master bin]# hbase shell

查看数据库状态

hbase(main):001:0> status
1 active master, 0 backup masters, 3 servers, 0 dead, 0.6667 average load

表示有3台机器活着,0台机器down掉,当前负载0.67(数字越大,负载越大)

执行help查询帮助
general:普通命令组
ddl:数据定义语言命令组
dml:数据操作语言命令组
tools:工具组
replication:复制命令组
SHELL USAGE:shell语法

命名空间

列出命名空间,类似 hive中show databases

list_namespace 
scan 'hbase:meta' -- 查看元数据信息

新建命名空间

create_namespace 'ns1' 

删除命名空间

drop_namespace 'ns1' 

修改命名空间

alter_namespace 'ns', {METHOD => 'set', 'PROPERTY_NAME' => 'PROPERTY_VALUE'}

列出所有表

list 

新建表
语法:create

, {NAME => , VERSIONS => }
创建表t1,有两个family name:f1,f2,且版本数前者为3,后者为1

create 't1',{NAME => 'f1',VERSION => 3},{NAME => 'f2', VERSIONS => 1}

查看表详情

hbase(main):011:0> describe 't1'
Table t1 is ENABLED                                                                                   
t1                                                                                                    
COLUMN FAMILIES DESCRIPTION                                                                           
{NAME => 'f1', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FAL
SE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOC
KCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}                                     
{NAME => 'f2', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FAL
SE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOC
KCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}                                     
2 row(s) in 0.0320 seconds

删除表中的列簇

alter 't1',{NAME => 'f1',METHOD => 'delete'}

禁用表、删除表

disable 't1'
drop 't1'

利用list或者exists判断表是否存在

hbase(main):014:0> exists 't1'
Table t1 does exist                                                                                   
0 row(s) in 0.0060 seconds

命令 is_enabled
判断是否enabled或者disable

hbase(main):019:0> is_enabled 't1'
true                                                                                                  
0 row(s) in 0.0130 seconds
hbase(main):020:0> is_enabled 't2'

ERROR: Unknown table t2!

Here is some help for this command:
Is named table enabled? For example:
  hbase> is_enabled 't1'
  hbase> is_enabled 'ns1:t1'

插入命令put,查看全表数据scan

  • 对于hbase来说insert update其实没有什么区别,都是插入原理
  • 在hbase中没有数据类型概念,都是“字符类型”,至于含义在程序中体现
  • 每插入一条记录都会自动建立一个时间戳,由系统自动生成。也可手动“强行指定”

hbase(main):024:0> put 't1' ,'rowkey001', 'f2:f002', 'value001'
0 row(s) in 0.0210 seconds

hbase(main):025:0> scan 't1'
ROW                        COLUMN+CELL                                                                
 rowkey001                 column=f2:f002, timestamp=1564494621209, value=value001  

指定版本查看

hbase(main):026:0> scan 't1',{VERSIONS=>2}
ROW                        COLUMN+CELL                                                                
 rowkey001                 column=f2:f002, timestamp=1564494621209, value=value001                    
1 row(s) in 0.0100 seconds

hbase(main):027:0> 

get 查看

hbase(main):036:0> get 't1', 'rowkey001'
COLUMN                     CELL                                                                       
 f2:f002                   timestamp=1564494621209, value=value001                                    
1 row(s) in 0.0180 seconds

修改版本存储个数

alter 't1',{NAME => 'f2',VERSIONS => 3} 

查看多少条记录count

count 't1'

截断表truncate
注意: truncate表的处理过程:由于Hadoop的HDFS文件系统不允许直接修改,所以只能先删除表再重新创建已达到清空表的目的

删除delete
删除指定列簇

hbase(main):037:0> delete 't1','rowkey001','f2:f002'
0 row(s) in 0.0250 seconds

hbase(main):038:0> get 't1', 'rowkey001'
COLUMN                     CELL                                                                       
0 row(s) in 0.0090 seconds

分区

建表时预设分区

create 'test_table', 'cf1', {SPLITS => ['a', 'b', 'c', 'd']}

查看HDFS是可以看到这个表下有5个文件夹(如果没有预分区,则只有一个文件夹)

[root@master ~]# hadoop fs -ls /hbase/data/default/test_table
Found 7 items
drwxr-xr-x   - root supergroup          0 2019-07-30 22:08 /hbase/data/default/test_table/.tabledesc
drwxr-xr-x   - root supergroup          0 2019-07-30 22:08 /hbase/data/default/test_table/.tmp
drwxr-xr-x   - root supergroup          0 2019-07-30 22:08 /hbase/data/default/test_table/0167b46c959a72017e6ade4a0f4fa1c4
drwxr-xr-x   - root supergroup          0 2019-07-30 22:08 /hbase/data/default/test_table/0d92bf1919e7922e77e186d2b3f26d78
drwxr-xr-x   - root supergroup          0 2019-07-30 22:08 /hbase/data/default/test_table/37c06c49b4caf1cdcdd0d64dca9a64d9
drwxr-xr-x   - root supergroup          0 2019-07-30 22:08 /hbase/data/default/test_table/59fe8bb5b20c12e6b0eed7c72e521f1c
drwxr-xr-x   - root supergroup          0 2019-07-30 22:08 /hbase/data/default/test_table/9b16fe8003511ba6abe857c19ef79e27

手动分区

split 'test_table','9b16fe8003511ba6abe857c19ef79e27'
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值