HBase集群数据在线迁移方案探索

💡 原文中文,约12500字,阅读约需30分钟。
📝

内容提要

订单本地化系统已将一个月的订单的读写切换至jimkv存储,对应的HBase集群已下线。计划将存储全量数据的HBase集群中的数据迁移到jimkv,彻底下线该HBase集群。HBase客户端提供了Shell命令行接口、Java API编程接口、Thrift/REST API编程接口和MapReduce编程接口。HBase客户端访问数据行之前,需要通过元数据表定位目标数据所在RegionServer。Master负责HBase系统的管理工作,RegionServer用来响应用户的IO请求。HBase底层依赖HDFS组件存储实际数据。使用Snapshot功能可以进行全量/增量备份和数据迁移。

🎯

关键要点

  • 订单本地化系统将一个月的订单读写切换至jimkv存储,HBase集群已下线。
  • 计划将存储全量数据的HBase集群中的数据迁移到jimkv,彻底下线该HBase集群。
  • HBase客户端提供Shell命令行接口、Java API、Thrift/REST API和MapReduce编程接口。
  • HBase Master负责管理系统,RegionServer响应用户IO请求,HBase依赖HDFS存储数据。
  • WAL用于实现数据高可靠性和主从复制,BlockCache提升读取性能。
  • Region是数据表的分片,HBase通过水平切分管理Region。
  • hbase:meta表存储集群所有Region信息,MetaCache缓存Region信息以减轻hbase:meta表压力。
  • HBase客户端提供Scan API用于批量扫描数据,Scan API适用于少量数据扫描。
  • TableScanMR和SnapshotScanMR用于大数据量扫描,前者是Scan API的并行化,后者直接在客户端扫描HDFS文件。
  • Hadoop层数据迁移使用DistCp,HBase层数据迁移使用copyTable和Export/Import。
  • Snapshot备份技术不拷贝数据,速度快且保证数据一致性,适用于全量/增量备份和数据迁移。
  • 使用Snapshot时需注意集群权限和超时问题,建议增大scan缓存以减少RPC请求次数。
  • 离线批量读取时建议禁用缓存以避免影响实时业务。
🏷️

标签

➡️

继续阅读