HBase基本操作演示
前提条件
在进行HBase操作之前,需要确保以下服务已启动:
- 启动Hadoop集群:
sbin/start-all.sh
- 启动ZooKeeper服务:
zkServer.sh start
- 启动HBase服务:
start-hbase.sh
为什么需要ZooKeeper?
ZooKeeper为HBase提供以下服务:
- 可靠的协调服务:HBase使用ZooKeeper进行节点间通信和协调。
- 管理元数据:通过ZooKeeper存储和管理表结构、Region服务器位置等元数据。
- 监控集群健康状态:监控节点健康状态,检测故障并触发处理机制。
ZooKeeper确保HBase在大规模分布式环境下的稳定和可靠性。
数据库操作演示
进入HBase客户端
hbase shell
命名空间操作
- 查看所有库(命名空间):
list_namespace
- 创建一个名称为’mydb’的库:
create_namespace 'mydb'
- 删除’mydb’库:
drop_namespace 'mydb'
表操作演示
- 查看 ‘mydb’ 库下的表:
list_namespace_tables 'mydb'
- 查看所有自己创建的表:
list
- 在 ‘mydb’ 库下创建名为test的表,并创建’f1’、'f2’两个列族:
create 'mydb:test','f1','f2'
CRUD操作
创建表
create 'stu','info'
插入数据
put 'stu','1001','info:name','linghc'
put 'stu','1001','info:sex','man'
put 'stu','1001','info:age','26'
# 更多插入操作...
查询数据
- 根据row key查询:
get 'stu','1004'
- 根据行键、列名查询:
get 'stu','1004','info:name','info:age'
扫描表数据
scan 'stu'
# 按rowkey范围扫描
scan 'stu',{STARTROW => '1001' ,STOPROW => '1003'}
# 指定STOPROW后加!实现左闭右闭
scan 'stu',{STARTROW => '1001' ,STOPROW => '1003!'}
修改数据
put 'stu','1001','info:name','linghc1'
# 注意:修改数据只是覆盖,旧版本数据仍在
查找版本数据
scan 'stu',{RAW=>true,VERSIONS=>2}
删除数据
- 删除列:
delete 'stu','1001','info:sex'
- 根据行键和列名删除列:
deleteall 'stu','1001','info:sex'
- 根据行键删除列族:
deleteall 'stu','1004'
清空表数据
truncate 'stu'
# 删除表中所有数据行,保留表结构和配置信息
结语
本文介绍了HBase的基本操作,包括启动服务、数据库和表的基本操作,以及数据的CRUD操作。掌握这些基本操作对于使用HBase进行NoSQL数据库管理至关重要。