HBase 系列(五)——HBase常用 Shell 命令

释放双眼,带上耳机,听听看~!

一、基本命令

打开Hbase Shell:


1
2
3
1# hbase shell
2
3

1.1 获取帮助


1
2
3
4
5
6
1# 获取帮助
2help
3# 获取命令的详细信息
4help 'status'
5
6

1.2 查看服务器状态


1
2
3
1status
2
3

1.3 查看版本信息


1
2
3
1version
2
3

二、关于表的操作

2.1 查看所有表


1
2
3
1list
2
3

2.2 创建表

命令格式: create ‘表名称’, ‘列族名称1’,‘列族名称2’,‘列名称N’


1
2
3
4
1# 创建一张名为Student的表,包含基本信息(baseInfo)、学校信息(schoolInfo)两个列族
2create 'Student','baseInfo','schoolInfo'
3
4

2.3 查看表的基本信息

命令格式:desc ‘表名’


1
2
3
1describe 'Student'
2
3

2.4 表的启用/禁用

enable和disable可以启用/禁用这个表,is_enabled和is_disabled来检查表是否被禁用


1
2
3
4
5
6
7
8
9
10
1# 禁用表
2disable 'Student'
3# 检查表是否被禁用
4is_disabled 'Student'
5# 启用表
6enable 'Student'
7# 检查表是否被启用
8is_enabled 'Student'
9
10

2.5 检查表是否存在


1
2
3
1exists 'Student'
2
3

2.6 删除表


1
2
3
4
5
6
1# 删除表前需要先禁用表
2disable 'Student'
3# 删除表
4drop 'Student'
5
6

三、增删改

3.1 添加列族

命令格式: alter ‘表名’, ‘列族名’


1
2
3
1alter 'Student', 'teacherInfo'
2
3

3.2 删除列族

命令格式:alter ‘表名’, {NAME => ‘列族名’, METHOD => ‘delete’}


1
2
3
1alter 'Student', {NAME => 'teacherInfo', METHOD => 'delete'}
2
3

3.3 更改列族存储版本的限制

默认情况下,列族只存储一个版本的数据,如果需要存储多个版本的数据,则需要修改列族的属性。修改后可通过desc命令查看。


1
2
3
1alter 'Student',{NAME=>'baseInfo',VERSIONS=>3}
2
3

3.4 插入数据

命令格式:put ‘表名’, ‘行键’,‘列族:列’,‘值’

注意:如果新增数据的行键值、列族名、列名与原有数据完全相同,则相当于更新操作


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
1put 'Student', 'rowkey1','baseInfo:name','tom'
2put 'Student', 'rowkey1','baseInfo:birthday','1990-01-09'
3put 'Student', 'rowkey1','baseInfo:age','29'
4put 'Student', 'rowkey1','schoolInfo:name','Havard'
5put 'Student', 'rowkey1','schoolInfo:localtion','Boston'
6
7put 'Student', 'rowkey2','baseInfo:name','jack'
8put 'Student', 'rowkey2','baseInfo:birthday','1998-08-22'
9put 'Student', 'rowkey2','baseInfo:age','21'
10put 'Student', 'rowkey2','schoolInfo:name','yale'
11put 'Student', 'rowkey2','schoolInfo:localtion','New Haven'
12
13put 'Student', 'rowkey3','baseInfo:name','maike'
14put 'Student', 'rowkey3','baseInfo:birthday','1995-01-22'
15put 'Student', 'rowkey3','baseInfo:age','24'
16put 'Student', 'rowkey3','schoolInfo:name','yale'
17put 'Student', 'rowkey3','schoolInfo:localtion','New Haven'
18
19put 'Student', 'wrowkey4','baseInfo:name','maike-jack'
20
21

3.5 获取指定行、指定行中的列族、列的信息


1
2
3
4
5
6
7
8
1# 获取指定行中所有列的数据信息
2get 'Student','rowkey3'
3# 获取指定行中指定列族下所有列的数据信息
4get 'Student','rowkey3','baseInfo'
5# 获取指定行中指定列的数据信息
6get 'Student','rowkey3','baseInfo:name'
7
8

3.6 删除指定行、指定行中的列


1
2
3
4
5
6
1# 删除指定行
2delete 'Student','rowkey3'
3# 删除指定行中指定列的数据
4delete 'Student','rowkey3','baseInfo:name'
5
6

四、查询

hbase中访问数据有两种基本的方式:

  • 按指定rowkey获取数据:get方法;
  • 按指定条件获取数据:scan方法。

scan可以设置begin和end参数来访问一个范围内所有的数据。get本质上就是begin和end相等的一种特殊的scan。

4.1Get查询


1
2
3
4
5
6
7
8
1# 获取指定行中所有列的数据信息
2get 'Student','rowkey3'
3# 获取指定行中指定列族下所有列的数据信息
4get 'Student','rowkey3','baseInfo'
5# 获取指定行中指定列的数据信息
6get 'Student','rowkey3','baseInfo:name'
7
8

4.2 查询整表数据


1
2
3
1scan 'Student'
2
3

4.3 查询指定列簇的数据


1
2
3
1scan 'Student', {COLUMN=>'baseInfo'}
2
3

4.4 条件查询


1
2
3
4
1# 查询指定列的数据
2scan 'Student', {COLUMNS=> 'baseInfo:birthday'}
3
4

除了列(COLUMNS)修饰词外,HBase还支持Limit(限制查询结果行数),STARTROW(ROWKEY起始行,会先根据这个key定位到region,再向后扫描)、STOPROW(结束行)、TIMERANGE(限定时间戳范围)、VERSIONS(版本数)、和FILTER(按条件过滤行)等。

如下代表从rowkey2这个rowkey开始,查找下两个行的最新3个版本的name列的数据:


1
2
3
1scan 'Student', {COLUMNS=> 'baseInfo:name',STARTROW => 'rowkey2',STOPROW => 'wrowkey4',LIMIT=>2, VERSIONS=>3}
2
3

4.5 条件过滤

Filter可以设定一系列条件来进行过滤。如我们要查询值等于24的所有数据:


1
2
3
1scan 'Student', FILTER=>"ValueFilter(=,'binary:24')"
2
3

值包含yale的所有数据:


1
2
3
1scan 'Student', FILTER=>"ValueFilter(=,'substring:yale')"
2
3

列名中的前缀为birth的:


1
2
3
1scan 'Student', FILTER=>"ColumnPrefixFilter('birth')"
2
3

FILTER中支持多个过滤条件通过括号、AND和OR进行组合:


1
2
3
4
1# 列名中的前缀为birth且列值中包含1998的数据
2scan 'Student', FILTER=>"ColumnPrefixFilter('birth') AND ValueFilter ValueFilter(=,'substring:1998')"
3
4

PrefixFilter用于对Rowkey的前缀进行判断:


1
2
3
1scan 'Student', FILTER=>"PrefixFilter('wr')"
2
3

更多大数据系列文章可以参见个人 GitHub 开源项目: 程序员大数据入门指南

给TA打赏
共{{data.count}}人
人已打赏
安全运维

OpenSSH-8.7p1离线升级修复安全漏洞

2021-10-23 10:13:25

安全运维

设计模式的设计原则

2021-12-12 17:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索