Ubuntu如何管理HBase数据存储
导读:Ubuntu下管理HBase数据存储 一 架构与关键路径 存储层级:HBase在Ubuntu上通常将持久化数据存放在HDFS,表数据以HFile格式落盘,写入先进入MemStore(内存缓冲),并通过HLog(WAL)保障故障恢复;HFi...
Ubuntu下管理HBase数据存储
一 架构与关键路径
- 存储层级:HBase在Ubuntu上通常将持久化数据存放在HDFS,表数据以HFile格式落盘,写入先进入MemStore(内存缓冲),并通过HLog(WAL)保障故障恢复;HFile不可变,周期性Compaction合并小文件以维持性能。
- 核心配置:通过hbase.rootdir指定HBase在HDFS上的根目录(如:hdfs://namenode:9000/hbase);通过hbase.cluster.distributed切换单机/分布式;通过hbase.zookeeper.quorum与hbase.zookeeper.property.dataDir配置ZooKeeper。
- 目录与进程要点:HBase根目录(HDFS上的/hbase)包含表、列族、Region等数据;本地还应有ZooKeeper数据目录与HBase日志目录($HBASE_HOME/logs)。
二 配置数据存储位置
- 伪分布式或集群(推荐将数据放在HDFS)
- 配置Hadoop的core-site.xml与hdfs-site.xml(如:fs.defaultFS=hdfs://localhost:9000,dfs.replication=1用于伪分布式)。
- 配置HBase的hbase-site.xml:
- hbase.rootdir=hdfs://localhost:9000/hbase
- hbase.cluster.distributed=true
- hbase.zookeeper.quorum=localhost
- hbase.zookeeper.property.dataDir=/usr/local/hbase/zk
- 首次启动前格式化HDFS:hdfs namenode -format;启动顺序:HDFS →(如需)ZooKeeper → HBase。
- 验证:hdfs dfs -ls /hbase 应能看到HBase目录结构。
- 单机本地存储(仅测试/学习)
- 在hbase-site.xml设置:hbase.rootdir=file:///home/ubuntu/hbase-data(避免使用默认/tmp,防止重启丢数据);hbase.cluster.distributed=false;按需设置hbase.zookeeper.property.dataDir。
- 外部ZooKeeper
- hbase-env.sh 中设置:HBASE_MANAGES_ZK=false;hbase-site.xml 中配置 hbase.zookeeper.quorum=zk1,zk2,zk3。
三 日常运维与数据管理
- 容量与目录
- 规划HDFS空间:HBase占用≈原始数据×副本数(伪分布式副本数常为1);定期检查HDFS容量与健康。
- 本地目录权限与路径:确保HBASE_HOME、ZooKeeper数据目录、日志目录可写;避免/tmp等易清理目录。
- 写入与存储优化
- 合理设计RowKey(散列/加盐)避免热点;按访问模式规划列族数量与属性。
- 启用压缩(如SNAPPY/GZ)降低存储与网络开销;结合业务调整块缓存与Compaction策略以减少IO抖动。
- 备份与恢复
- 使用快照进行在线备份与克隆:create ‘snapshot_name’, ‘table’;list_snapshots;restore_snapshot ‘snapshot_name’;亦可用Export/Import跨集群迁移。
- 监控与排错
- Web UI:HDFS NameNode 9870,HBase Master 16010;查看Region分布、StoreFile数量、请求延迟等。
- 日志与常见问题:检查$HBASE_HOME/logs;关注端口冲突(如16010/2181/9000)、ZooKeeper连接、HDFS权限/路径错误、Java版本不兼容等。
四 常用命令清单
- HDFS与目录
- 查看HBase在HDFS:hdfs dfs -ls /hbase
- 创建测试文件:echo “test” | hdfs dfs -put - /hbase/test
- HBase Shell(数据面)
- 建表:create ‘t’, ‘cf’
- 写入:put ‘t’, ‘r1’, ‘cf:c1’, ‘v1’
- 查询:get ‘t’, ‘r1’;scan ‘t’
- 快照:create ‘t_snap’, ‘t’;list_snapshots;restore_snapshot ‘t_snap’
- 服务与进程
- 启动/停止:start-hbase.sh / stop-hbase.sh
- 进程检查:jps(应见HMaster/HRegionServer等)
- 版本与连通
- 版本:hbase version
- UI:http://:16010(HBase Master),http://:9870(HDFS NameNode)
五 模式与配置速查表
| 运行模式 | hbase.rootdir 示例 | 关键配置要点 |
|---|---|---|
| 单机本地 | file:///home/ubuntu/hbase-data | hbase.cluster.distributed=false;设置本地ZooKeeper数据目录 |
| 伪分布式 | hdfs://localhost:9000/hbase | dfs.replication=1;HBASE_MANAGES_ZK=true;访问HDFS与HBase UI验证 |
| 完全分布式 | hdfs://namenode:9000/hbase | hbase.cluster.distributed=true;regionservers列出所有RegionServer;可用backup-masters配置备用Master |
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu如何管理HBase数据存储
本文地址: https://pptw.com/jishu/784574.html
