HBase数据迁移方案介绍
此方法与CopyTable相同,首要是将HBase表数据转换成Sequence File并dump到HDFS,也涉及Scan表数据,与CopyTable对比,还多支持差异版本数据的拷贝,同时它拷贝时不是将HBase数据直接Put到方针集群表,而是先转换成文件,把文件同步到方针集群后再通过Import到线上表。首要有两个阶段: Export阶段: 将原集群表数据Scan并转换成Sequence File到Hdfs上,因Export也是依靠于MR的,假如用到独立的MR集群的话,只要担保在MR集群上关于HBase的设置和原集群一样且能和原集群计策买通(master®ionserver计策),就可直接用Export呼吁,假如没有独立MR集群,则只能在HBase集群上开MR,若必要同步多个版本数据,可以指定versions参数,不然默认同步最新版本的数据,还可以指定命据起始竣事时刻,行使如下:
Import阶段: 将原集群Export出的SequenceFile导到方针集群对应表,行使如下:
3.3 Snapshot方法 3.3.1 snapshot先容 此方法与上面几中方法有所区别,也是今朝用得较量多的方案,snapshot字面意思即快照, 传统相关型数据库也有快照的观念,HBase中关于快照的观念界说如下: 快照就是一份元信息的合集,应承打点员规复到表的先前状态,快照不是表的复制而是一个文件名称列表,因而不会复制数据 因不拷贝现实的数据,以是整个进程是较量快的,相等于对表当前元数据状态作一个克隆,snapshot的流程首要有三个步调: 图2.数据迁徙图 加锁: 加锁工具是regionserver的memstore,目标是榨取在建设snapshot进程中对数据举办insert,update,delete操纵 刷盘:刷盘是针对当前还在memstore中的数据刷到HDFS上,担保快照数据相对完备,此步也不是逼迫的,假如不刷会,快照中数据有纷歧致风险 建设指针: snapshot进程不拷贝数据,但会建设对HDFS文件的指针,snapshot中存储的就是这些指标元数据 3.3.2 snapshot内部道理 snapshot现实内部是怎么做的呢,上面说到,snapshot只是对元数据信息克隆,不拷贝现实数据文件,我们以表test为例,这个表有三个region, 每个region别离有两个HFile,建设snapshot进程如下: 图3.snapshot建设内部道理 建设的snapshot放在目次/hbase/.hbase-snapshot/下, 元数据信息放在/hbase/.hbase-snapshot/data.manifest中, 如上图所示,snapshot中也别离包括对原表region HFile的引用,元数据信息详细包罗哪哪些呢:
因为我们表的数据在及时变革,涉及region的Hfile归并删除等操纵,对付snapshot而言,这部门数据HBase会怎么处理赏罚呢,现实上,当发明spit/compact等操纵时,HBase会将原表产生变革的HFile拷贝到/hbase/.archive目次,如上图中假如Region3的F31&F32产生变革,则F31和F32会被同步到.archive目次,这样产生修改的文件数据不至于失效,如下图所示: 图4.snapshot文件迁徙 快照中尚有一个呼吁就是clone_snapshot, 这个呼吁也很用,我们可以用它来重定名表,规复表数据等。详细用法如下:
这个呼吁也是不涉及现实数据文件的拷贝,以是执行起来很快,那拷贝的是什么呢,与上面提到的引用文件差异,它所天生的是linkfile,这个文件不包括任何内容,和上面引用文件一样的是,在产生compact等操纵时,会将原文件copy到/hbase/.archive目次。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |