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