HBase的常用命令

一、general类

1、查看集群的状态

status

2、查看数据库版本

version

3、显示当前用户和组

whoami

4、查看操作表的命令

table_help

5、退出hbase

exit或者ctrl+c

二、DDL相关

注:DDL是用于定义和管理数据库中的结构的命令,例如创建,删除,修改表等操作

1、创建表

注:创建表的时候需要指定表名和列列簇
create 'student','info','detail'

也可指定更多的属性如下:
create 't1', {NAME => 'f1', VERSIONS => 1, TTL => 2592000, BLOCKCACHE => true},{NAME => 'f2',..}

2、修改表结构(添加、删除)

1添加一个列簇

alter '表名','列簇名'

2删除一个列簇

alter '表名',{NMAE=>'列簇名',METHOD=>'delete'}

3修改列簇的属性

修改f1列族的版本为5
alter 't1', NAME => 'f1', VERSIONS => 5

3、获取表的描述

describe

4、列举所有的表

list

5、表是否存在

exists

6、启用表和禁用表

enable启用表

enable 'student'

判断标是否被启动

is_enabled 'student'

disable 禁用表

disable 'student'

判断表是否被禁用

is_disabled

7、删除表

drop
当我们想要删除一个表的时候,需要先将该表禁用
disable
然后再执行删除命令,否则会报错

drop 'student'

8、获取rowKey所在的区locate_region

locate_region '表名','行键'

9、hbase中的命名空间

1、查看hbase中的命名空间

list_namespace

2、为什么要搞命名空间

答:因为hbase中没有数据库的概念,那我们怎么区分表所放的位置呢,就可以使用命名空间,可以起到分类管理表的作用

3、获取命名空间的描述

describe_namespace 'default'

4、查看命名空间下的所有表

list_naemspace_tables 'default'

5、创建命名空间

create_namespace 'bigdata32'

6、删除命名空间

drop_namespace 'bigdata32'

DML相关

注:DML指的是操作数据库语言

1、插入或者修改数据put

put '表名','行键','列族名','列值'
put '表名','行键','列族名:列名','列值'

创建表

create 'users', 'info', 'detail', 'address'

第一行数据

put 'users', 'mengday', 'info:id', '1'
put 'users', 'mengday', 'info:name', '张三'
put 'users', 'mengday', 'info:age', '28'
put 'users', 'mengday', 'detail:birthday', '1990-06-26'
put 'users', 'mengday', 'detail:email', 'abc@163.com'
put 'users', 'mengday', 'detail:create_time', '2019-03-04 14:26:10'
put 'users', 'mengday', 'address', '上海市'

第二行数据

put 'users', 'vbridbest', 'info:id', '2'
put 'users', 'vbridbest', 'info:name', '李四'
put 'users', 'vbridbest', 'info:age', '27'
put 'users', 'vbridbest', 'detail:birthday', '1990-06-27'
put 'users', 'vbridbest', 'detail:email', 'xxx@gmail.com'
put 'users', 'vbridbest', 'detail:create_time', '2019-03-05 14:26:10'
put 'users', 'vbridbest', 'address', '北京市'

第三行数据

put 'users', 'xiaoming', 'info:id', '3'
put 'users', 'xiaoming', 'info:name', '王五'
put 'users', 'xiaoming', 'info:age', '26'
put 'users', 'xiaoming', 'detail:birthday', '1990-06-28'
put 'users', 'xiaoming', 'detail:email', 'xyz@qq.com'
put 'users', 'xiaoming', 'detail:create_time', '2019-03-06 14:26:10'
put 'users', 'xiaoming', 'address', '杭州市'

2、全表扫描scan

scan '表名'

扫描整个列族

sacn 'users',{COLUMN=> '列族名'}

扫描整个列族的某一个列

scan 'users',{COLUMN=>'info:age'}

3、获取数据get

get '表名','行键'
get 'users','mengday'

根据某一行某列族的数据

get '表名', '行键', '列族名'
get 'users', 'xiaoming', 'info'

4、删除某个列族中的某个列delete

delete '表名','行键','列族名:列名'

delete 'users','xiaoming','info:age'

5、删除某行数据

deleteall '表名','行键'

deleteall 'users','xiaoming'

6、清除整个表中的数据truncate

truncate '表名'

7、自增incr

incr '表名', '行键', '列族:列名', 步长值

incr 'tbl_user', 'xiaohong', 'info:age', 1

8、计数器

get_counter
create 'counters', 'daily', 'weekly', 'monthly'
incr 'counters', '20240415', 'daily:hits', 1
incr 'counters', '20110101', 'daily:hits', 1
get_counter 'counters', '20110101', 'daily:hits'

9、修饰词

修饰词

scan '表名', {COLUMNS => [ '列族名1:列名1', '列族名1:列名2', ...]}

TIMESTAMP 指定时间戳

scan '表名',{TIMERANGE=>[timestamp1, timestamp2]}

VERSIONS

默认情况下一个列只能存储一个数据,后面如果修改数据就会将原来的覆盖掉,可以通过指定VERSIONS时HBase一列能存储多个值。

alter 'tbl_test', { NAME=>'columnFamily1', VERSIONS=>3 }

put 'tbl_test', 'rowKey1', 'columnFamily1:column1', 'value1'
put 'tbl_test', 'rowKey1', 'columnFamily1:column1', 'value2'
put 'tbl_test', 'rowKey1', 'columnFamily1:column1', 'value3'

STARTROW

ROWKEY起始行。会先根据这个key定位到region,再向后扫描
scan '表名', { STARTROW => '行键名'}

STOPROW :截止到STOPROW行,STOPROW行之前的数据,不包括STOPROW这行数据

scan '表名', { STOPROW => '行键名'}

LIMIT 返回的行数

scan '表名', { LIMIT => 行数}

10、条件过滤器

1、ValueFilter值过滤器

scan '表名', FILTER=>"ValueFilter(=,'binary:列值')"

scan '表名', FILTER=>"ValueFilter(=,'substring:列值')"

如:
scan 'tbl_user', FILTER=>"ValueFilter(=, 'binary:26')"
scan 'tbl_user', FILTER=>"ValueFilter(=, 'substring:6')"

2、ColumnPrefixFilter 列名前缀过滤器

scan '表名', FILTER=>"ColumnPrefixFilter('列名前缀')"
如:
scan 'tbl_user', FILTER=>"ColumnPrefixFilter('birth')"

posted @ 2024-11-17 21:21  你的镁偷走了我的锌  阅读(118)  评论(0)    收藏  举报