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

文档序号:9810536阅读:来源:国知局
数据块的标识,并根据该数据块的标识获取该数据块的待读取副本的存储信息,然后,元数据节点根据该待读取副本的存储信息,向待读取副本所在的数据节点发送预取指令,以将该数据块从该数据节点的HDD中预取到SSD中,在预取成功后,元数据节点将所该数据块的元数据添加到预取数据成功表,后续在调度该待处理的任务时,元数据节点根据该数据块的元数据直接从该数据节点的SSD中读取该数据块。由于从SSD中读取数据的速率比从HDD中读取快的多,从而提到了数据块的读取速率,提高任务的处理效率,从而能够提高整个分布式文件系统的性能。现有技术中,在预取数据时是基于对过去的访问情况估计将来,有一定的粗略性,而本实施例中,由于Map Reduce中元数据节点预先知道有哪些待处理的任务,以及这些任务对应的数据块的标识,因此,元数据节点能够准确的将将要处理的数据块预先从HDD中读取到SSD中,提高了缓存的命中率。
【附图说明】
[0041]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0042]图1为一种分布式文件系统的架构示意图;
[0043]图2为本发明实施例一提供的应用于分布式文件系统的任务调度方法的流程图;
[0044]图3为本发明实施例二提供的元数据节点的结构示意图;
[0045]图4为本发明实施例三提供的元数据节点的结构示意图。
【具体实施方式】
[0046]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0047]本发明实施例提供的任务调度方法主要应用于分布式文件系统中,图1为一种分布式文件系统的架构示意图,如图1所示,该分布式文件系统包括:元数据节点11和多个数据节点12,元数据管理节点11中存储有元数据,元数据是描述存储在分布式网络系统中的数据及其环境的数据,具体描述了分布式网络系统都存储了哪些数据,这些数据的存储位置、大小、名字空间等信息。元数据管理节点还用于监控数据节点的心跳和维护数据块的副本信息,数据节点用于管理自己节点上存储的数据。通常一个文件会被划分成一个或多个数据块,这些数据块存储在一组数据节点上。为了保证分布式网络存储系统的高可靠性,分布式网络存储系统为每个数据块具有多个副本,多个副本存储在不同的数据节点上。
[0048]Map Reduce是一个开源的计算框架,主要用于大规模数据集中进行并行运算,非常适合运行在分布式文件系统中。Map Reduce框架包括:客户端、作业跟踪器(Jobtracker)和任务跟踪器(Task Tracker) ,Job Tracker对应于分布式文件系统中的元数据节点,Task Tracker对应于分布式文件系统中的数据节点。Map Reduce采用主/从结构(Master/Slaver),Master是一个全局管理者,功能包括:作业管理、状态监控和任务调度等,即Map Reduce中的Job Tracker。Slave:负责任务的执行和任务状态的回报,即MapReduce 中的 Task Tracker。客户端向 Job Tracker 提交作业(Job), Job tracker 会将作业划分为多个任务(Task)。Task Tracker 一直通过远程过程调用协议(Remote ProcedureCall Protocol,简称RPC)向Job Tracker发送心跳(heartbeat)询问有没有任务可做,如果有,Job tracker会派发任务给Task Tracker执行,Task Tracker是实际任务的执行者。
[0049]图2为本发明实施例一提供的应用于分布式文件系统的任务调度方法的流程图,如图1所示,本实施例的方法可以包括以下步骤:
[0050]步骤101、元数据节点获取待处理的任务对应的数据块的标识,并根据该数据块的标识获取该数据块的待读取副本的存储信息。
[0051]在本步骤之前,元数据节点接收客户端提交的Map Reduce作业,并将该MapReduce作业划分为多个待处理的任务。具体的,一个MapRedcue作业是通过客户端向元数据节点的JobTracker提交的,JobTracker接到客户端的作业请求后把其加入作业队列中,并将该Map Reduce作业划分为多个任务。元数据节点还用于监听数据节点发送的心跳信息,具体地,该心跳信息由数据节点上的Task Jobtracker发送,该心跳信息中包括数据节点的资源使用情况和任务运行情况等信息,TaskTracker与JobTracker和Task之间采用了 RPC协议进行通信。
[0052]在将作业划分为多个任务后,元数据节点获取每个任务对应的数据块的标识(block ID),并根据各数据块的标识获取各数据块的待读取副本的存储信息。为了保证分布式文件系统的可靠性,分布式文件系统中每个数据块都具有多个副本,这些副本分别存储在不同的数据节点上,这些副本的内容完全相同,只是存储位置不同。元数据节点需要从数据块的多个副本中选择一个待读取副本,从待读取副本所在的数据节点中读取该数据块。元数据节点根据该数据块的标识获取该数据块的待读取副本的存储信息,具体为:
[0053]首先,元数据节点根据待处理的任务对应的数据块的标识,获取该数据块的副本信息。
[0054]元数据节点中存储有各数据块的信息,数据块的信息具体为数据块的标识、大小、数据块的副本信息等。元数据节点根据该任务对应的数据块的标识,查询获取到该数据块的副本信息,数据块的副本信息包括数据块的副本个数、数据块副本的存储信息等,数据块副本的存储信息具体为数据块副本存储的数据节点以及数据节点的地址信息。
[0055]然后,元数据节点根据该数据块的副本信息,获取该数据块的各个副本所在的数据节点的资源使用率,确定资源使用率最低的数据节点。
[0056]元数据节点根据数据块的副本信息,能够获知数据块的各副本所在的数据节点,然后,元数据节点获取该数据块的各个副本所在的数据节点的资源使用率。数据节点会定期通过心跳信息等方式向元数据节点上报自己的资源使用率,因此,元数据节点上存储有该数据块的各个副本所在的数据节点的资源使用率,元数据节点从该数据块的多个副本所在的数据节点中选择资源使用率最低的数据节点。若资源使用率最低的数据节点只有一个,则元数据节点将资源使用率最低的数据节点上的副本作为该数据块的待读取副本。若资源使用率最低的数据节点为多个,则元数据节点进一步获取各资源使用率最低的数据节点的预取数据块个数,从各资源使用率最低的数据节点中选取预取数据块个数最少的数据节点上的副本作为数据块的待读取副本。这里只是列举了一种确定待读取副本的方法,当然,元数据节点还可以根据其他方法确定待读取副本。
[0057]元数据节点会为每个数据节点维护一个预取数据块个数,该预取数据块个数表示从数据节点的HDD中预取数据成功的数据块的个数,预取成功的数据块被存储到SSD中。数据节点的预取数据块个数越大,说明SSD中存储的预取数据越多,SSD剩余的存储空间越小,数据节点的预取数据块个数越小,说明SSD中存储的预取数据越少,SSD剩余的存储空间越大,因此,元数据节点在选取待读取副本时,优先选取预取数据块个数最少的数据节点上的副本作为数据块的待读取副本。
[0058]步骤102、元数据节点根据该待读取副本的存储信息,向该待读取副本所在的数据节点发送预取指令,该预取指令用于指示该数据节点从该数据节点的硬盘驱动器中读取该数据块,并
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1