Jast blog Jast blog
首页
  • 《Ambari自定义开发教程》笔记
  • 《CDH教程》笔记
  • 《ClickHouse教程》笔记
  • 《HDFS教程》笔记
  • 《DolphinScheduler教程》笔记
  • 《Hbase教程》笔记
  • 《Iceberg教程》笔记
  • 《Hive教程》笔记
  • 《Flume教程》笔记
  • 《Kafka教程》笔记
  • 《Impala教程》笔记
  • 《Hue教程》笔记
  • 《Spark教程》笔记
  • 《Flink教程》笔记
  • 《Phoenix教程》笔记
  • 《ElasticSearch教程》笔记
  • 《Kylin教程》笔记
  • 《Storm教程》笔记
  • 《Yarn教程》笔记
  • 《Presto教程》笔记
  • 《图数据库教程》笔记
  • 《Kerberos教程》笔记
  • 《Maxwell教程》笔记
  • 《MinIO教程》笔记
  • 《DataX教程》笔记
  • 《Superset教程》笔记
  • 《IOTDB教程》笔记
  • 《大数据相关》笔记
  • 《PaddleNLP教程》笔记
  • 《Nginx教程》笔记
  • 《Java技术文档》
  • 《Maven教程》笔记
  • 《IDEA使用教程》
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档

Jast-zsh

如果你知道你要去哪里,全世界都会给你让路。
首页
  • 《Ambari自定义开发教程》笔记
  • 《CDH教程》笔记
  • 《ClickHouse教程》笔记
  • 《HDFS教程》笔记
  • 《DolphinScheduler教程》笔记
  • 《Hbase教程》笔记
  • 《Iceberg教程》笔记
  • 《Hive教程》笔记
  • 《Flume教程》笔记
  • 《Kafka教程》笔记
  • 《Impala教程》笔记
  • 《Hue教程》笔记
  • 《Spark教程》笔记
  • 《Flink教程》笔记
  • 《Phoenix教程》笔记
  • 《ElasticSearch教程》笔记
  • 《Kylin教程》笔记
  • 《Storm教程》笔记
  • 《Yarn教程》笔记
  • 《Presto教程》笔记
  • 《图数据库教程》笔记
  • 《Kerberos教程》笔记
  • 《Maxwell教程》笔记
  • 《MinIO教程》笔记
  • 《DataX教程》笔记
  • 《Superset教程》笔记
  • 《IOTDB教程》笔记
  • 《大数据相关》笔记
  • 《PaddleNLP教程》笔记
  • 《Nginx教程》笔记
  • 《Java技术文档》
  • 《Maven教程》笔记
  • 《IDEA使用教程》
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
  • HbaseShell命令
  • HbaseJMX监控
  • 协处理器使用
  • Hbase基于Snapshot数据迁移
    • 迁移步骤
      • 1. 在新集群上创建与原集群表结构一致的表
      • 2. 在源集群中创建快照
      • 3. 导出快照到目标集群
      • 4. 将快照同步到目标集群的 HDFS
      • 5. 删除临时快照存储目录
      • 5. 恢复快照至 HBase 表
      • 6. 测试恢复的表数据
  • hbase-server下载javax el失败
  • Hbase表无法disable
  • spark executor cores设置未生效
  • namespace rit问题处理
  • HbaseRIT问题解决
  • Docker运行Hbase单节点
  • 《Hbase教程》笔记
Jast-zsh
2023-03-20
目录

Hbase基于Snapshot数据迁移

# HBase 基于 Snapshot 迁移

HBase 表基于 Hadoop HDFS 构建,因此迁移可以从两个维度进行:HDFS 层面的 distcp 迁移,以及 HBase 层面的工具迁移。本文将重点介绍推荐的 Snapshot 迁移方案。

img 图 1. HBase 多种迁移方案

基于 Snapshot 的迁移具有快速、可靠的优势,尤其在跨集群操作时效率更高。以下是基于 Snapshot 的具体迁移步骤。

# 迁移步骤

# 1. 在新集群上创建与原集群表结构一致的表

首先,在目标集群中手动创建与源集群中相同的表结构。这确保在恢复 Snapshot 时,表能正确匹配。

# 2. 在源集群中创建快照

使用 HBase Shell,在源集群中创建当前表的快照。

$ ./bin/hbase shell  
hbase> snapshot 'myTable', 'myTableSnapshot'  
1
2
  • 'myTable' 是 HBase 表名
  • 'myTableSnapshot' 是快照名称

你可以使用 list_snapshots 命令查看创建的快照,也可以通过 delete_snapshot 删除快照:

hbase> list_snapshots  
hbase> delete_snapshot 'myTableSnapshot'  
1
2

# 3. 导出快照到目标集群

使用 ExportSnapshot 工具,将快照从源集群导出到目标集群的 HDFS 中。

hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot \
    -snapshot myTableSnapshot \
    -copy-to hdfs://10.0.0.38:4007/apps/hbase/data/temp_snapshot/myTableSnapshot
1
2
3
  • hdfs://10.0.0.38:4007 是源集群的 fs.defaultFS 值(在 core-site.xml 文件中可找到)
  • -copy-to 指定目标快照存储位置,如:${hbase.rootdir}/temp_snapshot/{快照名称}

此时,系统将启动一个 MapReduce 任务,导出大数据量时,可以通过增加 -mappers 16 -bandwidth 200 指定 mapper 数量和带宽(例如 200MB/sec)。

# 4. 将快照同步到目标集群的 HDFS

在目标集群中执行如下命令,将快照数据从 HDFS 复制到 HBase 的 rootdir 目录中:

hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot \
    -snapshot myTableSnapshot \
    -copy-from /apps/hbase/data/temp_snapshot/myTableSnapshot \
    -copy-to /hbase/
1
2
3
4
  • -copy-from 表示快照在源集群的存储位置
  • -copy-to 表示目标集群中 HBase 的 rootdir 目录

注意: 完成复制后,需要检查目标集群中 HDFS 目录的权限。如果所有者是 hdfs,需要修改为 hbase,否则会在恢复时遇到权限问题:

hdfs dfs -chown -R hbase /apps/hbase/data
1

# 5. 删除临时快照存储目录

hdfs dfs -rmr /apps/hbase/data/temp_snapshot/myTableSnapshot
1

# 5. 恢复快照至 HBase 表

禁用目标集群中的目标表,然后使用快照恢复数据:

hbase> disable 'myTable'  
hbase> restore_snapshot 'myTableSnapshot'  
hbase> enable 'myTable'  
1
2
3

# 6. 测试恢复的表数据

最后,可以通过一些简单的 HBase 表操作测试恢复是否成功,确保数据和结构一致。

上次更新: 2024/09/27, 21:00:17
协处理器使用
hbase-server下载javax el失败

← 协处理器使用 hbase-server下载javax el失败→

最近更新
01
Linux可视化监控
02-26
02
Maven私服搭建
02-26
03
当ElasticSearch时间字段设置多个格式到底是用的哪个?
01-19
更多文章>
Theme by Vdoing | Copyright © 2016-2025 Jast-zsh | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式