HBase入门基本:命名空间、建表、增删改查

进入HBase数据库

# hbase shell

注意HBase Shell 中的回格键没用,要用【Ctrl+Backspace】,每个命令之后不需要分号(;)结束。

HBase帮助命令:

hbase> help 'create'

命名空间

列出所有命名空间

hbase> list_namespace

新建命名空间

hbase> create_namespace 'ns1'

删除命名空间

hbase> drop_namespace 'ns1'

该命名空间必须为空,否则会报错。

修改命名空间

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

列出所有表

hbase> list

列出指定命名空间下的所有表

hbase> list_namespace_tables 'ns1'

新建表

hbase> create 'ns1:t1', 'cf1'

新建一个以命名空间ns1的表t1,列族为cf1。

删除表

hbase> disable 'ns1:t1'
hbase> drop 'ns1:t1'

修改表名
HBase没有rename命令,可以通过快照功能修改表名,详见下述。

查看表内容

hbase> scan 'ns1:t1'
hbase> scan 'ns1:t1', {LIMIT=>5} # 查看前5行数据

插入

hbase> put 'ns1:t1', 'r1', 'cf1:c1', 'value'

比如我们插入以下数据:

id name sex age
1 孙悟空 18
2 安琪拉 19
3 狄仁杰 20
put 'gld:student','1','cf1:name','孙悟空'
put 'gld:student','1','cf1:sex','男'
put 'gld:student','1','cf1:age','18'

put 'gld:student','2','cf1:name','安琪拉'
put 'gld:student','2','cf1:sex','女'
put 'gld:student','2','cf1:age','19'

put 'gld:student','3','cf1:name','狄仁杰'
put 'gld:student','3','cf1:sex','男'
put 'gld:student','3','cf1:age','20'
hbase> scan 'gld:student'
ROW                                                          COLUMN+CELL                                                                                                                                                                       
 1                                                           column=cf1:age, timestamp=1538030949261, value=18                                                                                                                                 
 1                                                           column=cf1:name, timestamp=1538030949174, value=\xE5\xAD\x99\xE6\x82\x9F\xE7\xA9\xBA                                                                                              
 1                                                           column=cf1:sex, timestamp=1538030949219, value=\xE7\x94\xB7                                                                                                                       
 2                                                           column=cf1:age, timestamp=1538030949393, value=19                                                                                                                                 
 2                                                           column=cf1:name, timestamp=1538030949314, value=\xE5\xAE\x89\xE7\x90\xAA\xE6\x8B\x89                                                                                              
 2                                                           column=cf1:sex, timestamp=1538030949350, value=\xE5\xA5\xB3                                                                                                                       
 3                                                           column=cf1:age, timestamp=1538030950752, value=20                                                                                                                                 
 3                                                           column=cf1:name, timestamp=1538030949448, value=\xE7\x8B\x84\xE4\xBB\x81\xE6\x9D\xB0                                                                                              
 3                                                           column=cf1:sex, timestamp=1538030949487, value=\xE7\x94\xB7                                                                                                                       
3 row(s) in 0.0230 seconds

删除

更新

查看

hbase> get 'ns1:t1', 'r1'

快照

hbase> list_snapshots 'ns1'
SNAPSHOT                                                     TABLE + CREATION TIME                                                                                                                                                             
 student_snapshot20180529                           gld:student(Thu Mar 29 10:12:28 +0800 2018)                                                                                                                      
 student_snapshot20180929                           gld:student (Sat Sep 29 18:24:24 +0800 2018)                                                                                                                    
2 row(s) in 0.0280 seconds

=> ["student_snapshot20180529", "student_snapshot20180929"]

新建快照:

hbase> snapshot 'sourceTable', 'snapshotName'

从快照复制生成一个新表:

hbase> clone_snapshot 'snapshotName', 'gld:student'

分区

预分区

在建表时预分10个区:

create 'gld:student', 'cf1', {SPLITS => ['1', '2', '3', '4', '5', '6', '7', '8', '9']}

则每个分区的Start Key和End Key分别为:

(~, 1),[1, 2),[2, 3),[3, 4),[4, 5),[5, 6),[6, 7),[7, 8),[8, 9),[9, ~)

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

$ hdfs dfs -ls /hbase/data/gld/student
Found 12 items
drwxr-xr-x   - hdfs supergroup          0 2018-10-23 14:23 /hbase/data/gld/student/.tabledesc
drwxr-xr-x   - hdfs supergroup          0 2018-10-23 14:23 /hbase/data/gld/student/.tmp
drwxr-xr-x   - hdfs supergroup          0 2018-10-23 14:23 /hbase/data/gld/student/0d94e23b2b2c0b22ec9024907f65b78e
drwxr-xr-x   - hdfs supergroup          0 2018-10-23 14:23 /hbase/data/gld/student/1b3c094e1a1c9d9434222e96f600fc60
drwxr-xr-x   - hdfs supergroup          0 2018-10-23 14:23 /hbase/data/gld/student/31a515208c2621c6c3b3a0489c938197
drwxr-xr-x   - hdfs supergroup          0 2018-10-23 14:23 /hbase/data/gld/student/4410dd4230c711965c871aecd8c1ffe8
drwxr-xr-x   - hdfs supergroup          0 2018-10-23 15:27 /hbase/data/gld/student/4730dab32d57159db3b9214f6b908f2d
drwxr-xr-x   - hdfs supergroup          0 2018-10-23 14:25 /hbase/data/gld/student/4ff074ef3ca1a7bf56461c606c1920a2
drwxr-xr-x   - hdfs supergroup          0 2018-10-23 14:23 /hbase/data/gld/student/621cf72507b7f8942af1dca15241ecf5
drwxr-xr-x   - hdfs supergroup          0 2018-10-23 15:29 /hbase/data/gld/student/8432b86e8bc1367c5872d796462281d6
drwxr-xr-x   - hdfs supergroup          0 2018-10-23 14:23 /hbase/data/gld/student/c68c759df2f78c1006bc07c30a8681d1
drwxr-xr-x   - hdfs supergroup          0 2018-10-31 16:31 /hbase/data/gld/student/fb9fb89a569c27ba1ca626fc3ab44c09

手动分区

一开始没有分区:
HBase入门基本:命名空间、建表、增删改查_第1张图片

使用切分键’1’一分为二:

hbase> split 'tableName', 'splitKey'
hbase> split 'gld:student', '1'  

HBase入门基本:命名空间、建表、增删改查_第2张图片

继续将第二个Region进行切分,以’2’作为切分键:

hbase> split 'regionName', 'splitKey'
hbase> split 'gld:student,1,1538223641947', '2'  

合并分区

hbase> merge_region 'ENCODED_REGIONNAME', 'ENCODED_REGIONNAME'
hbase> merge_region 'eea56b5303ed9aca9aa2b4adc14798b8','e8324c9b047282a608588c8826484f5d'

你可能感兴趣的:(HBase入门基本:命名空间、建表、增删改查)