一、拉取镜像
(推荐镜像:功能完整、内置 ZooKeeper)
docker pull harisekhon/hbase
二、启动 HBase 容器
docker run -d --name hbase \
-m 1g \
--memory-swap 1g \
--ulimit nofile=65535:65535 \
-p 16010:16010 -p 2181:2181 \
harisekhon/hbase
参数解释:
参数 | 说明 |
---|---|
-d |
后台运行 |
--name hbase |
容器名 hbase |
-m 1g |
限制最大内存为 1GB |
--ulimit nofile=65535:65535 |
增加最大文件描述符限制 |
-p 16010:16010 |
HBase Web UI 端口 |
-p 2181:2181 |
ZooKeeper 端口 |
访问:http://主机IP:16010/
三、简单操作
由于我的服务器有部署其他的docker,这里我把内存调小一点
1、进入容器
docker exec -it hbase bash
2、启动 HBase Shell
export HBASE_HEAPSIZE=512
hbase shell
3、HBase Shell 测试操作
创建表
create 'student', 'info'
插入数据
put 'student', '1001', 'info:name', '张三'
put 'student', '1001', 'info:age', '21'
查询数据
get 'student', '1001'
scan 'student'
更新数据(重复 put 会覆盖)
put 'student', '1001', 'info:age', '22'
插入多条数据
为了测试删除的几个操作
put 'student', '1002', 'info:name', '李四'
put 'student', '1002', 'info:age', '20'
put 'student', '1003', 'info:name', '王五'
put 'student', '1003', 'info:age', '22'
put 'student', '1004', 'info:name', '赵六'
put 'student', '1004', 'info:age', '19'
查看:
scan 'student'
删除某个字段
delete 'student', '1003', 'info:age'
查看:
get 'student', '1003'
删除一整行
deleteall 'student', '1004'
get 'student', '1004'
删除表
HBase 中删除表需先禁用,再删除:
disable 'student'
drop 'student'
删除后验证的方法:
- 使用 list 命令查看当前所有表
list
- 使用 exists? 命令判断表是否存在