分散hadoop集群的制作方法_2

文档序号:8516052阅读:来源:国知局
造为接收向分布式文件系统100传送的一个或更多个任务或者在分布式文件系统100中以其它方式发起的一个或更多个任务。例如,在一些实施方式中,客户端106可以向导向器单元102传送任务,该任务可以由第一主节点104A接收。另选地或作为补充,主节点104中的一个或更多个主节点104可以测量存在于分布式文件系统100中的条件,并且可以因此发起任务。在分布式文件系统100中发起的任务的示例可以包括评估导向器单元102、一个或更多个主节点104、和/或分布式文件系统100或其任何部分的健康状况和/或功能。
[0027]当主节点104中的一个主节点104接收到任务时,可以由接收到该任务的主节点104来执行该任务或者将该任务分发给其它主节点104中的一个或更多个主节点104。通过分发任务,主节点104可以划分强加在分布式文件系统100上的总工作量。在分发中,主节点104是总体上等效或大致等效的装置。例如,主节点104中的每一个主节点104可以包括相似的计算能力和处理能力。因此,主节点104中的每一个主节点104可以被构造为管理所接收的任务在这些主节点104当中的分发。另外,由特定主节点104执行的特定功能可以通过以下方式来确定:特定主节点104是接收还是发起任务、任务的特定内容、导向器单元102的当前工作量、以及因此全部主节点104的组合、是否选择了特定主节点104、由另一主节点104做出的评估、或其任何组合。
[0028]在分发任务之后,主节点104中的每一个主节点104还可以被构造为生成任务状态以及分布式文件系统100的至少一部分的状态(系统状态),并且将这些状态传送给其它主节点104中的每一个主节点104。可以连续地或定期地生成任务状态和/或系统状态。同样,任务状态和/或系统状态的传送可以是定期的或连续的。因此,主节点104当中的通信可以是这样的:每个主节点104不断地了解由主节点104中的每一个主节点104执行的每个任务的任务状态和/或如由主节点104中的每一个主节点104评估的系统状态。
[0029]在一些实施方式中,任务状态可以包括任务的处理的运行语句。例如,运行语句可以包括已经完成了任务的哪些部分、涉及哪个主节点104或数据节点110、以及分配给任务的资源。在一些实施方式中,主节点104中的每一个主节点104可以被构造为生成与这些主节点104关联的任务的处理的运行语句。运行语句可以包括与任务的处理有关的信息(诸如消耗的资源、涉及的主节点104、涉及的数据节点110、完成所需的时间、完成的百分比、用于完成的附加资源等)。在生成运行语句之后,这些主节点中的每一个主节点可以被构造为将它们的运行语句广播至其它主节点104。以这种方式,主节点104中的每一个主节点104可以具有与由其它主节点104执行的任务的处理有关的信息。
[0030]例如,第一主节点104A可以接收第一任务。第一任务可以包括将第一文件114A写入到分布式文件系统100的请求。第一主节点104A可以管理第一任务在该第一主节点104A、第二主节点104B和第三主节点104C当中的分发。另外,第一主节点104A可以生成写入第一文件114A的处理的运行语句,并且然后可以将该运行语句广播至第二主节点104B和第三主节点104C。因此,第二主节点104B和第三主节点104C可以具有与将第一文件114A写入到分布式文件系统100的处理有关的信息。另外,第一主节点104A可以在写入第一文件114A的处理期间评估某个时间的系统状态。第一主节点104A可以向第二主节点104B和第三主节点104C传送系统状态。通过任务的分发以及任务状态的传送,主节点104中的每一个主节点104可以了解这些主节点104中的哪个主节点104与各自的任务关联以及保留什么功能以完成各个任务。
[0031]在一些实施方式中,任务状态的传送也可以提供可靠性。例如,主节点104可以被构造为使得当这些主节点104中的一个主节点104发生故障时,保持操作的主节点104在剩余的主节点104当中重新分发分指派给发生故障的主节点104的任务中的一个或更多个任务。在这些实施方式以及其它实施方式中,保持操作的主节点104可以由于缺乏关于指派给发生故障的主节点104的任务的进展而了解到该故障主节点104。因为任务状态已经被传送到保持操作的主节点104,所以分布式文件系统100可以在处理指派给发生故障的主节点104的任务时在没有多少重复或干扰或者没有重复或干扰的情况下从故障中恢复。
[0032]例如,可以将任务指派给第一主节点104A。在处理任务期间,第一主节点104A可以向第二主节点104B和第三主节点104C传送运行语句。第一主节点104A可能然后发生故障,这可以由第二主节点104B和/或第三主节点104C检测到。第二主节点104B和/或第三主节点104C可以在第二主节点104B和第三主节点104C之间重新指派任务。因为第二主节点104B和/或第三主节点104C已经接收到运行语句,所以可以重新指派任务的仅剩余部分。
[0033]在一些实施方式中,主节点104可以被构造为在这些主节点104当中进行主节点负载均衡(load balancing)运算。在这些实施方式以及其它实施方式中,向主节点104指派任务可以至少部分地基于主节点负载均衡运算。可以在将任务指派或分发给主节点104之前进行主节点负载均衡运算。主节点负载均衡运算可以确定主节点104中的一个或更多个主节点104的接受任务的可用性,可以确定主节点104中的一个或更多个主节点104的接受任务的不可用性,可以在主节点104当中重新指派任务,和/或确定与任务的执行相关的其它信息或执行其它任务。
[0034]主节点负载均衡运算的一些示例可以包括考虑以下项:主节点104中的一个或更多个主节点104的能力可用性、主节点104中的一个或更多个主节点104的本地计算可用性、是否可以得到充足的计算资源以确保在任务的执行期间针对主节点104中的一个或更多个主节点104的冗余、主节点104中的每一个主节点104正在执行的任务的数目、或者其任何组合。
[0035]主节点负载均衡运算可以包括主节点104当中的通信或者用于确定强加在主节点104中的每一个主节点104上的相对负载的本地评估。另选地,主节点负载均衡运算可以基于运行语句、任务状态通信、和/或系统状态通信。在任何情况下,主节点104中的一个主节点104可以从客户端106接收任务。该主节点104然后进行主节点负载均衡运算,并且对结果进行排序或者以其它方式处理结果。基于所述结果,该主节点104向主节点104中的一个或更多个主节点104指派任务,这可以包括向它自身指派任务。
[0036]例如,接收任务的主节点104可以被构造为评估主节点104中的每一个主节点104处的本地计算能力可用性。当主节点104中的一个主节点104处的本地计算可用性低于阀值计算能力时,评估本地计算能力的主节点104可以不向具有低本地计算可用性的主节点104指派任务。另外,评估本地计算能力的主节点104可以向其它主节点104发送指示不充足计算能力的消息。所述其它主节点104然后可以停止向具有低本地计算可用性的主节点104指派任务,直至本地计算可用性提高为止。
[0037]在另一示例中,从客户端106接收任务的主节点104可以被构造为评估冗余是否可用。在该示例中,该主节点104可以评估冗余是否在本地可用。例如,第一主节点104A可以正在评估冗余是否在该第一主节点104A处可用。冗余通常可以是指继指派任务之后或者在指派任务之前的备份计算系统或另选计算系统的可用性。例如,主节点104可以评估分布式文件系统100是否包括充足的存储容量等,使得数据节点110中的一个或更多个数据节点110的故障不会导致数据丢失。当存在冗余时,主节点104可以接受任务。当不存在冗余时,主节点104可以将任务发送给主节点104中的另一主节点104。在接收到该任务的主节点104处,可以在本地评估冗余。另外,当存在冗余时,主节点104接受任务,而当不存在冗余时,主节点104可以将任务发送给主节点104中的另一主节点104。可以继续,直至主节点104中的一个主节点104接受任务为止。另选地,主节点104中的一个主节点104可以重新指派已经指派给主节点104中的一个或更多个主节点104的任务,以创造执行所述任务所需的冗余。
[0038]在另一示例中,接收任务的主节点104可以被构造为评估主节点104中的每一个主节点104正在执行的任务的数目。评估任务的数目的主节点104可以将任务分发到例如执行最低数目的任务的主节点104。
[0039]另选地,在以上示例中的每个示例中,未接收任务的主节点104可以执行主节点负载均衡运算,并且将结果传送给接收了任务的主节点104或者正在确定任务的分发的主节点104。
[0040]在一些实施方式中,不是执行主节点负载均衡运算,而是可以将任务随机地指派给主节点104。例如,客户端106可以向导向器单元102传送任务,并且可以基于主节点识别符来随机地指派该任务。
[0041]在一些实施方式中,任务可以包括复数运算(Complex operat1n)和/或迭代运算(repetit1us operat1n)。在这些实施方式以及其它实施方式中,主节点104中的一个或更多个主节点104可以被构造为将任务划分成多个子任务。分发所述任务可以包括在主节点104之间分发所述多个子任务。主节点104中的每一个主节点104可以处理子任务,好像该子任务是任务一样。在一些实施方式中,在数据节点110中的一个或更多个数据节点110执行子任务之后,主节点104可以收集所述子任务的结果。例如,任务可以包括改变一千份文件114的名称,该任务由第一主节点104A接收。可以将该任务划分成一千个子任务,这一千个子任务中的每一个子任务包括改变这些文件114中的一个文件114的名称。可以将子任务分发到主节点104。主节点104中的每一个主节点104发起数据节点110中的操作,以改变包括在指派给该数据节点110的子任务中的文件114的名称。在该示例中,第一主节点104A可以不收集结果。
[0042]作为补充或另选地,由主节点104执行的操作中的一个或更多个操作可以根据由分布式文件系统100从客户端106接收的任务或者在分布式文件系统100中以其它方式发起的任务而改变。例如,当任务包括评估文件114中的一个文件114时,该任务可以包括识别文件114的文件元数据。在这种情况和其它情况下,接收该任务的主节点104可以尝试基于文件元数据来查找文件114。当没有找到文件114时,主节点104可以将该任务分发给主节点104中的另一主节点104。接收该任务的该主节点104也可以尝试基于文件元数据来查找文件114。以这种方式,在找到文件114之前,可以将该任务分发到主节点104中的很多主节点104。当主节点104中的任一个主节点104都未找到文件114时,这些主节点104可以被构造为发送空消息。可以将该空消息发送到客户端106,向客户端106指不未能找到文件114。
[0043]当找到文件114时,找到文件114的主节点104可以将指示文件114的位置的系统元数据发送到客户端106。另外,找到文件114的主节点104可以向客户端106发送成功消息。利用系统元数据,客户端106可以从数据节点110访问文件114。
[0044]在另一示例中,任务可以包括向分布式文件系统100写入到文件114。在一些实施方式中,当任务包括写入文件114时,主节点104中的一个主节点104可以接收识别待写入的文件114的
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1