hbase集群 数据写入_Hbase实用技巧:全量+增量数据的迁移方法

摘要:本文介绍了一种Hbase迁移的方法,可以在一些特定场景下运用。

背景

在Hbase使用过程中,使用的Hbase集群经常会因为某些原因需要数据迁移。大多数情况下,可以跟用户协商用离线的方式进行迁移,迁移离线数据的方式就比较容易了,将整个Hbase的data存储目录进行搬迁就行,但是当集群数据量比较多的时候,文件拷贝的时间很长,对客户的业务影响时间也比较长,往往在客户给的时间窗口无法完成,本文给出一种迁移思路,可以利用Hbase自身的功能,对集群进行迁移,减少集群业务中断时间。

简介

大家都知道Hbase有snapshot快照的功能,利用快照可以记录某个时间点表的数据将其保存快照,在需要的时候可以将表数据恢复到打快照时间时的样子。我们利用Hbase的snapshot可以导出某个时间点的全量数据。

因为用户的业务还在不停的写入表中,除了迁移快照时间点之前的全量数据,我们还需要将快照时间点后源源不断的增量数据也迁移走,这里如果能采用双写的方式,将数据写入两个集群就好了,但是用户的业务不会这样做,如果这样做还得保证双写的事务一致性。于是可以利用Hbase的replication功能,replication功能本身就是保留了源集群的WAL日志记录,去回放写入到目的集群,这样一来用户业务端->原始集群->目的集群便是个串形的数据流,且由Hbase来保证数据的正确性。

所以这个迁移的方法就是利用snapshot迁移全量数据,利用replication迁移增量数据。

迁移步骤

上图给出了迁移的整个时间线流程,主要有这么5个时间点。

T0: 配置好老集群A集群到新集群B的Replication关系,Replication的数据由A集群同步到集群B,将表设置成同步,从此刻开始新写入A集群表的数据会保留在WAL日志中;

T1: 生成该时间点的全量数据,通过创建快照,以及导出快照数据的方式将该时间点的数据导出到新集群B;

T2: 新集群B将T1时刻的快照数据导入,此时新集群B中会由快照创建出表,此时老集群A集群上设置的Replication的关系会自动开始将T0时刻保留的WAL日志回放至新集群B的表中,开始增量数据同步。

T3: 由于从T0-T3之间的操作会花费一段时间,此时会积累很多WAL日志文件,需要一定的时间来同步至新集群,这里需要去监控一下数据同步情况,等老集群WAL被逐渐消费完,此时可以将老集群的写业务停止一下并准备将读写业务全部切到新集群B。

T4: T3-T4之间应该是个很短的时间,整个迁移也只有这个时间点会有一定中断,此时是让用户将业务完全切到新集群B,至此迁移完成。

操作涉及的命令

1.设置集群A和集群B的peer关系

在源集群Hbase shell中, 设定peer

add_peer 'peer_name','ClusterB:2181:/Hbase'

2.在集群A的表中设置replication属性

假设目标表名为Student,先获取Family=f

进入Hbase shell中,

alter 'Student',{NAME => 'f',REPLICATION_SCOPE => '1'}

3.给集群A的表创建快照

在Hbase shell中

snapshot 'Student','Student_table_snapshot'

4.在A集群中导出快照

Hbase org.apache.hadoop.Hbase.snapshot.ExportSnapshot -snapshot Student_table_snapshot -copy-to /snapshot-backup/Student

5.将快照数据放置到集群B的对应的目录下

上面命令会导出2个目录,一个是快照元数据,一个是原始数据

将元数据放到/Hbase/.Hbase-snapshot中,将原始数据放到/Hbase/archive目录中

由于Hbase的archive目录会有个定时清理,这里可以提前将集群B的master的Hbase.master.cleaner.interval值设置大点,避免拷贝过程中发生碰巧发生了数据清理。

如果集群B中没有对应的目录,可以提前创建

hdfs dfs -mkdir -p /Hbase/.Hbase-snapshot

hdfs dfs -mkdir -p /Hbase/archive/data/default/

移动导出的snapshot文件到snapshot目录

hdfs dfs -mv /snapshot-backup/Student/.Hbase-snapshot/Student_table_snapshot /Hbase/.Hbase-snapshot/

hdfs dfs -mv /snapshot-backup/Student/archive/data/default/Student /Hbase/archive/data/default/

6.在新集群B中恢复表的快照

进入Hbase shell

restore_snapshot 'Student_table_snapshot'

恢复完成后,记得将集群B的hmaster中Hbase.master.cleaner.interval的值调整回来。

参考文档:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/487644.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络IP分配大题,2018年IP分片网络大题

【知识回顾】(1)分片的数据长度必须是8B的整数倍(2)路由器端口号也需要占用该子网中的一个IP地址。【真题】第一问:IP地址【解析】因为192.168.1.0/24这个IP均分给两个部门,所以可以销售部的网络号为0,技术部的子网号为128.即技术部子网地址为…

lte核心网由哪些设备组成_投影地面互动的实现由哪些设备组成?「振邦视界」...

地面互动投影技术是比较受大众欢迎的多媒体展示技术,新奇的互动体验让人们流连忘返,地面互动投影目前也被运用到各个行业领域中,对品牌的宣传有着很大的作用,是一种新型的利益化手段。那么地面互动投影的实现是由哪些设备组成的呢…

十二、泛型、反射和异常

一、泛型 泛型是javaSE1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 在javaSE1.5之前,没有泛型…

计算机日期的格式怎么写,在excel表格中怎么把日期格式改成文本格式(excle表格中改变日期格式)...

wps表格中如何改变日期格式平常最常是最简单的日入就是数字格式了,比如以今例,我们一般都会输入“20141214“,如图步骤阅读2①那么如何将这种格式转换成2014-12-14呢?方法:鼠标选中此单元格,然后右键鼠标选…

张首晟谈牛顿的《自然哲学的数学原理》

出版于1729年的第一英文版牛顿名著《自然哲学的数学原理》本文转载自丹华资本(DanhuaCapital )2016-01-28公众号张首晟文章。了解我的朋友都知道我最不欢喜礼品,总觉得物质生活越简单越好。所以每逢圣诞佳节,天伦之乐,…

前端填空题_一年前端面试总结|入职字节|2020.8

站在未来看现在你当像鸟飞向你的山前言普通本科,软件工程专业,2019年毕业进入奇安信集团(前360企业安全),实习期间遇到一群可以一起嗨的朋友,感觉很幸福,也很庆幸能够遇到hin nice的导师&#x…

09.07 jQuery 随意整理

IE 兼容版本的写法 <!--[if gt IE 8]> <!--> <script src"../jquery-3.2.1.min.js"></script> <!--<![endif]--> <!--[if lte IE 8]> <script src"../jquery-1.12.4.min.js"></script> …

分数怎么在计算机上关,电脑如何在注册表上关闭AutoRun功能

AutoRun是微软的windows系统的一种自动运行的文件命令&#xff0c;主要用于对于移动设施的自动运行。一些用户反馈说电脑运行AutoRun功能&#xff0c;导致系统很卡&#xff0c;有什么方法可以关闭AutoRun功能&#xff1f;其实关闭AutoRun功能方法简单&#xff0c;我们可以通过注…

【一图看全】北京新基建行动方案中的30大要点

转自&#xff1a;行业研究报告6月10日&#xff0c;北京市印发《北京市加快新型基础设施建设行动方案&#xff08;2020-2022年&#xff09;》&#xff08;以下简称“行动方案”&#xff09;&#xff0c;其中提出聚焦“新网络、新要素、新生态、新平台、新应用、新安全”六大方向…

docker port如何增加端口_docker部署redis实战

原创首发于公众号&#xff1a;编程三分钟“ 换电脑的时候不想再搭建开发环境了&#xff01;——编程三分钟”什么是dockerDocker是一个用来管理容器的应用程序&#xff0c;而容器就是模拟运行应用程序所依赖环境的一个服务。一般一个容器内只安装一个程序&#xff0c;在容器内的…

Android Studio配置GreenDAO 3.2.0和使用方法

我相信&#xff0c;在平时的开发过程中&#xff0c;大家一定会或多或少地接触到SQLite。然而在使用它时&#xff0c;我们往往需要做许多额外的工作&#xff0c;像编写SQL语句与解析查询结果等。所以&#xff0c;适用于Android ORM框架也就孕育而生了&#xff0c;现在市面上主流…

收件服务器主机名未响应,邮箱收件服务器主机名是什么

邮箱收件服务器主机名是什么 内容精选换一换FTP/SFTP连接适用于从线下文件服务器或ECS服务器上迁移文件到OBS或数据库。当前仅支持Linux操作系统的FTP 服务器。连接FTP或SFTP服务器时&#xff0c;他们的连接参数相同&#xff0c;如表1所示。FTP/SFTP连接参数参数名说明取值样例…

数字孪生技术,让酷炫的智慧城市不再遥不可及

物联网智库 整理发布智慧城市对于不同的人&#xff0c;不同的角色所处不同立场都会有不同的定义。在普通人眼中“上班不拥堵&#xff0c;下班走近路”是智慧城市......在老年人眼中“独自在家遭遇危险&#xff0c;能有人及时提供帮助”是智慧城市......在消防员眼中“火情在苗头…

python中read和readline的区别_Python中read()、readline()和readlines()三者间的区别和用法...

前言众所周知在python中读取文件常用的三种方法&#xff1a;read(),readline(),readlines()&#xff0c;今天看项目是又忘记他们的区别了。以前看书的时候觉得这东西很简单&#xff0c;一眼扫过&#xff0c;待到用时却也只知道有这么几个方法&#xff0c;不懂得它的原理与用法。…

CentOS赋予一个普通用户root权限

http://www.linuxidc.com/Linux/2012-07/64530.htm转载于:https://www.cnblogs.com/Baronboy/p/7491592.html

腾讯文档网页版登录提示服务器,腾讯文档官网地址,腾讯文档电脑版pc端登录入口...

腾讯文档是腾讯近期推出的一款多人协作在线文档产品&#xff0c;不但打通QQ、微信和PC等多个平台&#xff0c;哪么腾讯文档官网地址是什么&#xff1f;有没有电脑版&#xff0c;想在pc端编辑文档怎么办呢&#xff1f;腾讯文档没有电脑版软件&#xff0c;但腾讯文档网页版可以替…

向深度学习三剑客学习四种科研精神(上)

来源&#xff1a;陈德旺科学网博客深度学习&#xff0c;尤其是深度神经网络学习算法的兴起和大数据的加持&#xff0c;结合GPU的算力&#xff0c;如同 “三英战吕布”&#xff0c;终于搞定了人工智能这一反复无常的“吕布”&#xff0c; 使得人工智能得以第三次复兴。如今&…

val什么意思vb中的属性值_老司机带你探索Mysql中int(1)、int(10)、int(11)的区别是什么?...

在上一篇原创文章MySQL一个表的自增id用完了&#xff0c;背井大佬让我用这些姿势再往里插数据&#xff0c;最后留下了一个问题&#xff0c;大家知不知道int(1)和int(11)有什么区别&#xff0c;没有小伙伴互动回答&#xff0c;只有一位老哥让我说一下什么区别&#xff0c;我说上…

【重点】【堆】347.前K个高频元素

题目 最大的K个元素 > 小根堆&#xff08;类似上窄下宽的梯形&#xff09; 最小的K个元素 > 大根堆&#xff08;类似倒三角形&#xff09; 法1&#xff1a;小根堆 class Solution {public int[] topKFrequent(int[] nums, int k) {Map<Integer, Integer> valToC…

Nginx 反向代理+高可用

反向代理主机IP&#xff1a;10.0.0.20 WEB01主机IP : 10.0.0.22 WEB02主机IP : 10.0.0.23 反向代理主机配置&#xff1a;10.0.0.20 [rootnode1 html]# vim /etc/nginx/conf.d/web.conf server {listen 80;server_name www.wanglan.com;location / {proxy_pass http://1…