一种数据存储方法、装置、设备及介质制造方法及图纸

技术编号:35073961 阅读:14 留言:0更新日期:2022-09-28 11:38
本申请公开了一种数据存储方法、装置、设备及介质,涉及计算机技术领域,包括:通过客户端向分布式文件系统中的名称节点发送文件上传请求,并通过名称节点确定各数据节点;向各数据节点发起连接建立请求,并在接收到各数据节点基于允许连接返回的应答消息后,与各数据节点建立通信管道;对大数据文件进行分片,得到若干数量的数据块;通过通信管道,将若干数量的数据块依次分配至各数据节点,然后将若干数量的数据块中当前未被分配的数据块,分配至当前已完成传输的数据节点直至若干数量的数据块均被存储至相应的数据节点。可见,本申请通过增加与数据节点的连接数量达到提高传输效率、提高数据传输稳定性以及资源合理利用的效果。效果。效果。

【技术实现步骤摘要】
一种数据存储方法、装置、设备及介质


[0001]本专利技术涉及计算机
,特别涉及一种数据存储方法、装置、设备及介质。

技术介绍

[0002]随着数据量越来越大,同一个操作系统中无法存下所有的数据,因此需要将数据分配到更多的操作系统管理的磁盘中,但是这样不方便管理和维护,由此需要一种系统来管理多台机器上的文件,也即分布式文件管理系统,HDFS(Hadoop Distributed File System,分布式文件系统)是分布式文件管理系统中的一种,由很多服务器联合起来实现其功能,用于存储文件,并通过目录树来定位文件。
[0003]参见图1所示,当前HDFS流式数据存储的步骤如下:(1)客户端向名称节点(NN,Name Node)发送文件上传请求;(2)NN节点收到请求后,执行各种检查确定该文件是否存在以及客户端是否有权限操作,如果均有,则向客户端返回可以上传的指令;(3)客户端收到指令后,向NN节点发起DN(DN,Data Node)节点下发请求(4)NN节点根据副本参数和机架感知计算出上传的DN节点,并告知给客户端;(5)客户端根据返回的DN节点进行数据上传,首先与第一个DN节点建立通信管道,然后第一个DN节点调用第二个DN节点,第二个DN节点调用第三个DN节点,直到将整个通信建立完成;(6)DN1、DN2、DN3逐级应答客户端,通信管道建立完成;(7)客户端向DN1上传第一个block(数据块),(先从磁盘读取数据放到一个本地内存缓存),以packet为单位,DN1收到一个packet就会传给DN2,DN2传给DN3;其中,该数据块为对文件进行切分后得到的数据块;(8)当第一个block传输完成后,客户端再次请求上传第二个block,直到文件的全部block上传成功。上述过程缺陷是:数据按照block流式存储,受限于网络带宽、网络时延,以及断连后需要选择新的DN节点重新上传;其次,block上传至DN节点后处理受限于DN节点的资源使用,当此DN节点处理其他紧急事务,资源利用率过高会导致数据处理缓慢;最后,DN1接收数据后传给DN2,DN2传给DN3,使得DN2、DN3的资源得不到有效利用。
[0004]为此,如何提高传输效率、提高数据传输稳定性以及实现资源合理利用是本领域亟待解决的问题。

技术实现思路

[0005]有鉴于此,本专利技术的目的在于提供一种数据存储方法、装置、设备及介质。能够提高传输效率、提高数据传输稳定性以及实现资源合理利用,其具体方案如下:
[0006]第一方面,本申请公开了一种数据存储方法,包括:
[0007]通过客户端向分布式文件系统中的名称节点发送文件上传请求,并通过所述名称节点确定各数据节点;
[0008]向所述各数据节点发起连接建立请求,并在接收到所述各数据节点基于允许连接返回的应答消息后,与所述各数据节点建立通信管道;
[0009]对大数据文件进行分片,得到若干数量的数据块,其中,每个所述数据块包括所述
大数据文件的文件标识以及分片偏移量;
[0010]通过所述通信管道,将所述若干数量的数据块依次分配至所述各数据节点,然后将所述若干数量的数据块中当前未被分配的数据块,分配至当前已完成传输的数据节点直至所述若干数量的数据块均被存储至相应的数据节点,以便通过所述各数据节点完成对所述若干数量的数据块的传输。
[0011]可选的,所述通过所述名称节点确定各数据节点,包括:
[0012]通过所述名称节点,并基于副本存放策略以及机架感知确定各数据节点。
[0013]可选的,所述向所述各数据节点发起连接请求,包括:
[0014]当各数据节点数量不大于所述副本存放策略所规定的副本个数,则向所述各数据节点发起连接请求。
[0015]可选的,所述向所述各数据节点发起连接请求,包括:
[0016]当各数据节点数量大于所述副本存放策略中所规定的副本个数,则判断所述副本存放策略中的副本是否为默认副本;
[0017]如果所述副本存放策略中的副本为所述默认副本,则基于默认副本个数向相应的数据节点发起连接请求;
[0018]如果所述副本存放策略中的副本为自定义副本,则向所述各数据节点发起连接请求。
[0019]可选的,所述将所述若干数量的数据块中当前未被分配的数据块,分配至当前已完成传输的数据节点直至所述若干数量的数据块均被存储至相应的数据节点之后,还包括:
[0020]基于预设的交互管道将所述各数据节点中每个数据节点接收到的数据块发送至所述各数据节点中的其他数据节点。
[0021]可选的,所述基于预设的交互管道将所述各数据节点中每个数据节点接收到的数据块发送至所述各数据节点中的其他数据节点之后,还包括:
[0022]基于所述文件标识判断当前所述各数据节点中,任一数据节点的数据块是否属于同一个大数据文件;
[0023]如果所述任一数据节点中的所述数据块属于同一个大数据文件,则按照所述分片偏移量将所述任一数据节点中的所述数据块重组为相应的大数据文件。
[0024]可选的,所述数据存储方法,还包括:
[0025]当目标数据节点对目标数据块的传输过程存在异常,则判断所述目标数据节点以外是否存在其他数据节点;
[0026]如果所述目标数据节点以外存在其他数据节点,则从所述其他数据节点中确定新的数据节点,并重新向所述新的数据节点发送连接请求,然后在接收到所述新的数据节点基于允许连接返回的应答消息后,与所述新的数据节点建立通信管道,并通过所述通信通道将所述目标数据块分配至所述新的数据节点。
[0027]第二方面,本申请公开了一种数据存储装置,包括:
[0028]数据节点确定模块,用于通过客户端向分布式文件系统中的名称节点发送文件上传请求,并通过所述名称节点确定各数据节点;
[0029]通信管道建立模块,用于向所述各数据节点发起连接请求,并在接收到所述各数
据节点基于允许连接返回的应答消息后,与所述各数据节点建立通信管道;
[0030]大数据文件分片模块,用于对大数据文件进行分片,得到若干数量的数据块,其中,每个所述数据块包括所述大数据文件的文件标识以及分片偏移量;
[0031]数据块传输模块,用于按照分片顺序并通过所述通信管道,将所述若干数量的数据块依次分配至所述各数据节点,然后将所述若干数量的数据块中当前未被分配的数据块,分配至当前已完成传输的数据节点直至所述若干数量的数据块均被存储至相应的数据节点,以便通过所述各数据节点完成对所述若干数量的数据块的传输。
[0032]第三方面,本申请公开了一种电子设备,包括:
[0033]存储器,用于保存计算机程序;
[0034]处理器,用于执行所述计算机程序,以实现前述公开的数据存储方法。
[0035]第四方面,本申请公开了一种计算机可读存储介质,用于保存计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的数据存储方法。
[本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据存储方法,其特征在于,包括:通过客户端向分布式文件系统中的名称节点发送文件上传请求,并通过所述名称节点确定各数据节点;向所述各数据节点发起连接建立请求,并在接收到所述各数据节点基于允许连接返回的应答消息后,与所述各数据节点建立通信管道;对大数据文件进行分片,得到若干数量的数据块,其中,每个所述数据块包括所述大数据文件的文件标识以及分片偏移量;通过所述通信管道,将所述若干数量的数据块依次分配至所述各数据节点,然后将所述若干数量的数据块中当前未被分配的数据块,分配至当前已完成传输的数据节点直至所述若干数量的数据块均被存储至相应的数据节点,以便通过所述各数据节点完成对所述若干数量的数据块的传输。2.根据权利要求1所述的数据存储方法,其特征在于,所述通过所述名称节点确定各数据节点,包括:通过所述名称节点,并基于副本存放策略以及机架感知确定各数据节点。3.根据权利要求2所述的数据存储方法,其特征在于,所述向所述各数据节点发起连接请求,包括:当各数据节点数量不大于所述副本存放策略所规定的副本个数,则向所述各数据节点发起连接请求。4.根据权利要求2所述的数据存储方法,其特征在于,所述向所述各数据节点发起连接请求,包括:当各数据节点数量大于所述副本存放策略中所规定的副本个数,则判断所述副本存放策略中的副本是否为默认副本;如果所述副本存放策略中的副本为所述默认副本,则基于默认副本个数向相应的数据节点发起连接请求;如果所述副本存放策略中的副本为自定义副本,则向所述各数据节点发起连接请求。5.根据权利要求1所述的数据存储方法,其特征在于,所述将所述若干数量的数据块中当前未被分配的数据块,分配至当前已完成传输的数据节点直至所述若干数量的数据块均被存储至相应的数据节点之后,还包括:基于预设的交互管道将所述各数据节点中每个数据节点接收到的数据块发送至所述各数据节点中的其他数据节点。6.根据权利要求5所述的数据存储方法,其特征在于,所述基于预设的交互管道将所述各数据节点中每个数据节点接收到的数据块发送至...

【专利技术属性】
技术研发人员:高矗李选
申请(专利权)人:济南浪潮数据技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1