应用于分布式文件系统的任务调度方法和设备的制造方法

文档序号:9810536阅读:1113来源:国知局
应用于分布式文件系统的任务调度方法和设备的制造方法
【技术领域】
[0001]本发明实施例涉及通信技术领域,尤其涉及一种应用于分布式文件系统的任务调度方法和设备。
【背景技术】
[0002]Hadoop 分布式文件系统(Hadoop Distributed File System,简称 HDFS)具有高容错性的特点,可以部署在低廉的硬件上,能够提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS包括多个元数据节点和大量的数据节点(Data node),元数据节点也称为名字节点(Name node),元数据节点用来存储HDFS的元数据,元数据包括文件的命名、文件包括的数据块的信息和以及数据块的副本的信息等数据,数据节点是HDFS中真正存储数据的地方,数据节点还会周期性地向元数据节点汇报其存储的数据块信息。
[0003]Map Reduce是一个开源的计算框架,主要用于大规模数据集中进行并行运算,从而提高大规模数据集的性能,因此,非常适合运行在HDFS中。为了进一步提高HDFS的性能,引入了缓存机制,缓存是一种根据局部性原理,利用小容量的高速存储设备保存近期频繁使用的数据,从而提高整个存储系统性能的机制。Dongfang Zhao等人提出了应用于HDFS等分布式文件系统的缓存机制,分布式文件系统的每个数据节点上混合部署固态硬盘(Solid State Disk 简称 SSD)和硬盘驱动器(Hard Disk Drive,简称 HDD),SSD 作为 HDD的缓存,通过记录、分析以往的数据请求模式来预测将来可能被请求到的数据,从而将将来可能被请求的数据从HDD预取到SSD,由于SSD的读取速率比HDD快的多,直接从SSD中读取数据速率更快,从而提高了分布式文件系统的性能。
[0004]现有的缓存策略都是虽然能够在一定程度上提高系统性能,但是,由于基于对过去的访问情况估计将来,有一定的粗略性,无法精确地将即将访问的数据提前读入SSD。

【发明内容】

[0005]本发明实施例提供一种应用于分布式文件系统的任务调度方法和设备,能够准确的将将要处理的数据块预先从HDD中读取到SSD中,提高了缓存的命中率。
[0006]本发明第一方面提供一种应用于分布式文件系统的Map Reduce任务调度方法,包括:
[0007]元数据节点获取待处理的任务对应的数据块的标识,并根据所述数据块的标识获取所述数据块的待读取副本的存储信息;
[0008]所述元数据节点根据所述待读取副本的存储信息,向所述待读取副本所在的数据节点发送预取指令,所述预取指令用于指示所述数据节点从所述数据节点的硬盘驱动器中读取所述数据块,并将所述数据块写入所述数据节点的固态硬盘;
[0009]所述元数据节点将所述数据块的元数据添加到预取数据成功表,所述预取数据成功表中的任务优先被所述元数据节点调度,在所述元数据节点调度所述待处理的任务时,所述元数据节点根据所述预取数据成功表中保存的所述数据块的元数据从所述数据节点的固态硬盘中读取所述数据块。
[0010]结合本发明第一方面,在本发明第一方面的第一种可能的实现方式中,所述元数据节点根据所述数据块的标识获取所述数据块的待读取副本的存储信息,包括:
[0011]所述元数据节点根据所述任务对应的数据块的标识,获取所述数据块的副本信息;
[0012]所述元数据节点根据所述数据块的副本信息,获取所述数据块的各个副本所在的数据节点的资源使用率,确定资源使用率最低的数据节点;
[0013]若所述资源使用率最低的数据节点只有一个,则所述元数据节点将所述资源使用率最低的数据节点上的副本作为所述数据块的待读取副本,并获取所述待读取副本的存储信息;
[0014]若所述资源使用率最低的数据节点为多个,则所述元数据节点获取所述各资源使用率最低的数据节点的预取数据块个数,从所述各资源使用率最低的数据节点中选取预取数据块个数最少的数据节点上的副本作为所述数据块的待读取副本,并获取所述待读取副本的存储信息。
[0015]结合本发明第一方面的第一种可能的实现方式,在本发明第一方面的第二种可能的实现方式中,所述元数据节点在将所述数据块的元数据添加到预取数据成功表之后,所述方法还包括:
[0016]所述元数据节点将所述数据节点的预取计数值加I。
[0017]结合本发明第一方面以及第一方面的第一种和第二种可能的实现方式,在本发明第一方面的第三种可能的实现方式中,所述元数据节点获取待处理的任务对应的数据块的标识之前,所述方法还包括:
[0018]所述元数据节点接收客户端提交的Map Reduce作业;
[0019]所述元数据节点将所述Map Reduce作业划分为多个待处理的任务。
[0020]结合本发明第一方面,在本发明第一方面的第四种可能的实现方式中,所述元数据节点根据所述数据块的标识获取所述数据块的待读取副本之前,所述方法还包括:
[0021]所述元数据节点判断所述预取数据成功表中是否包含所述数据块的元数据;
[0022]若不包含,则所述元数据节点根据所述数据块的标识获取所述数据块的待读取副本。
[0023]本发明第二方面提供一种元数据节点,包括:
[0024]获取模块,用于获取待处理的任务对应的数据块的标识,并根据所述数据块的标识获取所述数据块的待读取副本的存储信息;
[0025]发送模块,用于根据所述待读取副本的存储信息,向所述待读取副本所在的数据节点发送预取指令,所述预取指令用于指示所述数据节点从所述数据节点的硬盘驱动器中读取所述数据块,并将所述数据块写入所述数据节点的固态硬盘;
[0026]处理模块,用于将所述数据块的元数据添加到预取数据成功表,所述预取数据成功表中的任务优先被所述元数据节点调度,在所述元数据节点调度所述待处理的任务时,所述处理模块还用于根据所述预取数据成功表中保存的所述数据块的元数据从所述数据节点的固态硬盘中读取所述数据块。
[0027]结合本发明第二方面,在本发明第二方面的第一种可能的实现方式中,所述获取模块具体用于:
[0028]根据所述任务对应的数据块的标识,获取所述数据块的副本信息;
[0029]根据所述数据块的副本信息,获取所述数据块的各个副本所在的数据节点的资源使用率,确定资源使用率最低的数据节点;
[0030]若所述资源使用率最低的数据节点只有一个,则将所述资源使用率最低的数据节点上的副本作为所述数据块的待读取副本,并获取所述待读取副本的存储信息;
[0031]若所述资源使用率最低的数据节点为多个,则获取所述各资源使用率最低的数据节点的预取数据块个数,从所述各资源使用率最低的数据节点中选取预取数据块个数最少的数据节点上的副本作为所述数据块的待读取副本,并获取所述待读取副本的存储信息。
[0032]结合本发明第二方面的第一种可能的实现方式,在本发明第二方面的第二种可能的实现方式中,所述处理模块还用于:
[0033]将所述数据节点的预取计数值加I。
[0034]结合本发明第二方面以及第二方面的第一种和第二种可能的实现方式,在本发明第二方面的第三种可能的实现方式中,所述获取模块还用于:
[0035]接收客户端提交的Map Reduce作业;
[0036]将所述Map Reduce作业划分为多个待处理的任务。
[0037]结合本发明第二方面,在本发明第二方面的第四种可能的实现方式中,所述获取模块还用于:
[0038]判断所述预取数据成功表中是否包含所述数据块的元数据;
[0039]若不包含,则根据所述数据块的标识获取所述数据块的待读取副本。
[0040]本发明实施例的应用于分布式文件系统的Map Reduce任务调度方法和设备,元数据节点通过获取待处理的任务对应的
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1