hbase shell删除一行_HBase基本使用之DDL学习

本文介绍了如何使用HBase Shell进行表的操作,包括启动HBase Shell、查看帮助、创建、查看和删除表,以及列簇管理。详细讲解了创建表时的命名规则、列簇设置,以及数据分布的原理。
摘要由CSDN通过智能技术生成

先将服务启动

814d52083e61e0cd3ebcd4d8b43db169.png

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

在hbase目录下执行

bin/hbase

有很多说明

0bd022f03d2426d8259324b3548eedad.png

进入客户端

bin/hbase shell

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

a7859779ba3353e3355ea7ab0ba2a175.png

查看帮助信息help

bafe49b2e3f2c3d8c733ff6f1fd22566.png

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

e9507216ee236990ea16d2a6bca287d2.png

status

1baa194def6b2a2f6efbdc547c1538e2.png

version: 提供正在使用HBase版本

b9ab54894ee4f68dbe7df3b3c5655f07.png

Version

3d650a2f5d44cd3d378e093805878e5b.png

whoami: 提供有关用户的信息

a98b09eb4ae305cbb65af11b71696959.png

Whoami

7c5b4c3c4407ca2b6afc15c353018f9a.png

table_help: 表引用命令提供帮助

0dd713ccce3c5b9d7d9cccf9cce5cf97.png

table_help

ade5e77b32088afbe00fdb21647cd4e4.png

namespace

37a64798a4392180ce9687fae10f1ce6.png

展示namespace

list_namespace

3dbed252b5cbb7170f5abe3eaa1b7019.png

创建namespace

create_namespace 'nstest'

88812974b8d81fa745cb0067e05db519.png

描述namespace

describe_namespace 'nstest'

3ac622230ba9f119fe15f25179d8e443.png

删除namespace

drop_namespace 'nstest'

99b9556e84519caae79c4b949b943e58.png

Group name: ddl

f4eb5ac70e03870621f7e3b0b5423f2f.png

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

ea901426983a87866d06c8864f0ff697.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}

40f3b34854dbdba81a967d7cb79a9d4b.png

也可以在页面中查看

0c013d6feaa58793b316d89f40ba50ea.png

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

4719825d414ec2798362d3c5d7411950.png

我们操作下

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

689b24b088fc2a3f2cdc8f1901913c11.png

创建表

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

执行

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

list查看,这种是默认的namespace

f65c017433c02a96ab68e7133cd102b9.png

页面信息显示

c812b117a8e5a90ea4559f9c91f546b8.png

执行

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

521ce56e8920c32f37c0663145ac042a.png

查看页面信息

70d33a84d3353a0dbb29fb6c013964dc.png

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

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

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

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

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

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

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

点击查看

a846bcb69d42f9b21ff2231d9430d135.png

Table Regions

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

28531da5c027139e490f3ccbeaede2b8.png

语句

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

5e2b1d51f1fad12c1204fe1c59368602.png

查看页面

7b8747c6935deab827163b399f6884d4.png

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

6d5fa2c59e4258486b973c69597e28b0.png

描述表

describe 't2'或者desc 't2'

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

08f68e34da604386089ff1395c3c0aa2.png

也可以查看修改信息

输入alter

a829d2f6e075813b094ae4ea8639bfe0.png

修改表

增加列簇:

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

8a917406878dff1b4cbb79088eeebf74.png

499af2ebfa0489f63613f0b9ea4adc2e.png

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

这样就新增加了

9fd72677adb0cdca782ecb28490ca9eb.png

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

就把f2这列删除了

36f8cd6900df568fcc302acfee228ecd.png

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

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

dd052c94ec9e5f51b6752eafe7d297d0.png

会报错

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

不允许删除

如果删除表呢

删除表 help 'drop' 查看信息

13a7c96dcd63008b6aa3573dcc92c7d1.png

Drop the named table. Table must first be disabled:

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

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

禁用disable 't1'

删除drop 't1'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值