百科经验 > 百态 > 正文

​hbase kudu hbase demo

2025-12-01 17:49 来源:网络 点击:

hbase kudu hbase demo

先将服务启动

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

在hbase目录下执行

bin/hbase

有很多说明

进入客户端

bin/hbase shell

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

查看帮助信息help

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

status

version: 提供正在使用HBase版本

Version

whoami: 提供有关用户的信息

Whoami

table_help: 表引用命令提供帮助

table_help

namespace

展示namespace

list_namespace

创建namespace

create_namespace nstest

描述namespace

describe_namespace nstest

删除namespace

drop_namespace nstest

Group name: ddl

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

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}

也可以在页面中查看

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

我们操作下

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

创建表

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

执行

create t1, f1, f2, f3

list查看,这种是默认的namespace

页面信息显示

执行

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

查看页面信息

10, 20, 30, 40

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

上限—–》10做一个切割

10—–》20做一个切割

20—–》30做一个切割

30—–》40做一个切割

40—–》下限做一个切割

点击查看

Table Regions

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

语句

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

查看页面

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

描述表

describe t2或者desc t2

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

也可以查看修改信息

输入alter

修改表

增加列簇:

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

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

这样就新增加了

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

就把f2这列删除了

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

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

会报错

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

不允许删除

如果删除表呢

删除表 help drop 查看信息

Drop the named table. Table must first be disabled:

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

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

禁用disable t1

删除drop t1