hbase查看表结构_HBase基本使用之DDL学习

先将服务启动

71e0980f8eb96b73bb387e8739c35d2f.png

hbase自带了shell命令行,我们使用下

在hbase目录下执行

bin/hbase

有很多说明

610e9e69ca239f51f5b591ab9d971b71.png

进入客户端

bin/hbase shell

有个提示:如果shell要删除命令,需要按住ctrl+backspace键

dfe2f7696068ff3cb11e4322d967fb68.png

查看帮助信息help

3ffad3f48b46d959da0b18e5a93b040c.png

status: 提供HBase的状态,例如,服务器的数量

c7f715cd611b0311970a9371ddc79114.png

status

90b0dfbb80536be6314ed5ab1d3021d6.png

version: 提供正在使用HBase版本

14b4855d7529b4a411ea424db0c65b4e.png

Version

2792bf255979f45c330695a391791c50.png

whoami: 提供有关用户的信息

8ad06b4ad5fbefeb7ef4728096898127.png

Whoami

650efaafd0989492c5b6472d1aa228e7.png

table_help: 表引用命令提供帮助

aba0c9032716e0aed6e0c4a07a5cab38.png

table_help

e47d2a390ee5c0a870c7c57526213496.png

namespace

63870bcf2bdfc5cbe6422e46720cf122.png

展示namespace

list_namespace

509193bee66c4ab993fd88c92ceee91d.png

创建namespace

create_namespace 'nstest'

7ee6b7b02018354753137cf14704bbcc.png

描述namespace

describe_namespace 'nstest'

ac78d911e01e0703d023ebd837ebbd2e.png

删除namespace

drop_namespace 'nstest'

61a43e67d75d139860fe23b799eccdd1.png

Group name: ddl

02a923ba1fd8d5ed47d2a246ce81c16d.png

我们输入create,查看下create的用法

c5badc85e230c451b569753ce8140a9e.png

create 'ns1:t1', {NAME => 'f1', VERSIONS => 5}

(1)指定某一个namespace下的某一张表

(2)必须要指定一个列簇{NAME}

(3)=>表示等于的意思

(4)一对{}只能定义1个列簇,不同的{}定义不同多个列簇

(5){}中的变量名称必须是大写的

创建一个namespace和t1表(不指定namespace默认是default)

create_namespace 'nstest'

create 'nstest:t1', {NAME => 'f1', VERSIONS => 5}

d6b80e64850505e83eee4ff28a9583a8.png

也可以在页面中查看

e14afb288c7826eeb9519847cf0c2c2f.png

其它的创建方式我们可以看下帮助

109a73af39a8b33c9c48e9b05600401e.png

我们操作下

先用list查看所有的用户表,系统表不会展示

2cccb8314df9bc951c8ba22a88cb7d88.png

创建表

一般在建表时把名称建好,最好不要修改,列簇可加,可删,不可改名称

执行

create 't1', 'f1', 'f2', 'f3'

list查看,这种是默认的namespace

dfaf7deb2e878f9f96ba64507916582d.png

页面信息显示

c976e0d8c4e89fe17a683753b09ddd67.png

执行

create 'nstest:t2', 'f1', SPLITS => ['10', '20', '30', '40']

9a85e60cbd2ac8d5cba09576935274e0.png

查看页面信息

421df303a7fdf84b76e18ddc4f468934.png

'10', '20', '30', '40'

这串信息为什么会切割出五个

上限-----》10做一个切割

10-----》20做一个切割

20-----》30做一个切割

30-----》40做一个切割

40-----》下限做一个切割

点击查看

5ed40036e7be18e20d488e1233aa0f5b.png

Table Regions

这个决定了数据存放到那台机器上(这个10是一个前缀,不是数据范围)

6cc802400f042e30ddcd0a1506d9c0e4.png

语句

create 't2', 'f1', {NUMREGIONS => 15, SPLITALGO => 'HexStringSplit'}

76ee72337e5ad2d6edc7d7e015959d71.png

查看页面

f04fe3eeee8363cf63300ed41c680326.png

查看50070:hbase用来存放所有hbase的信息的,了解data目录,存放的就是namespace目录

14a3fd498a9521e0ab68443fad57d661.png

描述表

describe 't2'或者desc 't2'

显示所有列簇的信息,每个{}里的参数可以不一样的,以{}进行区分,默认的版本号是1,早期的是3个

a66d3c8b4040155c1befcabea9967687.png

也可以查看修改信息

输入alter

1f6795ecc36d4e8f99640488c889e7ec.png

修改表

增加列簇:

alter 't2', NAME => 'f1', VERSIONS => 5(版本可以不要)

cac1da6b9935a79869019cf9b39cbe74.png

4f49f6c6c84016efc6b9d196262ca2e9.png

alter 't2', 'f2', NAME => 'f3', IN_MEMORY => true(也是增加)

这样就新增加了

24e5b9fc1e06ef0827ace5f4f6df2e90.png

修改列簇:alter 't1', NAME => 'f2', METHOD => 'delete'

就把f2这列删除了

9eb2d39315c7cfe3691b3d15b27a2773.png

如果我把这唯一的列镞删除呢

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

44edf7c96ad36b01f2f862e5c5c5b9a2.png

会报错

ERROR: org.apache.hadoop.hbase.InvalidFamilyOperationException: Family 'f1' is the only column family in the table, so it cannot be deleted

不允许删除

如果删除表呢

删除表 help 'drop' 查看信息

28a70c7a3e7b40d503781d93469773de.png

Drop the named table. Table must first be disabled:

在hbase中无论是删除还是修改都需要先禁用这张表

如果是修改,修改完再需要启用enable 't1'

禁用disable 't1'

删除drop 't1'

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值