CN110209653A - HBase数据迁移方法及迁移装置 - Google Patents
HBase数据迁移方法及迁移装置 Download PDFInfo
- Publication number
- CN110209653A CN110209653A CN201910481154.XA CN201910481154A CN110209653A CN 110209653 A CN110209653 A CN 110209653A CN 201910481154 A CN201910481154 A CN 201910481154A CN 110209653 A CN110209653 A CN 110209653A
- Authority
- CN
- China
- Prior art keywords
- hbase
- cluster
- target
- data
- source
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了HBase数据迁移方法及迁移装置,以实现对HBase数据的跨版本迁移。上述迁移方法包括:获取源HBase集群待迁移的表名;待迁移的表名所对应的表格为源HBase表格;在目标HBase集群中建立与源HBase表格对应的目标HBase表格;从配置文件中读取迁移配置参数;根据迁移配置参数,使用DistCp工具将源HBase表格的数据文件拷贝到目标HBase集群;修复目标HBase集群的HBase元信息。在本发明实施例中,基于DistCp可从源地址(源集群)直接将数据拷贝到目标地址(目标集群),从而不产生临时文件,避免了备份文件占用大量存储空间的情况的出现,保证跨版本的数据迁移得以实施。
Description
技术领域
本发明涉及计算机领域,特别涉及HBase数据迁移方法及迁移装置。
背景技术
HBase是Apache Hadoop的数据库,其能够对海量数据提供随机、实时的读写访问。
很多企业或行业使用HBase集群统一存储海量数据。随着数据集群的建设,有时候有将HBase数据从源集群迁移到目标集群的需求。HBase本身提供了一套导出、导入的工具,也即EXPORT/IMPORT,这套工具能将HBase的表数据导出到HDFS上,也可直接导出到本地磁盘;导出的表数据文件可以被导入到HBase中重新生成表。
如果源集群和目标集群的HBase版本不同,使用EXPORT/IMPORT工具是无法将源集群的表直接导出到目标集群中的,需要先将源集群中的数据(简称源数据)备份出来作为临时的中间数据文件,再传输到目标地址。这样,在源数据数据量比较大的情况下,备份文件本身将占用大量的存储空间,甚至超出硬盘的承受能力,使得数据迁移无法实施。
发明内容
有鉴于此,本发明提供HBase数据迁移方法及迁移装置,以实现对HBase数据的跨版本迁移。
为了实现上述发明目的,本发明提供以下技术方案:
一种HBase数据迁移方法,包括:
迁移装置获取源HBase集群待迁移的表名;待迁移的表名所对应的表格为源HBase表格;
所述迁移装置在目标HBase集群中建立与所述源HBase表格相对应的目标HBase表格;
所述迁移装置从配置文件中读取迁移配置参数;
所述迁移装置根据所述迁移配置参数,使用DistCp工具将所述源HBase表格的数据文件拷贝到所述目标HBase集群;
所述迁移装置修复所述目标HBase集群的HBase元信息,以使所述目标HBase表格与迁移至所述目标HBase集群的数据文件相关联。
可选的,在使用DistCp工具将所述源HBase表格的数据文件拷贝到所述目标HBase集群之前,还包括:为所述DistCp工具增设skipcrccheck参数和update参数;其中,所述skipcrccheck参数和update参数同时使用时,用于指示在拷贝时不对数据文件进行CRC校验。
可选的,在所述源HBase集群中所有待迁移表格的数据文件均拷贝至所述目标HBase集群之后,修复所述目标HBase集群的HBase元信息之前,所述方法还包括:所述迁移装置进行HDFS层的数据校验;所述迁移装置停止所述目标HBase集群的HBase写操作服务;在所述修复所述目标HBase集群的HBase元信息之后,所述方法还包括:所述迁移装置启动所述写操作服务;所述迁移装置进行HBase层的数据校验。
可选的,所述进行HDFS层的数据校验包括:使用HDFS文件系统检查工具,检查所述源HBase集群与所述目标HBase集群指定路径下的文件、目录、字节数,以及两集群的HDFS文件系统的健康状况是否完全一致;分别向所述源HBase集群和目标HBase集群发出文件检查命令,收集命令执行结果,对两执行结果进行对比,若不一致进行提醒报错;其中,执行结果包括:目录结构及各路径下的文件大小。
可选的,所述进行HBase层的数据校验包括:获取源HBase表格和目标HBase表格的分区信息,并对比是否一致;验证所述目标HBase表格是否可用;验证源HBase表格和目标HBase表格中的数据是否完全一致。
可选的,所述迁移装置执行的每一动作均具有唯一的执行标识;所述方法还包括:若在执行HBase数据迁移方法的过程中遇到错误,所述迁移装置报错退出,报错信息包括出现错误的动作的执行标识和目标路径,所述目标路径包括数据未传输完毕的路径。
可选的,在所述迁移装置报错退出后,还包括:进行断点重提操作;清理目标路径下的数据文件;重新向目标路径拷贝数据文件。
一种HBase数据迁移装置,包括:
获取单元,用于获取源HBase集群待迁移的表名;待迁移的表名所对应的表格为源HBase表格;
迁移单元,用于:
在目标HBase集群中建立与所述源HBase表格相对应的目标HBase表格;
从配置文件中读取迁移配置参数;
根据所述迁移配置参数,使用DistCp工具将所述源HBase表格的数据文件拷贝到所述目标HBase集群;
修复所述目标HBase集群的HBase元信息,以使所述目标HBase表格与迁移至所述目标HBase集群的数据文件相关联。
可选的,所述迁移单元还用于:为所述DistCp工具增设skipcrccheck参数和update参数;其中,所述skipcrccheck参数和update参数同时使用时,用于指示在拷贝时不对数据文件进行CRC校验。
可选的,在所述源HBase集群中所有待迁移表格的数据文件均拷贝至所述目标HBase集群之后,修复所述目标HBase集群的HBase元信息之前,所述迁移单元还用于:进行HDFS层的数据校验;停止所述目标HBase集群的HBase写操作服务;在所述修复所述目标HBase集群的HBase元信息之后,所述迁移单元还用于:启动所述写操作服务;进行HBase层的数据校验。
可见,在本发明实施例中,基于DistCp实现数据迁移,DistCp工具在大数据集群间复制过程中,可从源地址(源集群)直接将数据拷贝到目标地址(目标集群),从而不产生临时文件,这样,就避免了备份文件占用大量存储空间的情况的出现,保证跨版本的数据迁移得以实施。同时,没有多余的备份步骤,迁移速度很快。
附图说明
图1为本发明实施例提供的HBase数据迁移装置的一种示例性结构;
图2为本发明实施例提供的迁移方法的一种示例性流程;
图3为本发明实施例提供的迁移方法的另一种示例性流程;
图4为本发明实施例提供的直接执行第4步校验的代码示意图;
图5为本发明实施例提供的参数提示示意图;
图6为本发明实施例提供的默认从第一步开始执行的代码示意图;
图7为本发明实施例提供的从指定的步骤开始顺序往后执行的代码示意图。
具体实施方式
为了引用和清楚起见,下文中使用的技术名词、简写或缩写总结如下:
Hadoop:一种由Apache基金会主导开发的分布式系统基础架构,是目前世界上使用最为广泛的开源分布式系统平台,其生态环境内包含多种基础组件,如HDFS、HBase、MapReduce、ZooKeeper、Hive等;
HDFS:Hadoop分布式文件系统,HDFS是一个高度容错性的系统,能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS是Hadoop的基础,其他集群组件都基于HDFS运行;
HBase:是Apache Hadoop的数据库,能够对海量数据提供随机、实时的读写访问。HBase的目标是存储并处理海量数据,是一个高可靠、高性能、列存储、可伸缩、实时读写的分布式数据库,通过横向扩展增加廉价的PC服务器,可以不断增加计算和存储能力;
DistCp:分布式拷贝,是用于集群内部和集群之间大规模数据拷贝的工具,它使用Map/Reduce实现大量文件拷贝分发,错误处理和恢复,以及报告生成。DistCp把HDFS上文件和目录的列表作为MAP任务的输入,每个MAP任务会完成源列表中部分文件的拷贝。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
很多企业或行业使用HBase集群统一存储海量数据。例如银行,将各种业务系统产生的交易历史数据使用HBase集群进行统一存储。
随着数据集群的建设,有时候有将HBase数据从源集群迁移到目标集群的需求。
例如,在早期历史数据集群的建设过程中,选用了某公司发行的Hadoop商业版,其HBase的版本是0.94.1,后来随着业务的调整,INTEL已不再对其产品提供商业支持,生产系统的维保服务出现空缺。经过对比测试,科技部门选用其他公司发行的Hadoop商业版,其HBase的版本是1.2.0,这就要求将生产上存量的历史数据从之前的0.94.1集群环境迁移到1.2.0的集群环境上来。
实际上,除了EXPORT/IMPORT工具外,现有技术还有以下几种数据迁移工具或方法:
·COPYTABLE
COPYTABLE是HBASE提供的备份工具,可用于集群内部的表备份、远程集群备份、表数据增量备份、部分数据备份等场景。用法如下:
hbase org.apache.hadoop.hbase.mapreduce.CopyTable[--starttime=X][--endtime=Y][--new.name=N][--peer.adr=A]tablename
其中,“starttime”和“endtime”这两个参数是要拷贝的数据的时间范围,不指定则表示拷贝所有数据。“peer.adr”是集群的zookeeper地址。
COPYTABLE依赖于MAPREDUCE,使用标准的HBASE API完成SCAN读操作和PUT写操作,所以它的执行效率不能达到很高,同时对源集群的HBase联机性能是有影响的,比较适合少量数据的增量备份。
·SNAPSHOT
HBASE在0.94版之后提供了SNAPSHOT功能,可对表创建快照,主要用于将表恢复到以前的某个状态,并不是对集群进行数据迁移的常态方法。在集群内部创建SNAPSHOT时,不会对全表数据做备份,而只是备份表的METADATA信息,而跨集群创建SNAPSHOT时,就会实现数据的全量备份,所以也可以用于数据迁移,但老版本的HBase并不支持MOB数据的跨集群备份。
·REPLICATION
REPLICATION技术是使用协处理器的ENDPOINT实现的,基本原理是将源集群Region Server的WAL日志按顺序读取,通过ZooKeeper记录日志的offset等信息,然后向目标集群的Region Server发送信息,源集群的Region Server是EndPoint的客户端,目标集群的Region Server是EndPoint的服务端,通过protobuf协议实现RPC(Remote ProcedureCall,远程过程调用)通讯。主要应用于主从集群间的数据复制,一个主集群可以通过REPLICATION将数据复制到多个从集群上。
以上现有迁移工具或方法有如下缺点:
生成临时文件占用大量存储空间
Export/import、snapshot等方法,都需要先将数据备份出来,再传输到目标地址,在源数据量比较大的情况下,备份文件本身将占用大量的存储空间,甚至超出硬盘的承受能力,使得数据迁移无法实施。
迁移效率低下
上述几种技术工具虽然都能完成数据的迁移,但后几种技术并非专门针对数据迁移而设计,各有其特定的适用场景,数据迁移的效率都不太高,很难满足在有限的时间窗口内进行大数据量迁移的需要。有些需要中间步骤的,更是使迁移的时间成倍增长。
不能跨版本运行
在跨HBase版本操作时,有些工具不太稳定,会出现偶发异常,有些工具则根本就不能支持版本差距较大的数据迁移。
为实现跨版本的数据迁移,本发明实施例公开了HBase数据迁移方法及迁移装置。
本发明实施例所公开的技术方案未使用HBase层的数据迁移工具,而是选择基于DistCp工具进行数据迁移。
HDFS是底层的。Hive与Hbase的数据一般都存储在HDFS上,HDFS为其提供高可靠性的底层存储支持。
DistCp工具运行在HDFS层,本身不涉及HBase数据库层面的操作。相当于在文件系统中对文件进行拷贝,并不在意文件是图片还是文本,迁移效率较高,同时在迁移过程中不占用Hbase的资源,因此,对Hbase向外提供的联机查询服务的影响可控。
上述HBase数据迁移装置的一种示例性结构如图1所示,包括:获取单元1和迁移单元2。
图2示出了由HBase数据迁移装置参与执行的迁移方法的一种示例性流程,至少可包括如下步骤:
S1:迁移工具获取源HBase集群待迁移的表名;
其中,待迁移的表名所对应的表格为源HBase表格,HBase数据迁移至的集群可称为目标HBase集群。
在一个示例中,可由前述的获取单元1执行步骤S1。
当然,在实施迁移前先要搭建迁移环境,包括打通目标HBase集群和源HBase集群之间的网络、配置免密登录等。
S4:迁移装置在目标HBase集群中建立与源HBase表格相对应的目标HBase表格;
具体的,可以使用通用的建表语句建立目标HBase表格,目标HBase表格除了表名与源HBase表格不同外,其他都相同,初始建成的目标HBase表格是空白的,没有主键,只指定了一个默认的列族。
在一个示例中,可由前述的迁移单元2执行步骤S2。
在本发明其他实施例中,请参见图2,在执行步骤S4之前,还可包括如下步骤:
S2:若目标HBase集群中存在与源表格命名相同的表格,对其进行删除。
这是因为目标HBase集群里的表格是没有意义的,需要从源集群覆盖过去,所以对目标HBase集群中与源表格命名相同的表格,删除即可。
S3:在源HBase集群中对源表格执行flush操作,以确保所有数据都写入数据文件。
数据文件是HBase底层存储数据的文件,也就是HFile,存储在源集群HBase的路径下。
flush操作是用来刷新缓冲区的,即将缓冲区中的数据立刻写入数据文件,同时清空缓冲区。
需要说明的是,HBase为了提高效率,数据的改动并不直接存入集群的硬盘,而是先记录在内存缓冲区中,凑一批才写入硬盘,所以硬盘中的数据并不一定是最新的。对源表格执行flush操作的目的是强制把内存中缓存的信息写入硬盘中的数据文件,确保数据文件中的数据是最终数据。
步骤S2-S3可由前述的迁移单元2执行。
S5:迁移装置从配置文件中读取迁移配置参数。
在一个示例中,可由前述的迁移单元2执行步骤S5。
其中,配置文件的作用就是在保持不改变程序代码的情况下,可以适应任意具体的使用场景。配置文件由迁移实施者根据具体环境信息进行配置。配置文件中的迁移配置参数主要包含源、目标HBase集群的地址、路径、要执行的数据校验的类型和命令等。
S6:迁移装置根据上述迁移配置参数,使用DistCp工具将源HBase表格的数据文件拷贝到目标HBase集群。
在一个示例中,可由前述的迁移单元2执行步骤S6。
S7:迁移装置修复目标HBase集群的HBase元信息,以使目标HBase表格与迁移至目标HBase集群的数据文件相关联。
在一个示例中,可在源HBase集群中所有待迁移表格的数据文件均拷贝至目标HBase集群后,再执行步骤S7。
可由前述的迁移单元2执行步骤S7。
HBase表的元信息包括该表有多少个区域(region)、每个region的起止、行键(RowKey)、region具体的路径文件等信息。
具体的,可使用HBase自带的OfflineMetRepair命令来修复元信息。offlineMetarepair命令通过扫描拷贝过去的HFile,重新收集起这些元信息。
可见,在本发明实施例中,基于DistCp实现数据迁移,DistCp工具在大数据集群间复制过程中,可从源地址(源集群)直接将数据拷贝到目标地址(目标集群),从而不产生临时文件,这样,就避免了备份文件占用大量存储空间的情况的出现,保证跨版本的数据迁移得以实施。同时,没有多余的备份步骤,迁移速度很快。
实际上,一般HBase表的迁移不使用DistCp,是由于基于DistCp拷贝过去的数据文件,在目标HBase集群中需要恢复后重新构建出相应的HBase表格,并需要重启HBase服务,操作较繁杂。使用DISTCP还有数据校验问题需要解决:
DistCp本身带有CRC校验功能,正常情况下可以用来保证数据源和数据目标之间的一致性。但若版本跨度太大,测试中发现即使校验类型设置一致,校验结果仍然不同。
为解决上述问题,在使用DistCp工具将源HBase表格的数据文件拷贝到目标HBase集群之前,可为DistCp工具增设skipcrccheck参数和update参数。其中,skipcrccheck参数和update参数同时使用时,用于指示在拷贝时不对数据文件进行CRC校验。
在拷贝时跳过CRC校验,就要求后续通过其他手段进行数据校验。
因此,请参见图3,包括数据校验的迁移方法的一种示例性流程包括:
S301—S306与前述的S1-S6相同,在此不作赘述。
S307:在源HBase集群中所有待迁移表格的数据文件均拷贝至所述目标HBase集群之后,迁移装置进行HDFS层的数据校验;
在拷贝完毕之后,需要首先进行HDFS层的数据校验,以确保源数据文件(源HBase集群中的数据文件)与目标数据文件(目标HBase集群中的数据文件)的路径数目、文件大小等完全一致。HDFS层的校验是纯技术的,不涉及业务概念。
HDFS层的数据校验主要包括两个维度的校验:
a、fsck校验。
fsck是Hadoop自带的文件系统检查工具,可检查源HBase集群与目标HBase集群指定路径下的文件、目录、字节数,以及两集群的HDFS文件系统的健康状况是否完全一致。
相关命令包括:
IDH命令:
hadoop fsck/user/hdqs/staging/aps
ZDH命令:
hdfs fsck/tmp/aps
校验标准是:除了Totalsymlinks及检测执行时间外,其他项的值应该保持一致。
b、目录结构及各路径下的文件大小比较.
相关命令分别如下:
IDH命令:
hadoop fs-lsr/user/hdqs/staging/aps
ZDH命令:
hdfs dfs-ls-R/tmp/aps
校验标准是:从两个集群分别获得的结果列表,除日期时间外,其他项应该对比完全一致。
具体的,在数据文件拷贝到目标HBase集群后,迁移装置就自动分别向源HBase集群和目标HBase集群发出文件检查命令,收集命令执行结果,对两执行结果进行对比,若不一致进行提醒报错。
其中,执行结果可包括:目录结构及各路径下的文件大小。
S308:迁移装置停止目标HBase集群的HBaSe写操作服务;
之所以要停止写操作服务,是因为后续S309步骤中,会使用OfflineMetRepair修改元信息。而OfflineMetRepair是个离线offline命令,需要将hbase服务停止再修复。如果不停止,修复的结果可能不正确。
S309:迁移装置修复目标HBase集群的HBase元信息。
S309与前述的S7相同,在此不作赘述。
S310:迁移装置启动目标HBase集群的HBaSe写操作服务;
S311:迁移装置进行HBase层的数据校验。
HBASE层的校验是从HBASE表的角度进行的,可从以下维度进行对比。
a、表分区情况:
可获取源HBase表格和目标HBase表格的分区信息,并对比是否一致。HBASE表的分区情况可以通过访问http://hbaseMasterAddress:60010来查看,也可用hbase hbck命令来查看,但该命令的结果没有针对ROWKEY进行排序,需要自己排序后再进行比较。
IDH命令:
http://10.233.92.13:60010/table.jsp?name=hdqs_apsh
ZDH命令:
http://10.233.92.70:60010/table.jsp?name=hdqs_apsh
迁移装置使用curl-o命令,分别将两个地址的页面获取保存到本地,然后解析对比两个文件中的分区信息。需要说明的是,上述两地址的页面中包含各自的表分区信息,由于版本差异,其页面格式、显示的内容、次序等稍有不同,可只取出分区名称(Name)、开始key(Start Key)、结束key(End Key)这几个共有项进行比较。
校验标准是:对比Table Attributes和Table Regions的Name,Start Key,EndKey都分别保持一致。
b、scan操作。
该操作一是验证目标HBase表格是否可用,二是验证源HBase表格和目标HBase表格中的数据是否完全一致。
具体的,可以传入不同的STARTROW多测几次。语句分别是:
IDH命令:
hbase shell
scan'hdqs_apsh',{STARTROW=>'2',LIMIT=>3}
ZDH命令:
hbase shell
scan'hdqs_apsh',{STARTROW=>'2',LIMIT=>3}
校验标准是:查询正常,返回的结果一致。
在本发明其他实施例中,还可以选择对表的数据量进行统计对比。由于HBase数据库中统计表记录数相对比较耗时,所以该操作是可配置的,表数据量不大或者表非常重要时可以选择进行。
此外,使用DISTCP还有人机交互过多问题。这是因为,为了能够对迁移过去的表格进行及时的校验和构建确认,需要以表为单位进行迁移,每张表格都有自己的路径、分区、最优执行参数等,数据文件在源集群中的路径和目标集群中的路径也不尽相同,这在以前需要大量的人机交互操作,使得迁移效率低下,并且还很容易造成迁移过程的不完整不准确。
而本发明实施例基于DISTCP开发的迁移装置可配置、能够进行自动化数据迁移,能有效地减少数据迁移过程中的人工操作,提升迁移效率,并能保证数据迁移的快速、一致性。并且,在实施迁移时只需暂停对HBase的写操作,不影响对外的联机查询服务。
在本发明其他实施例中,上述迁移装置执行的每一动作均具有唯一的执行标识。
因此,上述迁移方法还可包括如下步骤:
若在执行HBase数据迁移方法的过程中遇到错误,迁移装置报错退出。
其中,报错信息包括出现错误的动作的执行标识和目标路径,而目标路径包括数据未传输完毕的路径。
在报错后,操作人员可以通过日志等确认问题所在,解决后再从上次报错的步骤进行断点重提操作。
此外,若在数据传输中出现异常,数据未传完毕就退出,在重提后会清理目标路径下的数据文件,全部重新传输。比如直接执行第4步校验(请参见图4)。
迁移步骤模块化的功能可以让迁移流程更加清晰,基于此实现的断点重提也有效提升了迁移的效率。
此外,迁移装置在不加参数执行时,会弹出如图5所示的参数提示。
迁移装置的第一个参数是待迁移的表名称,是必输项,第二个参数是从第几步开始执行,是选输项,如果不加第二个参数,则默认从第一步开始执行(请参见图6)。
而如果输入了第二个参数,则会从指定的步骤开始顺序往后执行(请参见图7)。
在另一个实施例中,可对全流程配置化。也即,从文件路径到操作用户,从Distcp的迁移参数到数据文件的校验,从表格和数据文件的对应关系,到表格的自动恢复,全面实现可配置。一个默认的配置文件内容如下:
#COMMON
DEFAULTCHART=UTF-8
#SERVER
IDHNAMENODEIP=xxx.xxx.xxx.xxx
ZDHNAMENODEIP=xxx.xxx.xxx.xxx
IDHHBASEMASTERIP=xxx.xxx.xxx.xxx
ZDHHBASEMASTERIP=xxx.xxx.xxx.xxx
#authenticate type should be PASSWORD or PUBLICKEY.
AUTHENTICATETYPE=PASSWORD
IDHCLIENTIP=xxx.xxx.xxx.xxx
IDHUSERNAME=usr
IDHPASSWORD=pwd
ZDHCLIENTIP=xxx.xxx.xxx.xxx
ZDHUSERNAME=usr
ZDHPASSWORD=pwd
#DISTCP#PATH
#hdfs files
IDHPATH=user
ZDHPATH=user
#hdqs.staging:externaltable
IDHPATHHIVE=user/hdqs/staging
ZDHPATHHIVE=user/hdqs/staging
#hbase
IDHPATHHBASE=hbase
ZDHPATHHBASE=hbase/data/default
#DISTCP#CMD
DISTCPTARGETCLEAR=hdfs dfs-rm-r/ZDHPATH/DISTCPTARGET
DISTCPOPTIONM=-m300
DISTCPCMD=hadoop distcp-skipcrccheck-update-p DISTCPOPTIONM hftp://IDHNAMENODEIP:50070/IDHPATH/DISTCPTARGET hdfs://ZDHNAMENODEIP:9000/ZDHPATH/DISTCPTARGET
#DATACHECK#HDFS
IDHHDFSCOMMAND1=hadoop fsck/IDHPATH/DISTCPTARGET
ZDHHDFSCOMMAND1=hdfs fsck/ZDHPATH/DISTCPTARGET
IDHHDFSCOMMAND2=hadoop fs-lsr/IDHPATH/DISTCPTARGET
ZDHHDFSCOMMAND2=hdfs dfs-ls-R/ZDHPATH/DISTCPTARGET
#BUILDHIVETABLE
#databases:default,hdqs
HIVEDATABASE=hdqs
HIVETABLEDROP=hive-e'use HIVEDATABASE;drop table TABLENAME;'
HIVETABLECREATE=hive-f HOMEPATH/transTool/hql/HIVEDATABASE.TABLENAME.hql
HIVEPARTITIONGET=hive-e'use HIVEDATABASE;show partitions TABLENAME;'
#depend on HIVEDEFAULTPATH,use difference build sql:
HIVEPARTITIONBUILD=alter table TABLENAME add if not exists partition(PARTITIONSTR)location'hdfs:///ZDHPATHHIVE/TABLEPATH/PARTITIONPATH';
HIVEPARTITIONBUILD1=load data inpath'/ZDHPATHHIVE/TABLEPATH/PARTITIONPATH/*'into table TABLENAME partition(PARTITIONSTR);
HIVEPARTITIONCREATE=hive-f HOMEPATH/transTool/hql/HIVEDATABASE.TABLENAME.partitions.hql
#DATACHECK#HIVE
#HIVECHECKLEVEL=1 then only execute COMMAND1,set to 2 will executeCOMMAND1 and COMMAND2
HIVECHECKLEVEL=1
IDHHIVECOMMAND1=hive-e'use HIVEDATABASE;show partitions TABLENAME;'
ZDHHIVECOMMAND1=hive-e'use HIVEDATABASE;show partitions TABLENAME;'
IDHHIVECOMMAND2=hive-e'use HIVEDATABASE;IDHGBKJARPATH select count(*)from TABLENAME;'
ZDHHIVECOMMAND2=hive-e'use HIVEDATABASE;ZDHGBKJARPATH select count(*)from TABLENAME;'
#BUILD HBASE TABLE
HBASETABLEDROP=echo-e"disable'TABLENAME'\ndrop'TABLENAME'\nexit"|cat>HbaseScript.tmp;hbase shell HbaseScript.tmp
HBASETABLEFLUSH=echo-e"flush'TABLENAME'\nexit"|cat>HbaseScript.tmp;hbase shell HbaseScript.tmp
HBASETABLECREATE=echo-e"create'TABLENAME',{NAME=>'f',VERSIONS=>'1',COMPRESSION=>'SNAPPY',BLOOMFILTER=>'ROW'}\nexit"|cat>HbaseScript.tmp;hbase shell HbaseScript.tmp
HBASEMETAREPAIR=hbase org.apache.hadoop.hbase.util.hbck.OfflineMetaRepair
#DATACHECK#HBASE
IDHHBASECOMMAND1=curl-o result/TABLENAME.IDHHBASE.html http://IDHHBASEMASTERIP:60010/table.jsp?name=TABLENAME
ZDHHBASECOMMAND1=curl-o result/TABLENAME.ZDHHBASE.html http://ZDHHBASEMASTERIP:60010/table.jsp?name=TABLENAME
IDHHBASECOMMAND2=echo-e"scan 'TABLENAME',{STARTROW=>'ROWKEY',LIMIT=>3}\nexit"|cat>HbaseScript.tmp;hbase shell HbaseScript.tmp
ZDHHBASECOMMAND2=echo-e"scan'TABLENAME',{STARTROW=>'ROWKEY',LIMIT=>3}\nexit"|cat>HbaseScript.tmp;hbase shell HbaseScript.tmp
HBASECOMMAND2ROWKEY=2
默认配置可以实现对大部分数据的迁移恢复。针对一些特殊情况,比如表数据量特别巨大等,可根据情况修改必要的配置项。配置化使得迁移装置具有良好的适应性,在不用修改代码的情况下,能满足各种应用场景的需求。
并且,本发明实施例提供的迁移方案,不仅仅可用于迁移HBase的数据,还可用于迁移Hive、Hdfs等其他组件的集群数据,只要增加相关的建表、校验、及流程配置即可。
综上,本发明实施例所提供的技术方案具有如下优点:
1、通用性
本方案几乎不侵入hbase内部,不影响hbase的运行和资源,在外部完成了数据迁移,具有很强的通用性,可以完成任意版本、任意集群间的数据迁移。
2、高性能
数据迁移基于DistCp实现,该工具在大数据集群间复制方面具有很强的优势,从源地址直接将数据拷贝到目标地址,不产生临时文件,没有多余的步骤,迁移速度很快。在使用中,速度的瓶颈主要在网络带宽上。
3、扩展性
针对不同的集群组件,可以配置不同的表恢复机制和多层次、多维度的数据校验机制,通过适配,可以支持hive、hdfs等多种组件的数据迁移及库表重建、数据校验的需求,具有较强的通用性。
4、易用性
自动化的执行流程,屏蔽了数据迁移的技术细节,减少了人工交互的次数,降低了人为原因导致出错的概率,通过一个命令就可以实现数据的迁移,简单易用。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种HBase数据迁移方法,其特征在于,包括:
迁移装置获取源HBase集群待迁移的表名;待迁移的表名所对应的表格为源HBase表格;
所述迁移装置在目标HBase集群中建立与所述源HBase表格相对应的目标HBase表格;
所述迁移装置从配置文件中读取迁移配置参数;
所述迁移装置根据所述迁移配置参数,使用DistCp工具将所述源HBase表格的数据文件拷贝到所述目标HBase集群;
所述迁移装置修复所述目标HBase集群的HBase元信息,以使所述目标HBase表格与迁移至所述目标HBase集群的数据文件相关联。
2.如权利要求1所述的方法,其特征在于,在使用DistCp工具将所述源HBase表格的数据文件拷贝到所述目标HBase集群之前,还包括:
为所述DistCp工具增设skipcrccheck参数和update参数;
其中,所述skipcrccheck参数和update参数同时使用时,用于指示在拷贝时不对数据文件进行CRC校验。
3.如权利要求2所述的方法,其特征在于,
在所述源HBase集群中所有待迁移表格的数据文件均拷贝至所述目标HBase集群之后,修复所述目标HBase集群的HBase元信息之前,所述方法还包括:
所述迁移装置进行HDFS层的数据校验;
所述迁移装置停止所述目标HBase集群的HBase写操作服务;
在所述修复所述目标HBase集群的HBase元信息之后,所述方法还包括:
所述迁移装置启动所述写操作服务;
所述迁移装置进行HBase层的数据校验。
4.如权利要求3所述的方法,其特征在于,所述进行HDFS层的数据校验包括:
使用HDFS文件系统检查工具,检查所述源HBase集群与所述目标HBase集群指定路径下的文件、目录、字节数,以及两集群的HDFS文件系统的健康状况是否完全一致;
分别向所述源HBase集群和目标HBase集群发出文件检查命令,收集命令执行结果,对两执行结果进行对比,若不一致进行提醒报错;其中,执行结果包括:目录结构及各路径下的文件大小。
5.如权利要求3所述的方法,其特征在于,所述进行HBase层的数据校验包括:
获取源HBase表格和目标HBase表格的分区信息,并对比是否一致;
验证所述目标HBase表格是否可用;
验证源HBase表格和目标HBase表格中的数据是否完全一致。
6.如权利要求1-5任一项所述的方法,其特征在于,
所述迁移装置执行的每一动作均具有唯一的执行标识;
所述方法还包括:
若在执行HBase数据迁移方法的过程中遇到错误,所述迁移装置报错退出,报错信息包括出现错误的动作的执行标识和目标路径,所述目标路径包括数据未传输完毕的路径。
7.如权利要求6所述的方法,其特征在于,在所述迁移装置报错退出后,还包括:
进行断点重提操作;
清理目标路径下的数据文件;
重新向目标路径拷贝数据文件。
8.一种HBase数据迁移装置,其特征在于,包括:
获取单元,用于获取源HBase集群待迁移的表名;待迁移的表名所对应的表格为源HBase表格;
迁移单元,用于:
在目标HBase集群中建立与所述源HBase表格相对应的目标HBase表格;
从配置文件中读取迁移配置参数;
根据所述迁移配置参数,使用DistCp工具将所述源HBase表格的数据文件拷贝到所述目标HBase集群;
修复所述目标HBase集群的HBase元信息,以使所述目标HBase表格与迁移至所述目标HBase集群的数据文件相关联。
9.如权利要求8所述的HBase数据迁移装置,其特征在于,所述迁移单元还用于:
为所述DistCp工具增设skipcrccheck参数和update参数;
其中,所述skipcrccheck参数和update参数同时使用时,用于指示在拷贝时不对数据文件进行CRC校验。
10.如权利要求9所述的HBase数据迁移装置,其特征在于,
在所述源HBase集群中所有待迁移表格的数据文件均拷贝至所述目标HBase集群之后,修复所述目标HBase集群的HBase元信息之前,所述迁移单元还用于:
进行HDFS层的数据校验;
停止所述目标HBase集群的HBase写操作服务;
在所述修复所述目标HBase集群的HBase元信息之后,所述迁移单元还用于:
启动所述写操作服务;
进行HBase层的数据校验。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910481154.XA CN110209653B (zh) | 2019-06-04 | 2019-06-04 | HBase数据迁移方法及迁移装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910481154.XA CN110209653B (zh) | 2019-06-04 | 2019-06-04 | HBase数据迁移方法及迁移装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110209653A true CN110209653A (zh) | 2019-09-06 |
CN110209653B CN110209653B (zh) | 2021-11-23 |
Family
ID=67790551
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910481154.XA Active CN110209653B (zh) | 2019-06-04 | 2019-06-04 | HBase数据迁移方法及迁移装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110209653B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110928860A (zh) * | 2019-11-27 | 2020-03-27 | 中国银行股份有限公司 | 数据迁移方法和装置 |
CN111258985A (zh) * | 2020-01-17 | 2020-06-09 | 中国工商银行股份有限公司 | 数据集群迁移方法及装置 |
CN111538719A (zh) * | 2020-04-30 | 2020-08-14 | 深圳前海微众银行股份有限公司 | 数据迁移方法、装置、设备及计算机存储介质 |
CN111858469A (zh) * | 2020-07-24 | 2020-10-30 | 成都成信高科信息技术有限公司 | 一种基于时间滑动窗口的自适应分级存储的方法 |
CN112749085A (zh) * | 2020-12-31 | 2021-05-04 | 北京知因智慧科技有限公司 | 一种跨集群的任务发布方法、装置、电子设备及存储介质 |
CN113438275A (zh) * | 2021-05-27 | 2021-09-24 | 众安在线财产保险股份有限公司 | 数据迁移方法、装置、存储介质及数据迁移设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150127608A1 (en) * | 2013-11-01 | 2015-05-07 | Cloudera, Inc. | Manifest-based snapshots in distributed computing environments |
CN105069128A (zh) * | 2015-08-14 | 2015-11-18 | 北京京东尚科信息技术有限公司 | 数据同步方法和装置 |
CN108628874A (zh) * | 2017-03-17 | 2018-10-09 | 北京京东尚科信息技术有限公司 | 迁移数据的方法、装置、电子设备和可读存储介质 |
CN109165210A (zh) * | 2018-09-04 | 2019-01-08 | 山东浪潮云投信息科技有限公司 | 一种集群Hbase数据迁移的方法及装置 |
CN109818794A (zh) * | 2019-01-31 | 2019-05-28 | 北京搜狐互联网信息服务有限公司 | 集群迁移方法及工具 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103761162B (zh) * | 2014-01-11 | 2016-12-07 | 深圳清华大学研究院 | 分布式文件系统的数据备份方法 |
CN104239493B (zh) * | 2014-09-09 | 2017-05-10 | 北京京东尚科信息技术有限公司 | 跨集群数据迁移方法和系统 |
-
2019
- 2019-06-04 CN CN201910481154.XA patent/CN110209653B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150127608A1 (en) * | 2013-11-01 | 2015-05-07 | Cloudera, Inc. | Manifest-based snapshots in distributed computing environments |
CN105069128A (zh) * | 2015-08-14 | 2015-11-18 | 北京京东尚科信息技术有限公司 | 数据同步方法和装置 |
CN108628874A (zh) * | 2017-03-17 | 2018-10-09 | 北京京东尚科信息技术有限公司 | 迁移数据的方法、装置、电子设备和可读存储介质 |
CN109165210A (zh) * | 2018-09-04 | 2019-01-08 | 山东浪潮云投信息科技有限公司 | 一种集群Hbase数据迁移的方法及装置 |
CN109818794A (zh) * | 2019-01-31 | 2019-05-28 | 北京搜狐互联网信息服务有限公司 | 集群迁移方法及工具 |
Non-Patent Citations (2)
Title |
---|
UTF7: "HBase数据迁移", 《HTTPS://UTF7.GITHUB.IO/2018/01/13/HBASE-DATA-MIGRATION/》 * |
WESTFIRE: "hadoop distcp hftp hdfs跨集群拷贝常见问题归总", 《HTTPS://WWW.JIANSHU.COM/P/CBACE52602AA》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110928860A (zh) * | 2019-11-27 | 2020-03-27 | 中国银行股份有限公司 | 数据迁移方法和装置 |
CN110928860B (zh) * | 2019-11-27 | 2023-06-20 | 中国银行股份有限公司 | 数据迁移方法和装置 |
CN111258985A (zh) * | 2020-01-17 | 2020-06-09 | 中国工商银行股份有限公司 | 数据集群迁移方法及装置 |
CN111538719A (zh) * | 2020-04-30 | 2020-08-14 | 深圳前海微众银行股份有限公司 | 数据迁移方法、装置、设备及计算机存储介质 |
CN111538719B (zh) * | 2020-04-30 | 2024-04-19 | 深圳前海微众银行股份有限公司 | 数据迁移方法、装置、设备及计算机存储介质 |
CN111858469A (zh) * | 2020-07-24 | 2020-10-30 | 成都成信高科信息技术有限公司 | 一种基于时间滑动窗口的自适应分级存储的方法 |
CN111858469B (zh) * | 2020-07-24 | 2024-01-26 | 成都成信高科信息技术有限公司 | 一种基于时间滑动窗口的自适应分级存储的方法 |
CN112749085A (zh) * | 2020-12-31 | 2021-05-04 | 北京知因智慧科技有限公司 | 一种跨集群的任务发布方法、装置、电子设备及存储介质 |
CN112749085B (zh) * | 2020-12-31 | 2023-10-24 | 北京知因智慧科技有限公司 | 一种跨集群的任务发布方法、装置、电子设备及存储介质 |
CN113438275A (zh) * | 2021-05-27 | 2021-09-24 | 众安在线财产保险股份有限公司 | 数据迁移方法、装置、存储介质及数据迁移设备 |
CN113438275B (zh) * | 2021-05-27 | 2023-04-07 | 众安在线财产保险股份有限公司 | 数据迁移方法、装置、存储介质及数据迁移设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110209653B (zh) | 2021-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110209653A (zh) | HBase数据迁移方法及迁移装置 | |
CN111566633B (zh) | 用于使内容项同步的提交协议 | |
US20200228393A1 (en) | System and method for data replication using a single master failover protocol | |
CN112685385A (zh) | 一种用于智慧城市建设的大数据平台 | |
CN107122360B (zh) | 数据迁移系统和方法 | |
US9411873B2 (en) | System and method for splitting a replicated data partition | |
US20180181470A1 (en) | System and method for adjusting membership of a data replication group | |
CN107209704A (zh) | 检测丢失的写入 | |
CN112424762B (zh) | 在多部署数据库中转移连接 | |
US11249943B2 (en) | Scalable enterprise content management | |
CN111538719B (zh) | 数据迁移方法、装置、设备及计算机存储介质 | |
CN103605698A (zh) | 一种用于分布异构数据资源整合的云数据库系统 | |
CN102214205A (zh) | 带有自适应克隆的经聚类的数据库系统中的逻辑复制 | |
CN108369588A (zh) | 数据库级别自动存储管理 | |
CN117677943A (zh) | 用于混合数据处理的数据一致性机制 | |
Branco et al. | Managing very large distributed data sets on a data grid | |
CN114048370A (zh) | 基于Python的归档文件处理、存储及一站式管理平台 | |
CN112699118B (zh) | 数据同步方法及相应的装置、系统、存储介质 | |
van Kemenade | The CERN digital memory platform: building a CERN scale OAIS compliant archival service | |
CN109359100A (zh) | Pb级历史数据和在线数据的实时计算的可视化建模方法 | |
JP2023546818A (ja) | データベースシステムのトランザクション処理方法、装置、電子機器、及びコンピュータプログラム | |
CN116974983A (zh) | 数据处理方法、装置、计算机可读介质及电子设备 | |
Xie et al. | Modeling and verifying HDFS using process algebra | |
US20130318040A1 (en) | Data replication apparatus and method using hierarchical organization of data servers | |
Tomášek | Design and implementation of Archival Storage component of OAIS Reference Model |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20221114 Address after: 100005 No. 69, inner main street, Dongcheng District, Beijing, Jianguomen Patentee after: AGRICULTURAL BANK OF CHINA Patentee after: Agricultural Bank of China Financial Technology Co.,Ltd. Address before: 100005 No. 69, inner main street, Dongcheng District, Beijing, Jianguomen Patentee before: AGRICULTURAL BANK OF CHINA |
|
TR01 | Transfer of patent right |