hbase在debian上的数据存储位置
在 debian 上,hbase 的数据默认存放在 hadoop 的 hdfs 上,由配置项 hbase.rootdir 指定,常见默认值为 hdfs://namenode:8020/hbase(若未显式配置,hbase 也会在 hdfs 上使用根目录 /hbase)。因此实际数据并不在本地磁盘,而是在 hdfs 的该根路径下。
hdfs上的默认目录结构
在 hdfs 的 hbase 根目录下,典型结构与用途如下(仅列核心项):
- /hbase
- wals/:各 regionserver 的预写日志(hlog),用于故障恢复
- oldwals/:滚动后的历史 wal
- data/:用户与系统表数据
- default/:默认命名空间下的用户表
- hbase/:系统表(如 hbase:meta、namespace、acl)
- hbase.id:集群唯一 id
- hbase.version:hbase 存储格式版本
- archive/:表归档与快照等
- .tmp:表操作临时目录
说明:hbase 的数据文件以 hfile 形式落在 data/ 下对应表/列族/region 目录中;hlog(wal)位于 wals/ 下,用于写入前日志落盘与回放。
本地磁盘上会存放的内容
- 本地仅保存进程与临时运行时文件,例如:
- zookeeper 数据(若由 hbase 管理):由 hbase.zookeeper.property.dataDir 指定,常见为 /var/lib/zookeeper
- hbase 临时目录(hbase.tmp.dir,若设置):本地临时文件
- 日志:hbase 各守护进程的本地日志(如 master/regionserver 日志)
- 配置与安装目录:如 /usr/local/hbase/conf、/opt/hbase-2.4.x/ 等
这些本地路径与“表数据在 hdfs 上”互不冲突,生产环境的实际业务数据不会存放在本地磁盘。
如何确认你的集群的实际路径
- 查看 hbase.rootdir:在 hbase-site.xml 中查找 hbase.rootdir 的值(如 hdfs://namenode:8020/hbase),该值即为 hdfs 上的根目录。
- 在 hbase shell 中快速查看根目录内容(需 hdfs 可用):
- list_namespace_tables ‘hbase’
- 或使用 hdfs dfs -ls /hbase 查看 hdfs 上 hbase 目录结构
- 若你使用的是本地模式(非分布式),hbase.rootdir 可能指向本地文件系统路径(如 file:///tmp/hbase),此时数据会落在本地指定目录;但在生产部署中通常为 hdfs。