CN112328539A - 一种基于大数据的数据迁移方法 - Google Patents
一种基于大数据的数据迁移方法 Download PDFInfo
- Publication number
- CN112328539A CN112328539A CN202011165258.9A CN202011165258A CN112328539A CN 112328539 A CN112328539 A CN 112328539A CN 202011165258 A CN202011165258 A CN 202011165258A CN 112328539 A CN112328539 A CN 112328539A
- Authority
- CN
- China
- Prior art keywords
- data
- cluster
- migration
- time
- hfile2
- 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.)
- Withdrawn
Links
Images
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/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/119—Details of migration of file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种基于大数据的数据迁移方法,包括:大数据处理集群获取海量数据,并将海量数据记录在HBase的第一数据集群中,第一数据集群包含HFile;当数据需要迁移时,大数据处理集群生成时间戳节点T0;大数据处理集群在T0时刻,固定第一数据集群中所有的记录文件,将所有的记录文件定义为第一Hfile1,同时生成新的第二HFile2,并在T0时刻的下一时刻将数据写入操作或数据更新操作迁移至第二HFile2中进行;使用分布式拷贝distcp命令将第一记录文件HFile1中的数据迁移至第二数据集群;在第一HFile1迁移完毕后,分时采用分布式拷贝distcp命令迁移和HBase在线迁移两种方式对第二HFile2的数据迁移至第二数据集群,并在HFile2迁移完毕后,对第二集群中不同时刻迁移的数据进行合并操作。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及基于大数据的数据迁移方法。
背景技术
大数据,是一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合,具有海量的数据规模、快速的数据流转、多样的数据类型和价值密度低四大特征。
Hadoop是一个大数据领域应用非常广泛的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System,HDFS)。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(highthroughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。
在Hadoop架构下,有时候需要进行系统数据更新和升级操作,就需要进行数据迁移,而基于Hadoop的数据迁移效率低,时间长,难以达到要求。
发明内容
本申请实施例提供一种基于大数据的数据迁移方法,用于解决现有技术中大数据迁移效率低的问题。
本发明实施例提供一种基于大数据的数据迁移方法,包括:
大数据处理集群获取海量数据,并将所述海量数据记录在分布式存储系统HBase的第一数据集群中,所述第一数据集群包含记录文件HFile;
当数据需要迁移时,所述大数据处理集群生成时间戳节点T0;
所述大数据处理集群在所述时间戳节点T0时刻,固定所述第一数据集群中所有的记录文件,将所述所有的记录文件定义为第一记录文件Hfile1,同时生成新的第二记录文件HFile2,并在T0时刻的下一时刻将所述数据写入操作或数据更新操作迁移至所述第二记录文件HFile2中进行;
使用分布式拷贝distcp命令将第一记录文件HFile1中的数据迁移至第二数据集群;
在所述第一记录文件HFile1迁移完毕后,分时采用分布式拷贝distcp命令迁移和HBase在线迁移两种方式对所述第二记录文件HFile2的数据迁移至所述第二数据集群,并在所述HFile2迁移完毕后,对第二集群中不同时刻迁移的数据进行合并操作。
可选地,所述分时采用分布式拷贝distcp命令迁移和HBase在线迁移两种方式对所述第二记录文件HFile2的数据迁移至所述第二数据集群,包括:
设置所述HFile1迁移完毕的时刻为T1时刻,在所述T1时刻时,判断所述HFile2的数据量大小是否高于预设阈值;
若低于或等于所述预设阈值,则将所述HFile2按照HBase在线迁移方式迁移至所述第二数据集群中;
若高于所述预设阈值,在T1时刻固定所述HFile2,并新建一个第三记录文件HFile3,在T1时刻的下一时刻将所述数据写入或数据更新操作迁移至所述第三记录文件HFile3中进行;使用分布式拷贝distcp命令将第二记录文件HFile2中的数据迁移至所述第二数据集群;设置所述第二记录文件HFile2迁移完毕的时刻为T2时刻,在所述T2时刻,判断所述HFile3的数据量大小是否高于所述预设阈值;若低于或等于所述预设阈值,则将所述HFile3按照HBase在线迁移方式迁移至所述第二数据集群中;若高于所述预设阈值,则在T1时刻固定所述HFile3,并新建一个第四记录文件HFile4,重复上述迁移及判断过程。
可选地,所述使用distcp命令将第一记录文件HFile1中的数据迁移至第二数据集群之前,所述方法还包括:
预测所述HFile1中的不同类型数据的数据压缩率;
设置数据压缩阈值,将所述数据压缩率高于所述数据压缩阈值的数据进行压缩,将所述数据压缩率低于或等于所述数据压缩阈值的数据直接迁移至所述第二数据集群中。
可选地,将所述数据压缩率高于所述数据压缩阈值的数据进行压缩,包括:
获取所述数据的数据类型,将相同类型的数据进行压缩,或,
获取所述数据所属的HRegion,计算不同HRegion之间的相似度;若第一和第二HRegion之间的相似度高于预设相似度阈值,则建立索引表,所述索引表用于指示所述HRegion之间的差异信息;将所述第一HRegion和第二HRegion和所述索引表合并为第三HRegion。
可选地,所述记录表中包括定时增量型记录表,则将所述数据压缩率高于所述数据压缩阈值的数据进行压缩,包括:
监听所述定时增量型记录表中的数据增长率;
基于所述数据增长率,获取所述定时增量型记录表中数据的增长策略;
保留所述增量型数据表中的第一个记录数据及增长策略,删除其余的记录数据。
可选地,所述方法还包括:
若需要在数据迁移过程中对所述HFile1的数据进行更新操作,则将所述HFile1中待更新的数据进行分裂,并生成新的更新表格HFileUpdate,将所述分裂的数据按照上述更新操作进行更新,并将更新后的分裂数据存储至所述HFileUpdate中;
在所述HFile1的数据迁移完毕后,将所述HFileUpdate中的分裂数据迁移至所述第二数据集群中,并替换掉所述第二数据集群中待更新的数据。
可选地,在所述使用分布式拷贝distcp命令将第一记录文件HFile1中的数据迁移至第二数据集群之前,所述方法还包括:
将所述HFile1设置为静态数据表,并禁止对所述HFile1的数据进行合并或删除操作。
本发明实施例提供的大数据迁移的方法,结合了静态数据的distcp迁移速度快的特性,以及HBase可动态热迁移的特性,分时采用两种方案,最大化提升数据迁移的效率,降低数据迁移的时间,同时不影响到正常的数据更新与写入。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1为HBase框架的架构图;
图2为HBase框架的原理图;
图3为一个实施例中基于大数据的数据迁移的流程示意图;
图4为一个实施例中两种方式分时迁移的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
分布式存储系统HBase(Hadoop Database)是一个高可靠性、高性能、面向列、可伸缩的分布式数据库系统,例如典型的NoSQL(Not Only SQL)数据库。HBase具有如下特性:
面向列设计:面向列表(簇)的存储和权限控制,列(簇)独立检索。
支持多版本:每个单元中的数据可以有多个版本,默认情况下,版本号可自动分配,版本号就是单元格插入时的时间戳。
稀疏性:为空的列不占用存储空间,表可以设计得非常稀疏。
高可靠性:WAL机制保证了数据写入时不会因集群异常而导致写入数据丢失,Replication机制保证了在集群出现严重的问题时,数据不会发生丢失或损坏。
高性能:底层的LSM数据结构和Rowkey有序排列等架构上的独特设计,使得Hbase具有非常高的写入性能。通过科学性地设计RowKey可让数据进行合理的Region切分,主键索引和缓存机制使得Hbase在海量数据下具备高速的随机读取性能。
HBase的架构是依托于Hadoop的HDFS作为最基本存储基础单元,在HBase的集群中由一个Master主节点管理多个Region Server区域服务器,而Zookeeper进行协调操作,其关系如图1所示。
主机/主节点HMaster用于启动任务管理多个HRegionserver,侦测各个HRegionserver之间的状态,当一个新的HRegionserver登录到HMaster时,HMaster会告诉它等待分配数据,平衡HRegionserver之间的负载。而当某个HRegionserver死机时,HMaster会把它负责的所有HRegion标记为未分配,然后再把它们分配到其他HRegionserver中,并恢复HRegionserver的故障。事实上HMaster的负载很轻,HBase允许有多个HMaster节点共存,但同一时刻只有一个HMaster能为系统提供服务,其他的HMaster节点处于待命的状态。当正在工作的HMaster节点宕机时,其他的HMaster则会接管HBase的集群。
HBase中的所有数据从底层来说一般都是保存在HDFS中的,用户通过一系列HRegionserver获取这些数据。集群一个节点上一般只运行一个HRegionserver,且每一个区段的HRegion只会被一个HRegionserver维护。HRegionserver主要负责响应用户I/O请求,向HDFS文件系统读写数据,是HBase中最核心的模块。
HBase的组件之间是通过心跳机制协调系统之间的状态和健康信息的,这些功能都是通过消息实现,一旦消息因外界原因丢失,系统侧需要根据不同的情况进行处理,Zookeeper(本发明中部分技术术语并没有标准统一的中文翻译,故说明书及附图采用英文表示)的主要作用正是监听并协调各组件的运作。它监听了多个节点的使用状态,保证了HMaster处于正常运行当中,一旦HMaster发生故障时Zookeeper就会发出通知,备用的HMaster就会进行替代。Zookeeper也会监测块服务器HRegionserver的健康状态,一旦发生故障就会通知HMaster,把任务重新分配给正常的HRegionserver进行操作,并恢复有故障的HRegionserver。
HBase的运作原理图如图2所示,其中,每个HRegionserver内部管理了一系列HRegion,HRegion可以分别属于不同的逻辑表,每个HRegion对应了逻辑表中的一个连续数据段。HRegionserver是管理表格,实现读写操作。客户端Client直接连接到HRegionserver,并通信获取HBase中的数据。而HRegion则是真实存放HBase数据的地方,即HRegion是HBase可用性和分布式的基本单位。当表的大小超过预设值的时候,HBase会自动将表划分为不同的区域,每个区域就是一个块HRegion,以主键(RowKey)来区分。一个HRegion会保存一个表中某段连续的数据,一张完整的表数据是保存在多个HRegion中的,这些HRegion可以在同一个HRegionserver中,也可以来源于不同的HRegionserver。
每个HRegion由多个存储单元Store组成,每个Store对应逻辑表在这个HRegion集合中的一个Column Family,建议把具有相近IO特性的Column存储在同一个Column Family中,以实现高效读取。Store由一个Memstore(未有标准统一的中文译文,故用英文表示)及一系列HFile组成,Memstore存储于内存当中,而HFiles则是写入到HDFS中的持久性文件。用户写入的数据首先会放入MemStore,当MemStore大小到达预设值后就会flush一个StoreFile(未有标准统一的中文译文,故用英文表示)文件。
MemStore是一个缓存,当所有数据完成WAL日志写后,就会写入MemStore中,由MemStore根据一定的算法将数据缓存到底层HDFS文件中(HFile),每个HRegion中的每个Column Family有一个自己的MemStore。当用户从HBase中读取数据时,系统将尝试从MemStore中读取数据,如果没找到相应数据才会尝试从HFile中读取。当服务器宕机时,MemStore中的数据有可能会丢失,此时HBase就会使用WAL中的记录对MemStore中的数据进行恢复。
记录文件HFile是最终保存HBase数据行的文件,一个HFile文件属于一张表中的某个列簇,当中的数据是按RowKey、Column Family、Column升序排序。HFile中每条键值存储的开发都包括2个固定长度的数字,分别表示键和值的长度,目的是让客户端可根据字节的偏移访问值域中的数据。HFile文件是根据表的列簇进行区分的,在执行持久化时,记录是有序的。但当HFile的文件内容增长到一定阈值后就会触发合并操作,多个HFiles就会合并成一个更大的HFile,由于这几个HFile有可能在不同的时间段产生,为保证合并后数据依然是有序排列,HFile会通过小量压缩或全量压缩进行合并,对HFile文件记录进行重新排序。由于全量压缩是一个耗费资源的操作,因此应该保证在资源充足的情况下进行(由于数据压缩问题已超出本文的界限,在以后的章节将会详细介绍)。
当单个HFile大小超过一定阈值后,会触发Split拆分操作,用户可通过配置hbase.HRegionserver.region.split.policy选择拆分的策略,拆分策略由HRegionsplitPolicy类进行处理。默认情况下HRegion将被拆分成2个HRegion,父HRegion会下线,新分出的2个子HRegion会被HMaster分配到相应的HRegionserver。
图3为一个实施例中基于大数据的数据迁移方法流程图。本实施例中的方法包括:
S101、大数据处理集群获取海量数据,并将所述海量数据记录在分布式存储系统HBase的第一数据集群中,所述第一数据集群包含记录文件HFile;
其中,海量数据的数据量会是TB或者PB级别的数据,其包括不同数据源采集到的不同数据,典型的数据分为结构化数据和非结构化数据,在大数据领域,非结构化数据的占比要高于结构化数据。
S102、当数据需要迁移时,所述大数据处理集群生成时间戳节点T0;
Hbase的实际使用中,往往会需要对Hbase数据进行迁移,例如需要升级,或数据服务需要更新时。
当数据需要迁移时,会对整个迁移过程进行时间记录。且T0时刻为该迁移过程的起始时刻。
S103、所述大数据处理集群在所述时间戳节点T0时刻,固定所述第一数据集群中所有的记录文件,将所述所有的记录文件定义为第一记录文件Hfile1,同时生成新的第二记录文件HFile2,并在T0时刻的下一时刻将所述数据写入操作或数据更新操作迁移至所述第二记录文件HFile2中进行;
Hbase的升级方法主要有两类:一类是基于Hadoop层(HDFS底层)的distcp命令直接拷贝表的HRegions到新的数据集群;还有一类是基于Hbase层在线迁移,对源表中记录的操作,从源表中读取记录,最后写入到新集群中。
按迁移的速度性能来分,对于海量数据的迁移,从Hadoop层迁移无疑是最快的,因为是采用直接按文件进行复制,速度会比Hbase层的按记录扫描进行迁移的方法快几十倍甚至上百倍,但是它使用的前提就是需要保证Hbase的数据没有写入操作才行,达到HFile被固定的效果,否则因为写入操作,会在迁移的过程中导致Hfile的变动,最终导致迁移任务报错之前的HFile文件不存在问题,导致迁移的失败。
因此,本发明实施例中,为了杜绝在迁移过程中数据有动态更新或持续写入,需要将第一数据集群进行固定,即,将第一数据集群的Hfile1设置为静态文件,一般情况下不进行主动数据更新或数据写入。
如果有新的数据写入或数据更新操作,此时就需要生成一个新的文件,定义为第二记录文件HFile2,在T0时刻同时固定HFile1并生成HFile2,并在T0的下一个时刻起,由HFile2接管HFile1,进行数据写入或更新。
S104、使用分布式拷贝distcp命令将第一记录文件HFile1中的数据迁移至第二数据集群;
在T0时刻,将HFile1数据迁移到第二数据集群,HFile2继续进行正常的数据写入和更新操作。
可选地,由于HFile1是数据量非常大的历史数据,为了再次提升HFile1的迁移效率,本发明实施例还可以对HFile1中的数据进行压缩,使得在迁移过程中降低迁移的数据量,提升迁移效率。由于压缩的过程不涉及到数据的写入操作,只要保证迁移的数据并没有被压缩线程挂起造成互斥,原则上不会造成迁移失败。
因此,将第一记录文件HFile1中的数据迁移至第二数据集群之前,可以通过压缩方式对HFile1的数据进行压缩,具体为:
预测HFile1中的不同类型数据的数据压缩率;
设置数据压缩阈值,将数据压缩率高于数据压缩阈值的数据进行压缩,将数据压缩率低于或等于数据压缩阈值的数据直接迁移至第二数据集群中。
预测数据压缩率的方式有很多种。例如,可以通过深度神经网络的方式预测某一类型数据的增长率,而该类型数据的压缩率从历史压缩数据来看是可预测的函数曲线,因此可基于历史的样本数据压缩率推测出未来的数据压缩率。此外,还可以通过设定不同类型数据的压缩算法,对不同类型的压缩率进行精细化管理,求取出某一时间段中不同类型数据占比,从而获得一个均值数据压缩率。
本发明实施例中,压缩方式可以分为如下3种:
第一种:获取数据的数据类型,将相同类型的数据进行压缩;第一种方式比较简单,对于同类型的数据,采用传统的压缩算法进行压缩,可保证压缩率最大化,例如JPEG图片和MPEG视频格式是经过经典的压缩算法压缩后的文件。
第二种:获取数据所属的HRegion,计算不同HRegion之间的相似度;若第一和第二HRegion之间的相似度高于预设相似度阈值,则建立索引表,索引表用于指示HRegion之间的差异信息;将第一HRegion和第二HRegion和索引表合并为第三HRegion。第二种方式的核心思想是根据相似度合并,减少数据传输或迁移的量。不同HRegion之间的数据有相同有差异,若两个HRegion相差不大,则可以在保留差异点的前提下,合并两个HRegion,删除其中一个HRegion(例如,保留第一HRegion,删除第二HRegion),这样在后期迁移过程中,只需要迁移该第一HRegion的数据和第一第二HRegion差异点(即索引表)的数据,就可以在第二数据集群中复制出该第二HRegion。例如,第一第二HRegion的相似度达到95%,高于预设相似度阈值90%,那么建立索引表用于标示出二者的差异点,示例性地,该索引表的格式可以为:
Row 20
Column 2
Region1 10
Region2 25
表示在第20行第2列的数据二者是不同的,Region1是10,Region2是25。
第三种:当记录表中包括定时增量型记录表时,监听定时增量型记录表中的数据增长率;基于数据增长率,获取定时增量型记录表中数据的增长策略;保留增量型数据表中的第一个记录数据及增长策略,删除其余的记录数据。所谓定时增量型记录表,即该记录表中的数据依据某种规则进行定时定量的增长,属于可预测、可逆的数据表,最简单的一种定时增量型记录表是每隔一定周期自动加1。例如1,2,3,4...这样的数列,复杂的定时增量则是基于一定的数学公式进行数字递增的,例如1,2,4,8,16是根据2的平方进行数字递增,则知道了第1个数据后,基于该规则可以推测出后续的数据是2,4,8,16...该数据表中保存的一般会是大型工业设备或生产设备的数据,例如物理加热的时间-温度数据表,化学反应的时间-质量数据表等等。对于该记录表,可以只保留第一个记录数据(元数据)和增长策略(例如跟随周期的增长公式、增长率),即能在迁移完成后,根据增长策略计算出该记录表中的其余各数据。
S105、在所述第一记录文件HFile1迁移完毕后,分时采用分布式拷贝distcp命令迁移和HBase在线迁移两种方式对所述第二记录文件HFile2的数据迁移至所述第二数据集群,并在所述HFile2迁移完毕后,对第二集群中不同时刻迁移的数据进行合并操作。
为了最大化提升迁移效率,除了结合两种迁移方式之外,还需要尽可能最大化利用短时间的distcp方式,最小化利用HBase迁移方式。因此,本发明实施例中,采用上述两种迁移方式对数据进行迁移,按照最大化distcp迁移时间及最小化HBase迁移时间的方式进行迁移。该步骤具体为:
步骤1:设置HFile1迁移完毕的时刻为T1时刻,在T1时刻时,判断HFile2的数据量大小是否高于预设阈值,其中预设阈值为数据量的预定阈值,在该阈值内,两种方式所需要的时间差距不大,例如,设定为10GB,迁移这10GB的数据,两种方式所需要的时间差在10分钟内,是可以接受的时间差,因此优先采用动态的HBase在线迁移的方式;
步骤2a:若低于或等于预设阈值,则将HFile2按照HBase在线迁移方式迁移至第二数据集群中;
步骤2b:若高于预设阈值,则
步骤3:在T1时刻固定HFile2,并新建一个第三记录文件HFile3,在T1时刻的下一时刻将数据写入或数据更新操作迁移至HFile3中进行;
步骤4:使用分布式拷贝distcp命令将第二记录文件HFile2中的数据迁移至第二数据集群;
步骤5:设置第二记录文件HFile2迁移完毕的时刻为T2时刻,在T2时刻,判断HFile3的数据量大小是否高于预设阈值;
步骤6a:若低于或等于预设阈值,则将HFile3按照HBase在线迁移方式迁移至第二数据集群中;
步骤6b:若高于预设阈值,则在T1时刻固定HFile3,并新建一个第四记录文件HFile4,重复上述迁移及判断过程(即将当前的HFile3作为原步骤中的HFile2,将当前的HFile4作为原步骤中的HFile3,重复步骤1-3)。
步骤1-6的结果可以用图4表示,如图4所示,T0-T1时刻采用distcp命令对HFile1进行迁移,T1-T2时刻采用distcp命令对HFile2进行迁移,T2-T3时刻采用distcp命令对HFile3进行迁移,T3-T4时刻采用distcp命令对HFile4进行迁移...直到HFile n(n为正整数)的数据量低于预设阈值时,才通过HBase在线迁移的方式进行迁移。
可选地,在本发明实施例中,若在迁移过程中需要对HFile1的数据进行更新,为了防止在更新过程中带来迁移失败的问题则将HFile1中待更新的数据进行分裂(复制及粘贴),并生成新的更新表格HFileUpdate,将分裂的数据按照上述更新操作进行更新,并将更新后的分裂数据存储至HFileUpdate中;
在HFile1的数据迁移完毕后,将HFileUpdate中的分裂数据迁移至第二数据集群中,并替换掉第二数据集群中待更新的数据。这样能保证数据更新操作发生在独立的空间中进行,不影响HFile1数据的迁移,等到HFile1迁移完毕后,再将HFileUpdate中已经更新的数据替换掉第二数据集群中还未更新的数据。
此外,可选地,为了保证迁移效果和成功率,可以将HFile1设置为静态数据表,并禁止对HFile1的数据进行合并或删除操作。
本发明实施例提供的大数据迁移的方法,结合了静态数据的distcp迁移速度快的特性,以及HBase可动态热迁移的特性,分时采用两种方案,最大化提升数据迁移的效率,降低数据迁移的时间,同时不影响到正常的数据更新与写入。
本发明实施例还提供一种基于大数据的数据迁移系统,所述系统包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,所述处理器用于运行所述计算机程序时,执行上述实施例中基于大数据的数据迁移方法。
以上上述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (7)
1.一种基于大数据的数据迁移方法,其特征在于,包括:
大数据处理集群获取海量数据,并将所述海量数据记录在分布式存储系统HBase的第一数据集群中,所述第一数据集群包含记录文件HFile;
当数据需要迁移时,所述大数据处理集群生成时间戳节点T0;
所述大数据处理集群在所述时间戳节点T0时刻,固定所述第一数据集群中所有的记录文件,将所述所有的记录文件定义为第一记录文件Hfile1,同时生成新的第二记录文件HFile2,并在T0时刻的下一时刻将所述数据写入操作或数据更新操作迁移至所述第二记录文件HFile2中进行;
使用分布式拷贝distcp命令将第一记录文件HFile1中的数据迁移至第二数据集群;
在所述第一记录文件HFile1迁移完毕后,分时采用分布式拷贝distcp命令迁移和HBase在线迁移两种方式对所述第二记录文件HFile2的数据迁移至所述第二数据集群,并在所述HFile2迁移完毕后,对第二集群中不同时刻迁移的数据进行合并操作。
2.根据权利要求1所述的方法,其特征在于,所述分时采用分布式拷贝distcp命令迁移和HBase在线迁移两种方式对所述第二记录文件HFile2的数据迁移至所述第二数据集群,包括:
设置所述HFile1迁移完毕的时刻为T1时刻,在所述T1时刻时,判断所述HFile2的数据量大小是否高于预设阈值;
若低于或等于所述预设阈值,则将所述HFile2按照HBase在线迁移方式迁移至所述第二数据集群中;
若高于所述预设阈值,在T1时刻固定所述HFile2,并新建一个第三记录文件HFile3,在T1时刻的下一时刻将所述数据写入或数据更新操作迁移至所述第三记录文件HFile3中进行;使用分布式拷贝distcp命令将第二记录文件HFile2中的数据迁移至所述第二数据集群;设置所述第二记录文件HFile2迁移完毕的时刻为T2时刻,在所述T2时刻,判断所述HFile3的数据量大小是否高于所述预设阈值;若低于或等于所述预设阈值,则将所述HFile3按照HBase在线迁移方式迁移至所述第二数据集群中;若高于所述预设阈值,则在T1时刻固定所述HFile3,并新建一个第四记录文件HFile4,重复上述迁移及判断过程。
3.根据权利要求1或2所述的方法,其特征在于,所述使用distcp命令将第一记录文件HFile1中的数据迁移至第二数据集群之前,所述方法还包括:
预测所述HFile1中的不同类型数据的数据压缩率;
设置数据压缩阈值,将所述数据压缩率高于所述数据压缩阈值的数据进行压缩,将所述数据压缩率低于或等于所述数据压缩阈值的数据直接迁移至所述第二数据集群中。
4.根据权利要求3所述的方法,其特征在于,将所述数据压缩率高于所述数据压缩阈值的数据进行压缩,包括:
获取所述数据的数据类型,将相同类型的数据进行压缩,或,
获取所述数据所属的HRegion,计算不同HRegion之间的相似度;若第一和第二HRegion之间的相似度高于预设相似度阈值,则建立索引表,所述索引表用于指示所述HRegion之间的差异信息;将所述第一HRegion和第二HRegion和所述索引表合并为第三HRegion。
5.根据权利要求3所述的方法,其特征在于,所述记录表中包括定时增量型记录表,则将所述数据压缩率高于所述数据压缩阈值的数据进行压缩,包括:
监听所述定时增量型记录表中的数据增长率;
基于所述数据增长率,获取所述定时增量型记录表中数据的增长策略;
保留所述增量型数据表中的第一个记录数据及增长策略,删除其余的记录数据。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若需要在数据迁移过程中对所述HFile1的数据进行更新操作,则将所述HFile1中待更新的数据进行分裂,并生成新的更新表格HFileUpdate,将所述分裂的数据按照上述更新操作进行更新,并将更新后的分裂数据存储至所述HFileUpdate中;
在所述HFile1的数据迁移完毕后,将所述HFileUpdate中的分裂数据迁移至所述第二数据集群中,并替换掉所述第二数据集群中待更新的数据。
7.根据权利要求1-6任一项所述的方法,其特征在于,在所述使用分布式拷贝distcp命令将第一记录文件HFile1中的数据迁移至第二数据集群之前,所述方法还包括:
将所述HFile1设置为静态数据表,并禁止对所述HFile1的数据进行合并或删除操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011165258.9A CN112328539A (zh) | 2020-10-27 | 2020-10-27 | 一种基于大数据的数据迁移方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011165258.9A CN112328539A (zh) | 2020-10-27 | 2020-10-27 | 一种基于大数据的数据迁移方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112328539A true CN112328539A (zh) | 2021-02-05 |
Family
ID=74296482
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011165258.9A Withdrawn CN112328539A (zh) | 2020-10-27 | 2020-10-27 | 一种基于大数据的数据迁移方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112328539A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113961625A (zh) * | 2021-10-27 | 2022-01-21 | 北京科杰科技有限公司 | 一种异构大数据管理平台任务迁移方法 |
-
2020
- 2020-10-27 CN CN202011165258.9A patent/CN112328539A/zh not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113961625A (zh) * | 2021-10-27 | 2022-01-21 | 北京科杰科技有限公司 | 一种异构大数据管理平台任务迁移方法 |
CN113961625B (zh) * | 2021-10-27 | 2022-06-07 | 北京科杰科技有限公司 | 一种异构大数据管理平台任务迁移方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11687423B2 (en) | Prioritizing highly performant storage systems for servicing a synchronously replicated dataset | |
US11405446B2 (en) | Encoding and transmitting stream data without prior knowledge of data size | |
US11138103B1 (en) | Resiliency groups | |
JP5539683B2 (ja) | 拡張可能な2次ストレージシステムと方法 | |
JP6346937B2 (ja) | データベースエンジンを備えたデータベースシステム及び別個の分散型ストレージサービス | |
KR101259557B1 (ko) | 클러스터 데이터 관리 시스템 및 클러스터 데이터 관리 시스템에서 병렬 처리를 이용한 데이터 복구 방법 | |
US10915813B2 (en) | Search acceleration for artificial intelligence | |
CN104965850B (zh) | 一种基于开源技术的数据库高可用实现方法 | |
EP3062227B1 (en) | Scalable grid deduplication | |
US20220236904A1 (en) | Using data similarity to select segments for garbage collection | |
JP2017216010A (ja) | 分散型データベースシステムのシステム全体のチェックポイント回避 | |
US11797211B2 (en) | Expanding data structures in a storage system | |
Niazi et al. | Size matters: Improving the performance of small files in hadoop | |
CN111708894A (zh) | 一种知识图谱创建方法 | |
CN112328539A (zh) | 一种基于大数据的数据迁移方法 | |
US20230113180A1 (en) | Methods and systems for expanding gpu memory footprint based on hybrid-memory | |
US9424147B2 (en) | System and method for supporting memory allocation control with push-back in a distributed data grid | |
CN113901018A (zh) | 一种待迁移文件识别方法、装置、计算机设备及存储介质 | |
CN109947365B (zh) | 一种分布式存储数据校验方法及装置 | |
US20240168664A1 (en) | Storage scheme transition via storage structure expansion in a storage system | |
US20240241727A1 (en) | Fault Recovery In Zoned Storage Devices | |
Cavage et al. | Bringing arbitrary compute to authoritative data | |
Liao | Application of hadoop in the document storage management system for telecommunication enterprise | |
Shen et al. | A unified storage system for whole-time-range data analytics over unbounded data | |
Li et al. | An Optimized Storage Method for Small Files in Ceph System |
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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20210205 |