一种数据写入方法及装置制造方法及图纸

技术编号:12613933 阅读:78 留言:0更新日期:2015-12-30 12:17
本发明专利技术提供一种数据写入方法及装置,所述方法包括:数据节点DataNode获取本地存储资源的可用状态,并根据本地存储资源的可用状态维护可用资源列表和不可用资源列表;其中,当本地存储资源的可用状态由不可用变为可用时,将其加入到所述可用资源列表中;当所述DataNode接收到客户端发送的数据写入请求时,从所述可用存储资源列表中选择用于数据写入的目标存储资源,并对所述目标存储资源进行数据写入。应用本发明专利技术实施例可以提高数据写入成功率和效率,并提高存储资源利用率。

【技术实现步骤摘要】

本专利技术涉及数据处理
,尤其涉及一种数据写入方法及装置
技术介绍
HDFS(Hadoop Distributed File System,Hadoop 分布式文件系统)是一个主/从(Master/Slave)体系结构,一个HDFS集群由一个NameNode和多个DataNode组成。NameNode为元数据节点,管理文件系统的元数据,DataNode为数据节点,存储实际的文件数据。HDFS集群的DataNode需配置多个存储资源,在DataNode初始化时加载全部资源列表到内存中,DataNode在写入数据时按如下规则选择存储资源:I)、轮询配置文件中的全部存储资源;2)、将配置文件中的全部存储资源按剩余容量排序,选择剩余容量最大的存储资源。选中存储资源后,DataNode调用标准的文件读写接口将对应的数据块写到该存储资源上。然而实践发现,在上述数据写入方案中,若被选中的存储资源在数据写入前已故障,DataNode仍然会向其下发一次写业务触发容错处理过程,影响写性能,导致数据写入成功率和效率较低;此外,当DataNode确定存储资源故障后,即使后续该存储资源恢复正常,DataNode仍不会使用该存储资源,造成存储资源浪费,存储资源利用率低。
技术实现思路
本专利技术提供一种数据写入方法及装置,以解决现有技术中数据写入成功率和效率较低、存储资源利用率低的问题。根据本专利技术实施例的第一方面,提供一种数据写入方法,包括:DataNode获取本地存储资源的可用状态,并根据本地存储资源的可用状态维护可用资源列表和不可用资源列表;其中,当本地存储资源的可用状态由不可用变为可用时,将其加入到所述可用资源列表中;当所述DataNode接收到客户端发送的数据写入请求时,从所述可用存储资源列表中选择用于数据写入的目标存储资源,并对所述目标存储资源进行数据写入。根据本专利技术实施例的第二方面,提供一种数据写入装置,应用于数据节点DataNode,包括:状态管理单元,用于获取本地存储资源的可用状态,并根据本地存储资源的可用状态维护可用资源列表和不可用资源列表;其中,当本地存储资源的可用状态由不可用变为可用时,将其加入到所述可用资源列表中;数据写入单元,用于当接收到客户端发送的数据写入请求时,从所述可用存储资源列表中选择用于数据写入的目标存储资源,并对所述目标存储资源进行数据写入。应用本专利技术实施例,DataNode节点通过获取本地存储资源的可用状态,并根据本地存储资源的可用状态维护可用资源列表和不可用资源列表,当DataNode接收到客户端发送的数据写入请求时,从可用存储资源列表中选择用于数据写入的目标存储资源,并对目标存储资源进行数据写入,一方面,避免了 DataNode选中不可用的存储资源进行数据写入,提高了数据写入的成功率和效率;另一方面,通过将可用状态从不可用变为可用的本地存储资源加入到可用资源列表中,与现有技术中存储资源故障后不再使用的实现方式相比,减少了存储资源的浪费,提高了存储资源的利用率。【附图说明】图1是本专利技术实施例提供的一种数据写入的网络架构示意图;图2是本专利技术实施例提供的一种数据写入方法的流程示意图;图3是本专利技术实施例提供的另一种数据写入方法的流程示意图;图4是本专利技术实施例提供的一种数据写入装置的结构示意图;图5是本专利技术实施例提供的另一种数据写入装置的结构示意图;图6是本专利技术实施例提供的另一种数据写入装置的结构示意图。【具体实施方式】为了使本
的人员更好地理解本专利技术实施例中的技术方案,并使本专利技术实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本专利技术实施例中技术方案作进一步详细的说明。为了使本领域技术人员更好地理解本专利技术实施例提供的技术方案,下面先对本专利技术实施例适用的网络架构进行描述。请参见图1,图1为本专利技术实施例提供的一种数据写入的网络架构示意图。如图1所示,该网络架构示意图可以包括NameNode、DataNode以及客户端(Client),其中,当客户端需要进行数据写入时,可以向NameNode发起数据写入请求,由NameNode确定数据写入的DataNode,进而,客户端可以向该DataNode发送数据写入请求,由DataNode从可用资源列表中选择用于数据写入的目标存储资源,并对该目标存储资源进行数据写入。当数据写入成功之后,客户端可以向NameNode返回写入成功响应,由NameNode保存数据写入相关的元数据信息。基于图1所示的网络架构,本专利技术实施例提供了一种数据写入方法。请参见图2,图2为本专利技术实施例提供的一种数据写入方法的流程示意图,如图2所示,该数据写入方法可以包括以下步骤:步骤201、DataNode获取本地存储资源的可用状态,并根据本地存储资源的可用状态维护可用资源列表和不可用资源列表当本地存储资源的可用状态由不可用变为可用时,将其加入到所述可用资源列表中。本专利技术实施例中,为了避免DataNode在选择进行数据写入的存储资源时,所选择的存储资源为不可用(如故障或离线等)的存储资源,DataNode可以根据本地存储资源的可用状态维护可用资源列表和不可用资源列表,从而,当DataNode需要进行数据写入时,可以从可用资源列表中选择存储资源进行数据写入,提高了数据写入成功率和效率。本专利技术实施例中,存储资源的可用状态可以包括可用或可不用,其中,当存储资源故障或离线或资源挂载目录不可访问时,则认为该存储资源不可用;当存储资源未发生故障、未离线以及资源挂载目录可访问时,则认为该存储资源可用;当本地存储资源的可用状态由不可用变为可用时,将其加入到可用资源列表中,从而,可以减少存储资源浪费,提高存储资源利用率。作为一种可选的实施方式,上述步骤201中,DataNode获取本地存储资源的可用状态,并根据本地存储资源的可用状态维护可用资源列表和不可用资源列表,可以包括以下步骤:11)、DataNode定时检测可用资源列表和可不用资源列表中各存储资源的可用状态;12)、当可用资源列表中存在可用状态为不可用的存储资源时,DataNode将该存储资源从可用资源列表中删除,并加入到不可用资源列表中;13)、当可不用资源列表中存在可用状态为可用的存储资源时,DataNode将该存储资源从不可用资源列表中删除,并加入到可用资源列表中。值得说明的是,上述步骤12)和步骤13)之间并不存在时序关系,即可以先执行步骤12),后执行步骤13);也可以先执行步骤13),后执行步骤12),本专利技术实施例不再赘述。在该实施方式中,DataNode —方面可以在本地创建可用资源列表和不可用资源列表,其中,当可用资源列表和不可用资源列表初始化创建时,DataNode所有本地存储资源均包括在可用资源列表中,不可用资源列表为空。另一方面,DataNode可以专门启动一个线程,用于定时检测本地存储资源的可用状态,即定时检测(例如每隔预设时间检测一次,或在固定的预设时间检测,可以根据具体场景确定)可用资源列表和不可用资源列表中各存储资源的可用状态,并根据各存储资源的可用状态对可用资源列表和不可用资源列表进行维护。其中,当可用资源列表中存在可用状态为不可用的存储资源时,即存储资源由于故障或离线等原因不可用时本文档来自技高网
...

【技术保护点】
一种数据写入方法,其特征在于,包括:数据节点DataNode获取本地存储资源的可用状态,并根据本地存储资源的可用状态维护可用资源列表和不可用资源列表;其中,当本地存储资源的可用状态由不可用变为可用时,将其加入到所述可用资源列表中;当所述DataNode接收到客户端发送的数据写入请求时,从所述可用存储资源列表中选择用于数据写入的目标存储资源,并对所述目标存储资源进行数据写入。

【技术特征摘要】

【专利技术属性】
技术研发人员:张敏
申请(专利权)人:浙江宇视科技有限公司
类型:发明
国别省市:浙江;33

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

1