一种大数据的数据配置方法和系统转让专利

申请号 : CN202211091952.X

文献号 : CN115168367B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吕灏韩国权李庆胥月黄海峰蔡惠民

申请人 : 太极计算机股份有限公司中电科大数据研究院有限公司

摘要 :

本发明涉及信息处理领域,具体公开了一种大数据的数据配置方法和系统,所述方法包括配置名称节点,数据节点和用户端,其中,所述名称节点被配置为中心管理服务器,在数据节点设置为存储节点时,在其存储的主、副分片上通过确认消息的交互完成主、副分片的数据同步,同时设置日志事件信息,满足用户主、副分片数据不一致时信息的传输处理需求,在通过日志事件信息追平情形下,提高了数据处理效率。

权利要求 :

1.一种大数据的数据配置方法,其特征在于:配置名称节点,数据节点和用户端,其中,所述名称节点被配置为中心管理服务器,描述性元数据以列表形式存储在内存中,响应用户端对文件的访问要求,提供内部元数据服务;

所述数据节点用于存储用户端需要的数据,以分块的方式存储数据,设置固定的每个块的大小,并进行备份存储;接收名称节点转发的控制信息,在名称节点的统一调度下进行数据块的创建、删除和复制工作,并周期性地向名称节点报告;

用户端通过名称节点执行数据的访问;其中在数据节点中设置数据的主分片和副分片;为保持主分片与副分片之间的数据一致性,主、副分片通过确认消息的交互完成主、副分片的数据同步;

其中,所述主、副分片通过确认消息的交互完成主、副分片的数据同步具体为:在两个分片上同时处理与其关联的关系数据库操作,当主分片需要提交时,同时向副分片发出提交请求,如果副分片已经处理完本次任务,它会直接返回主分片一个ACK消息,如果副分片还没有完成本次任务,它会返回主分片一个NACK消息,用以触发表明是否需要等待,并做日志记录;

其中,用以触发表明是否需要等待,并做日志记录包括:数据节点中对主、副分片的一致性设置回退值,所述回退值用于标识副本和主本之间的不一致性的容忍度,当主、副分片中有任意一个分片无法工作时,允许主、副分片之间的数据非一致性,并允许集群整体的事务强制提交;在存储数据节点的预留的分片上保留事件日志,并记录事件操作,所述事件操作为记录故障分片上丢失的操作;

当名称节点检测到副本数量比预先设定的副本数量阈值低时,从日志中探测出需要恢复的事件操作,调用进程执行故障节点分片向健康分片上数据的数据追平事件操作,完成副本数据的更新。

2.如权利要求1所述的方法,其特征在于:所述以分块的方式存储数据,设置固定的每个块的大小,并进行备份存储包括:默认存储三份,分别是本机的一份、同机架机器上的一份和其它机架的一份。

3.如权利要求2所述的方法,其特征在于:配置一个名称节点具有至少一个备份名称节点。

4.如权利要求3所述的方法,其特征在于:所述备份名称节点定时进行名称节点备份,通过自动切换保证正常运行。

5.如权利要求4所述的方法,其特征在于:当用户端创建文件时,用户端先将文件数据缓存到本地的一个临时文件中,当这个临时文件积累的数据达到阈值后,用户端才与名称节点发起连接。

6.如权利要求5所述的方法,其特征在于:各个用户端为数据节点中的元数据设置有效标记状态信息,当出现系统故障,更新操作前的有效标记状态信息,并保存在日志中。

7.一种大数据的数据配置系统,所述系统包括名称节点、数据节点和用户端,用于实现权利要求1‑6中任一所述的方法。

说明书 :

一种大数据的数据配置方法和系统

技术领域

[0001] 本发明涉及信息处理领域,特别是一种大数据的数据配置方法和系统。

背景技术

[0002] 随着云计算能力的提升,基于各行各业中的海量数据处理,逐渐成为人们关注和研究的热点;将数据挖掘的方法应用到各种领域,成为一种趋势。
[0003] 在从大量的数据中挖掘出有价值的信息供管理、决策和调控参考使用的同时,如何使得在海量存储的系统中,保障数据的安全和一致性,从而为用户在进行处理和访问时,能够及时安全地更新,已经成为亟待解决的问题。

发明内容

[0004] 为解决上述问题之一,本发明提出一种大数据的数据配置方法和系统。
[0005] 所述方法包括:配置名称节点,数据节点和用户端,其中,所述名称节点被配置为中心管理服务器,描述性元数据以列表形式存储在内存中,响应用户端对文件的访问要求,并提供内部元数据服务;
[0006] 所述数据节点用于存储用户端需要的数据,以分块的方式存储数据,设置固定的每个块的大小,并进行备份存储;接收名称节点转发的控制信息,在名称节点的统一调度下进行数据块的创建、删除和复制工作,并周期性地向名称节点报告;
[0007] 用户端通过名称节点执行数据的访问;其中在数据节点中设置数据的主分片和副分片;为保持主分片与副分片之间的数据一致性,主、副分片通过确认消息的交互完成主、副分片的数据同步。
[0008] 进一步,所述主、副分片通过确认消息的交互完成主、副分片的数据同步具体为:在两个分片上同时处理与其关联的关系数据库操作,当主分片需要提交时,同时向副分片发出提交请求,如果副分片已经处理完本次任务,它会直接返回主分片一个ACK消息,如果副分片还没有完成本次任务,它会返回主分片一个NACK消息,用以触发表明是否需要等待,并做日志记录。
[0009] 进一步,所述以分块的方式存储数据,设置固定的每个块的大小,并进行备份存储包括:默认存储三份,分别是本机的一份、同机架机器上的一份和其它机架的一份。
[0010] 进一步,一个名称节点具有至少一个备份名称节点。
[0011] 进一步,所述备份名称节点定时进行名称节点备份,通过自动切换保证集群正常运行。
[0012] 进一步,当用户端创建文件时,用户端先将文件数据缓存到本地的一个临时文件中,当这个临时文件积累的数据达到阈值后,用户端才与名称节点发起连接。
[0013] 进一步,各个用户端为存储节点中的元数据设置有效标记状态信息,当出现系统故障,更新操作前的有效标记状态信息,并存在日志中。
[0014] 进一步,用以触发表明是否需要等待,并做日志记录包括:数据节点中对主副本的一致性设置回退值,所述回退值用于标示副本和主本之间的不一致性的容忍度,即当主、副分片中有任意一个分片无法工作的时刻,允许主、副分片之间的数据非一致性,并允许集群整体的事务强制提交。
[0015] 进一步,当名称节点检测到系统中副本数量比系统预先设定的副本数量阈值低时,名称节点检测出丢失副本包含的数据块,并在系统空闲时,复制缺少的副本以达到预设副本阈值;从事件日志中探测出需要恢复的操作,进而调用进程完成。
[0016] 进一步,数据存储节点设置为虚拟分片的副本分布,单个物理数据节点配置成部署多个逻辑分片,并且每个逻辑分片的副本分片部署在不同物理机上。
[0017] 本申请公开的方案,所述系统包括名称节点,数据节点和用户端,其中,所述名称节点被配置为中心管理服务器,在数据节点设置为存储节点时,在其存储的主、副分片上通过确认消息的交互完成主、副分片的数据同步,同时设置日志事件信息,满足用户主、副分片数据不一致时信息的传输处理需求,在通过日志事件信息追平情形下,提高了数据处理效率。

附图说明

[0018] 通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制。
[0019] 图1是本发明方法流程的示意图。

具体实施方式

[0020] 参看下面的说明以及附图,本发明的这些或其他特征和特点、操作方法、结构的相关元素的功能、部分的结合以及制造的经济性可以被更好地理解,其中说明和附图形成了说明书的一部分。然而,可以清楚地理解,附图仅用作说明和描述的目的,并不意在限定本发明的保护范围。可以理解的是,附图并非按比例绘制。本发明中使用了多种结构图用来说明根据本发明的实施例的各种变形。
[0021] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0022] 需要说明的是,本文中的“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
[0023] 需要说明的是,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能或作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定。例如,第一信息和第二信息是用于区别不同的信息,而不是用于描述信息的特定顺序。
[0024] 需要说明的是,本发明实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本发明实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
[0025] 实施例1
[0026] 如图1所示,本发明提出一种大数据的数据配置方法,所述方法包括:在对应的系统中,配置名称节点,数据节点和用户端,其中,所述名称节点被配置为中心管理服务器,描述性元数据以列表形式存储在内存中,响应用户端对文件的访问要求,并提供内部元数据服务;
[0027] 所述数据节点用于存储用户端需要的数据,以分块的方式存储数据,设置固定的每个块的大小,并进行备份存储;接收名称节点转发的控制信息,在名称节点的统一调度下进行数据块的创建、删除和复制工作,并周期性地向名称节点报告;
[0028] 用户端通过名称节点执行数据的访问;其中在数据节点中设置数据的主分片和副分片;为保持主分片与副分片之间的数据一致性,主、副分片通过确认消息的交互完成主、副分片的数据同步。
[0029] 所述主、副分片通过确认消息的交互完成主、副分片的数据同步具体为:在两个分片上同时处理与其关联的关系数据库操作,当主分片需要提交时,同时向副分片发出提交请求,如果副分片已经处理完本次任务,它会直接返回主分片一个ACK消息,当如果副分片还没有完成本次任务,它会返回主分片一个NACK消息, 用以触发表明是否需要等待,并做日志记录。
[0030] 示例性的,所述系统基于大数据的访问结构设置主从集群结构,所述集群由一个名称节点和一个备份名称节点、多个数据节点和多个用户终端组成。
[0031] 名称节点是其中的关键组件,名称节点作为文件系统中的中心管理服务器,主要提供内部元数据服务,负责管理文件系统的命名空间并响应用户端对文件的访问,它将系统的描述性元数据保存成列表形式存储在内存中,用户就可以进行快速访问。如果名称节点失效,那么整个文件系统将无法使用,这是因为其中存储着所有数据块的信息,没有它就无法重建文件。备份名称节点,定时进行名称节点备份,通过自动切换保证集群正常运行。名称节点中包括文件的基本信息,文件与数据块之间的映射关系以及数据块在其中的存储位置。
[0032] 数据节点负责存储用户的数据,它将本地磁盘划分成多个块或片来存储数据,每个块的大小默认为,默认存储三份,分别是本机的一份、同机架其它机器上的一份和其它机架的一份,并且在内存中保存块、片的元数据,在名称节点的统一调度下进行数据块的创建、删除和复制工作,并周期性地向名称节点报告。用户端是用户接口,负责与集群进行交互,并对文件进行读、写等操作。
[0033] 当用户端想创建文件时,用户端会先将文件数据缓存到本地的一个临时文件中,当这个临时文件积累的数据达到阈值大小后,用户端将会联系名称节点,当用户端想读取文件时,用户端会通过查询所需文件的存放位置,名称节点返回存储数据的数据节点的地址和其它副本的地址,用户端可以直接与数据节点进行数据传输,最后中断连接。
[0034] 所述系统中各个用户端节点为数据节点中的元数据设置有效标志状态Valid_flag信息,当出现系统故障,更新操作前的Valid_flag状态,采用预写日志的方式,将Valid_flag的设置提交时,设置为一种事务性。对于事务自身参照自身产生的数据,则采用对Valid_flag的多版本管理机制实现对自身更新中数据的最新参照。
[0035] 在所述存储节点中设置数据的主分片和副分片;为设置主分片与副分片之间的数据一致性,主、副分片的一致性机制采用分段的方式实现。可选的方式是,在两个分片上同时处理与其关联的关系数据库操作,当主分片需要提交时,可选的可按照上述的Valid_flag置位方式,同时会向副分片发出提交请求,如果副分片已经处理完本次任务,它会直接返回主分片一个ACK消息,当如果副分片还没有完成本次任务,它会返回主分片一个NACK消息, 用以表明还需要等待,或用以触发表明是否需要等待,并做日志记录。
[0036] 可选的,所述等待由名称节点予以设置等待周期时间,当主分片接到从副分片发来的ACK消息时,它会指示副分片一块提交更新完的数据。
[0037] 可选的,先更新主分片上数据,再由主分片将数据转发到副分片上,将所述更新的数据按照增分传输的方式以传输到副分片上,而当主分片完成数据更新后,当主分片需要提交时,可选的可按照上述的Valid_flag置位方式,同时会向副分片发出提交请求,如果副分片已经处理完本次任务,它会直接返回主分片一个ACK消息,如果副分片还没有完成本次任务,它会返回主分片一个NACK消息, 用以表明还需要等待,或用以触发表明是否需要等待,并做日志记录。示例性的,在数据节点中对主、副本的一致性设置回退值,所述回退值用于标示副本和主本之间的不一致性的容忍度,即当主、副分片中有任意一个分片无法工作的时刻,系统允许主、副分片之间的数据非一致性,并允许集群整体的事务可以强制提交。
[0038] 此时,在存储数据节点的缺省或预留的分片上,保留事件日志,并记录上述操作的事件,所述事件操作为记录故障分片上丢失的那个操作,可能是一个数据更新操作。
[0039] 此后,当故障节点上的那个分片恢复正常的时候,从事件日志中探测出需要恢复的操作,进而调用进程完成故障节点分片向健康分片上数据的数据追平,从而完成故障后数据恢复和安全。所述用户端访问数据时,所述保留事件日志的标识信息,将同步发送到用户端,以指示所述存储节点上的信息未同步成功的数据。
[0040] 示例性的,当名称节点检测到系统中副本数量比系统预先设定的副本数量阈值低时,名称节点会快速检测出丢失副本包含的数据块,并在系统空闲的时候复制缺少的副本以达到预设副本数量阈值。可选的,同样可以从事件日志中探测出需要恢复的操作,进而调用进程完成故障节点分片向健康分片上数据的数据追平,协助完成副本数据的更新。
[0041] 可选的,所述系统中的数据存储节点设置为虚拟分片的副本分布,示例性的1个物理节点可以部署多个逻辑分片,并且每个逻辑分片的副本分片可以部署在不同物理机上,当一台物理存储节点宕机后,该物理存储节点上逻辑分片的副本因为分散到多个存储节点上,保证宕机服务器等节点的负载不仅可以实现故障转移,实现故障服务器上负载在故障转移后的负载均衡。示例性的,每个数据都指定了存储节点和存储目录,数据以文件的方式存储在数据节点上,受该节点上部署的存储单元的访问。如果指定节点的存储目录的空间不够,那主节点就会查询其他的存储单元是否有存储空间,如果有存储空间的话就会从其他数据节点上分配存储空间给数据;如果某台存储节点需要整体迁移,作为主节点的名称节点或数据节点需要暂停针对数据单元的存储请求,查询其他的节点是否有合适的空间接管此服务器上配置的数据节点,如果有合适的存储位置就会将数据文件同步到其他服务器上并向名称节点发送文件存储位置信息变更请求,名称节点会记录变更并同步给与该存储空间映射对应的虚拟逻辑分片管理单元。
[0042] 可选的,当数据在写入到分配时设置为并发操作,当数据在向对应分片数据写入数据时,如果遇到文件被锁住的情况,它还可以将另一Hash段内的数据写入其他分片文件上,这样就减少了因锁定而导致的数据写入性能的下降。
[0043] 可选的,每个数据有三个副本,其中有一个副本是主数据,其他两个副本是主数据的备份,在数据更改的时候都是修改主副本信息,然后其他两个副本的数据通过网络同步到备份节点上;如果存储主副本的数据服务器出现宕机或者网络故障错误等情况,则根据负载量选择一个副本服务器更新副本内容并进行副本的同步,将该副本服务器更改为该的主存储节点,原来的服务器启动之后从该服务器获得标签数据的更改信息再同步数据。所有标签数据的主信息和副本信息都会经过压缩处理后通过广播消息发送给集群,在读取的时候还是通过广播消息对数据进行解压缩操作,命名空间数据可以被整个系统中的所有用户端访问。
[0044] 可选的,名称节点会在固定的时间间隔内接收来自数据节点的心跳信号和块报告,如果名称节点根据块报告验证元数据发现异常,亦或者数据节点未按时发送心跳信号,则这些相应的数据节点便会被标上宕机的标识。此时,系统不会再给异常的数据节点发送任何 I/O 请求。
[0045] 用户端要想访问文件系统,就必须要同名称节点和数据节点进行交互。首先,用户端会找到名称节点,接到请求时名称节点会响应用户端,用户端获取到文件元数据,同时名称节点通过元数据会向数据节点映射数据块。
[0046] 首先,当用户端有文件写入的请求时,会第一时间给到名称节点,名称节点收到具体请求后会与数据节点做信息交换,具体就是用户端会发送文件大小和配置信息给名称节点,名称节点会根据收到的信息把自己管理的数据节点相关地址信息回送给用户端;接下来,用户端就可以依据名称节点返回的数据节点地址信息,把要写入的文件拆分成许多小的数据块并按顺序写入对应的数据节点。
[0047] 可选的,用户端先是向名称节点提出读取文件的请求,名称节点接收到用户端的请求后会迅速将存储用户端所请求文件的数据节点地址信息返回到用户端,此时用户端就能够通过数据节点的地址信息顺利读取到文件了。
[0048] 本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read‑Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid‑State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
[0049] 如在本申请所使用的,术语“组件”、“模块”、“系统”等等旨在指代计算机相关实体,该计算机相关实体可以是硬件、固件、硬件和软件的结合、软件或者运行中的软件。例如,组件可以是,但不限于是:在处理器上运行的处理、处理器、对象、可执行文件、执行中的线程、程序和/或计算机。作为示例,在计算设备上运行的应用和该计算设备都可以是组件。一个或多个组件可以存在于执行中的过程和/或线程中,并且组件可以位于一个计算机中以及/或者分布在两个或更多个计算机之间。此外,这些组件能够从在其上具有各种数据结构的各种计算机可读介质中执行。这些组件可以通过诸如根据具有一个或多个数据分组(例如,来自一个组件的数据,该组件与本地系统、分布式系统中的另一个组件进行交互和/或以信号的方式通过诸如互联网之类的网络与其它系统进行交互)的信号,以本地和/或远程过程的方式进行通信。
[0050] 应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。