加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

HBase数据迁移方案介绍

发布时间:2019-08-09 02:23:13 所属栏目:编程 来源:ballwql
导读:一、媒介 HBase数据迁徙是很常见的操纵,今朝业界首要的迁徙方法首要分为以下几类: 图1.HBase数据迁徙方案 从上面图中可看出,今朝的方案首要有四类,Hadoop层有一类,HBase层有三类。下面别离先容一下。 二、Hadoop层数据迁徙 2.1 方案先容 Hadoop层的数

此方法与CopyTable相同,首要是将HBase表数据转换成Sequence File并dump到HDFS,也涉及Scan表数据,与CopyTable对比,还多支持差异版本数据的拷贝,同时它拷贝时不是将HBase数据直接Put到方针集群表,而是先转换成文件,把文件同步到方针集群后再通过Import到线上表。首要有两个阶段:

Export阶段: 将原集群表数据Scan并转换成Sequence File到Hdfs上,因Export也是依靠于MR的,假如用到独立的MR集群的话,只要担保在MR集群上关于HBase的设置和原集群一样且能和原集群计策买通(master&regionserver计策),就可直接用Export呼吁,假如没有独立MR集群,则只能在HBase集群上开MR,若必要同步多个版本数据,可以指定versions参数,不然默认同步最新版本的数据,还可以指定命据起始竣事时刻,行使如下:

  1. #  output_hdfs_path可以直接是方针集群的hdfs路径,也可所以原集群的HDFS路径,假如必要指定版本号,起始竣事时刻  
  2. hbase org.apache.hadoop.hbase.mapreduce.Export <tableName> <ouput_hdfs_path> <versions> <starttime> <endtime>  

Import阶段: 将原集群Export出的SequenceFile导到方针集群对应表,行使如下:

  1. #假如原数据是存在原集群HDFS,此处input_hdfs_path可所以原集群的HDFS路径,假如原数据存在方针集群HDFS,则为方针集群的HDFS路径  
  2. hbase org.apache.hadoop.hbase.mapreduce.Import <tableName> <input_hdfs_path>  

3.3 Snapshot方法

3.3.1 snapshot先容

此方法与上面几中方法有所区别,也是今朝用得较量多的方案,snapshot字面意思即快照, 传统相关型数据库也有快照的观念,HBase中关于快照的观念界说如下:

快照就是一份元信息的合集,应承打点员规复到表的先前状态,快照不是表的复制而是一个文件名称列表,因而不会复制数据

因不拷贝现实的数据,以是整个进程是较量快的,相等于对表当前元数据状态作一个克隆,snapshot的流程首要有三个步调:

HBase数据迁徙方案先容

图2.数据迁徙图

加锁: 加锁工具是regionserver的memstore,目标是榨取在建设snapshot进程中对数据举办insert,update,delete操纵

刷盘:刷盘是针对当前还在memstore中的数据刷到HDFS上,担保快照数据相对完备,此步也不是逼迫的,假如不刷会,快照中数据有纷歧致风险

建设指针: snapshot进程不拷贝数据,但会建设对HDFS文件的指针,snapshot中存储的就是这些指标元数据

3.3.2 snapshot内部道理

snapshot现实内部是怎么做的呢,上面说到,snapshot只是对元数据信息克隆,不拷贝现实数据文件,我们以表test为例,这个表有三个region, 每个region别离有两个HFile,建设snapshot进程如下:

HBase数据迁徙方案先容

图3.snapshot建设内部道理

建设的snapshot放在目次/hbase/.hbase-snapshot/下, 元数据信息放在/hbase/.hbase-snapshot/data.manifest中, 如上图所示,snapshot中也别离包括对原表region HFile的引用,元数据信息详细包罗哪哪些呢:

  1. 1. snapshot元数据信息  
  2. 2. 表的元数据信息&schema,即原表的.tableinfo文件  
  3. 3. 对原表Hfile的引用信息 

因为我们表的数据在及时变革,涉及region的Hfile归并删除等操纵,对付snapshot而言,这部门数据HBase会怎么处理赏罚呢,现实上,当发明spit/compact等操纵时,HBase会将原表产生变革的HFile拷贝到/hbase/.archive目次,如上图中假如Region3的F31&F32产生变革,则F31和F32会被同步到.archive目次,这样产生修改的文件数据不至于失效,如下图所示:

HBase数据迁徙方案先容

图4.snapshot文件迁徙

快照中尚有一个呼吁就是clone_snapshot, 这个呼吁也很用,我们可以用它来重定名表,规复表数据等。详细用法如下:

  1. hbase> clone_snapshot 'snapshot_src_table' , 'new_table_name' 

这个呼吁也是不涉及现实数据文件的拷贝,以是执行起来很快,那拷贝的是什么呢,与上面提到的引用文件差异,它所天生的是linkfile,这个文件不包括任何内容,和上面引用文件一样的是,在产生compact等操纵时,会将原文件copy到/hbase/.archive目次。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读