【博学谷学习记录】超强总结,用心分享 | 狂野大数据-HBase学习分享

本文详细介绍了HBase的基本和高级Shell操作,包括创建表、插入数据、查询、修改和删除等操作。重点讲解了过滤查询的使用,如PrefixFilter、QualifierFilter和SingleColumnValueFilter等,以及whoami、exists和alter等实用命令。这些内容对于理解和管理HBase数据库至关重要。
摘要由CSDN通过智能技术生成


一、HBase的基本shell操作

# 1、进入HBase的操作命令的控制台
hbase(main):001:0> hbase shell
# 2、查看帮助文档
hbase(main):001:0> help
# 3、查看具体命令如何使用
hbase(main):001:0> help '命令'
#3、创建表create
# create '表名', '列族1','列族2'......
hbase(main):001:0> create 'test01','f1','f2'
# 4、查看HBase有哪些所有表
hbase(main):001:0> list
# 5、表添加数据put
# put '表名', 'rowkey值','列族:列名','列值'
hbase(main):001:0> put 'test01','rk0001','f1:name','zhangsan'
hbase(main):001:0> put 'test01','rk0001','f1:age',23
hbase(main):001:0> put 'test01','rk0001','f2:address','上海'
# 6、按行键(rowkey)查询数据(一下中括弧‘[]’表示中间内容为可选条件)
get '表名','rowkey值'[,'列族1','列族2'... || '列族1:列名1','列族2:列名2'... || '列族1','列族1:列名1'... ]
hbase(main):001:0> get 'test01','rk0001','f1','f2:address'
# 7、修改表数据:修改就是新增使用put
hbase(main):001:0> put 'test01','rk0001','f1:name','beijin'
# 8、delete(只能删除某行的某列数据,默认只删除最新的版本)
# delete '表名','rowkey','列族:列名'
hbase(main):001:0> delete 'test01','rk0001','f1:name'
# 9、deleteAll(支持删除整行数据,直接将所有的版本全部都删除)
# deleteall '表名','rowkey' [,'列族:列名']
# deleteall '表名','rowkey'
hbase(main):001:0> deleteall 'test01','rk0001'
hbase(main):001:0> delete 'test01','rk0001','f1:name'
# 10、describe(desc)查看表结构
# describe '表名'/ desc '表名'
hbase(main):001:0> describe 'test01'
hbase(main):001:0> desc 'test01'
# 11、truncate 清空表
# truncate '表名'
hbase(main):001:0> truncate 'test01'
# 12、drop 删除表(表必须是禁用状态才可以删除)
# drop '表名'
hbase(main):001:0> drop 'test01'
# 13、disable 禁用表
# disable '表名'
hbase(main):001:0> disable 'test01'
# 14、enable 启用表
# enable '表名'
hbase(main):001:0> enable 'test01'
# 15、scan 查询多条数据
# scan '表名'[,{COLUMNS=>['列族1','列族2'] || COLUMNS=>['列族1','列族2:列名'] || COLUMNS=>['列族1:列名','列族2:列名'], FORMATTER=>'toString', LIMIT=>N,STARTROW=>'起始rowkey', ENDROW=>'结束rowkey']
# STARTROW=>'起始rowkey', ENDROW=>'结束rowkey' ,左闭右开
# FORMATTER=>'toString' 用于显示中文
# LIMIT=>N :  显示前N行数据
hbase(main):001:0> scan 'test01'
# 16、count 查看表共计多少条数据
hbase(main):001:0> count 'test01'

二、HBase的高级shell操作

2.1 过滤查询

格式:
	scan '表名',{FILTER=>"过滤器的名字(比较运算符,比较器表达式)"}

常见的过滤器:
	rowkey相关的过滤器:
		RowFilter:   实现行键字符串的比较和过滤操作
		PrefixFilter: rowkey的前缀过滤器
	
	列族过滤器:
		FamilyFilter: 列族过滤器
	列名过滤器:
		QualifierFilter: 列名过滤器
	
	列值过滤器: 
		ValueFilter: 列值过滤器, 找到符合对应列的数据值
		SingleColumnValueFilter: 在指定的列族和列名中进行比较具体的值, 将符合的数据全部都返回(包含条件的内容字段)
		SingleColumnValueExcludeFilter: 在指定的列族和列名中进行比较具体的值, 将符合的数据全部都返回(不包含条件的内容字段)


比较运算符: >  < >= <= !=

比较器: 
	    比较器                   比较器表达式
	BinaryComparator            binary:值              完整匹配字节数据
	BinaryPrefixComparator      binaryprefix: 值       匹配字节数据的前缀
	NullComparator              null                   匹配null值
	SubstringComparator         substring:值           模糊匹配操作

查询rowkey中以 rk 开头的数据
代码如下(示例):

scan 'test01',{FILTER=>"PrefixFilter('rk')"}

查询在列名中包含 a字段的列有哪些?

scan 'test01',{FILTER=>"QualifierFilter(=,'substring:a')"}

查询在f1列族下 name列中 包含 z 展示出来

# 包含条件的结果
scan 'test01',{FILTER=>"SingleColumnValueFilter('f1','name',=,'substring:z')"}
# 不包含条件的结果
scan 'test01',{FILTER=>"SingleColumnValueExcludeFilter('f1','name',=,'substring:z')"}

2.2 whoami: 显示HBase当前登录使用用户

hbase(main):001:0> whoami

在这里插入图片描述

2.3 exists: 判断表是否存在

exists 'test01'

在这里插入图片描述

2.4 alter 修改表结构信息

添加列族:
alter ‘表名’ , NAME =>‘新列族’[,VERSION=>N]

删除列族:
alter ‘表名’,‘delete’ =>‘旧列族’


总结

hbase的shell命令,相对而言就scan的过滤查询比较难,其他的都是简单的语句,有许多的过滤器的使用方法可以到官方api查询使用方法。
API 文档: https://hbase.apache.org/2.1/apidocs/index.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值