分散hadoop集群的制作方法_3

文档序号:8516052阅读:来源:国知局
文件元数据。主节点104可以尝试基于该文件元数据来查找文件114。当没有找到文件114时,主节点104可以将该文件元数据分发给主节点104中的另一主节点104。该文件元数据可以在全部的主节点104当中进行分发,直至确定文件114不是分布式文件系统100的一部分为止。在确定文件114不是分布式文件系统100的一部分之后,主节点104中的一个主节点104可以打开写入流程。写入流程可以包括由分布式文件系统100执行的任何一组或一系列操作,以将来自客户端106的数据写入到数据单元112中的一个或更多个数据单元112。
[0045]作为补充或另选地,当任务包括向分布式文件系统100写入文件114时,最初接收该任务的主节点104可以被构造为在数据节点110当中进行数据节点负载均衡运算。数据节点负载均衡运算可以评估由数据节点110中的每一个数据节点110正在处理的负载。例如,数据节点负载均衡运算可以评估由数据节点110中的每一个数据节点110正在执行的任务或子任务的数目。至少部分地基于数据节点负载均衡运算,主节点104可以选择数据节点I1中的一个数据节点110,以向其写入文件114。主节点104然后可以打开写入流程并向客户端106发送成功消息。在一些实施方式中,除了接收到任务的主节点之外的一个或更多个主节点104首先可以在数据节点110当中进行数据节点负载均衡运算。在这些实施方式以及其它实施方式中,进行数据节点负载均衡运算的主节点104可以将结果传送给首先接收任务的主节点104。
[0046]在另一示例中,任务可以包括计算任务。通常,计算任务可以包括由分布式文件系统100的一些部分执行的任何内部处理(诸如由主节点104做出的评估)。诸如由主节点104做出的评估这样的计算任务可以包括全部的主节点104,或者可以包括主节点104中的一些部分。
[0047]在一些实施方式中,当任何包括计算任务时,选择主节点104中的一个主节点104。可以例如基于分布式文件系统100的当前工作量、基于预定顺序或者随机地来选择主节点104。在选择主节点104之后,所选择的主节点104可以执行特定功能,而未被选择的主节点104可以执行其它功能。如上所述,一些计算任务可以适用于主节点104的一部分或子集。在任务仅适用于主节点104的一部分的情况下,可以存在所选择的主节点104、一个或更多个未被选择的主节点104、以及其它主节点104。通常,任务将不涉及其它主节点104。
[0048]在一些实施方式中,未被选择的主节点104中的每一个未被选择的主节点104可以被构造为从所选择的主节点104接收计算任务。未被选择的主节点104中的每一个未被选择的主节点104然后可以通过在本地执行计算任务来获得主节点特定结果。例如,未被选择的主节点104中的每一个未被选择的主节点104可以执行关于其自身的评估,这可以生成主节点特定结果。
[0049]在一些实施方式中,已经接收到计算任务的未被选择的主节点104中的每一个未被选择的主节点104可以确定其它未被选择的主节点104是否已经接收到计算任务。当并非全部的其它未被选择的主节点104都已经接收到计算任务时,已经接收到计算任务的未被选择的主节点104可以将主节点特定结果和计算任务发送到未被选择的主节点104中的、尚未接收到计算任务的另一未被选择的主节点104。然而,当全部的未被选择的主节点104都已经接收到计算任务时,未被选择的主节点104中的每一个未被选择的主节点104可以将主节点特定结果发送到所选择的主节点104。所选择的主节点104可以编译主节点特定结果,或者以其它方式处理由计算任务生成的信息。
[0050]在一些实施方式中,未被选择的主节点104中的每一个未被选择的主节点104可以从其它未被选择的主节点104接收其它主节点特定结果。接收其它主节点特定结果的未被选择的主节点104可以将在本地获得的(即,通过执行关于其自身的计算任务而生成的)主节点特定结果与所述其它主节点特定结果进行组合。当未被选择的主节点104中的一些未被选择的主节点104尚没有接收到计算任务时,已经接收到计算任务的未被选择的主节点104可以将主节点特定结果与所述其它主节点特定结果的组合发送到尚未接收到计算任务的未被选择的主节点104中的另一未被选择的主节点104。当全部的未被选择的主节点104都已经接收到计算任务时,编译来自全部的未被选择的主节点104的主节点特定结果的组合的未被选择的主节点104可以将主节点特定结果与所述其它主节点特定结果的组合发送到所选择的主节点104。
[0051]例如,第一主节点104A可以是所选择的主节点104,并且计算任务可以是操作计算能力的评估。第一主节点104A可以将计算任务发送到第二主节点104B。第二主节点104B可以接收计算任务,并且执行关于其自身的评估以获得针对第二主节点104B的主节点特定结果。然后,第二主节点104B可以确定第三主节点104C是否已经接收到计算任务。如果第三主节点104C尚未接收到计算任务,则第二主节点104B可以将针对第二主节点104B的主节点特定结果以及计算任务发送到第三主节点104C。然后,第三主节点104C可以在本地执行计算任务,以获得针对第三主节点104C的主节点特定结果。然后,第三主节点104C可以将针对第三主节点104C的主节点特定结果与针对第二主节点104B的主节点特定结果进行组合,并且将所组合的主节点特定结果发送到第一主节点104A。
[0052]图2是根据本文中所描述的至少一些实施方式布置的、管理分布式文件系统的示例方法200的流程图。方法200可以全部地或部分地由例如图1中的导向器单元102或者主节点104的任一个主节点104或其任何组合来执行。方法200包括如通过块202、204、206和/或208中的一个或更多个块例示的各种操作、功能或动作。方法200可以开始于块202。
[0053]在块202 ( “接收与针对分布式文件系统来管理数据相关的任务”)中,可以接收与针对分布式文件系统来管理数据相关的任务。任务可以涉及以下项:在分布式文件系统内传送计算任务、向分布式文件系统写入文件、访问分布式文件系统中的文件、处理分布式文件系统中的数据、改变分布式文件系统中的文件的名称、或者删除分布式文件系统中的文件。块202可以紧接着块204。
[0054]在块204 ( “选择一个或更多个主节点来管理任务,这些主节点以对等分布式架构来进行构造并且与数据节点可操作地联接”)中,选择来自多个主节点的至少一个主节点。所述多个主节点可以以对等分布式架构来进行构造并且与一个或更多个数据节点可操作地联接。块204可以紧接着块206。
[0055]在块206 ( “管理任务在数据节点中的一个或更多个数据节点当中的分发,由所选择的主节点来执行任务的分发的管理”)中,由所选择的主节点来管理任务的分发。可以在数据节点中的一个或更多个数据节点当中分发任务。块206可以紧接着块208。
[0056]在块208 (“在主节点中的至少一些主节点当中传送任务状态以及分布式文件系统的至少一部分的状态”)中,可以在主节点中的至少一些主节点当中传送任务状态。作为补充或另选地,可以在主节点中的至少一些主节点当中传送分布式文件系统的至少一部分的状态(系统状态)。例如,可以生成任务的处理的运行语句并将该运行语句广播至主节点。
[0057]本领域技术人员将要领会的是,对于本文中公开的这些处理和方法以及其它处理和方法,可以以不同的顺序来实现在所述处理和方法中执行的功能。此外,概述的步骤和操作仅作为示例而提供,并且在不损害所公开的实施方式的本质的情况下,所述步骤和操作中的一些步骤和操作可以是可选的,可以被组合成更少的步骤和操作,或者可以被扩展成附加的步骤和操作。
[0058]例如,方法200可以包括将任务划分成多个子任务。在这些实施方式以及其它实施方式中,管理任务的分发可以包括在主节点中的一个或更多个主节点当中分发子任务。另外,在数据节点中的一个或更多个数据节点执行子任务之后,管理任务的分发可以包括收集所述子任务的结果。
[0059]在一些实施方式中,任务可以包括访问来自分布式文件系统的文件。在这些实施方式以及其它实施方式中,方法200可以包括接收任务,该任务可以包括文件元数据。文件元数据可以识别文件。另外,方法200可以包括尝试基于文件元数据来查找文件。当没有找到文件时,方法200可以包括将任务分发给主节点中的另一主节点。当找到文件时,方法200可以包括发送指示该文件的位置的系统元数据以及发送成功消息。另外,在一些实施方式中,当主节点中的任一个都没有找到文件时,方法200可以包括发送空消息。另选地,当主节点中的任一个都没有找到文件时,方法200可以包括打开写入流程。
[0060]在一些实施方式中,当任务包括计算任务时,方法200可以包括从主节点中选择第一主节点。第一未被选择的主节点可以从第一主节点接收计算任务。接收计算任务的第一未被选择的主节点可以通过在本地执行计算任务来获得主节点特定结果。然后,第一未被选择的主节点可以确定其它未被选择的主节点是否已经接收到计算任务。当其它未被选择的主节点尚未接收到计算任务时,第一未被选择的主节点可以将主节点特定结果和计算任务发送到其它未被选择的主节点的第二未被选择的主节点。当其它未被选择的主节点已经接收到计算任务时,方法200可以包括将主节点特定结果发送到第一主节点。
[0061]在一些实施方式中,当任务包括计算任务时,方法200可以包括第一未被选择的主节点从其它未被选择的主节点接收其它主节点特定结果以及将主节点特定结果与所述其它主节点特定结果进行组合。当并非全部的其它未被选择的主节点都已经接收到计算任务时,第一未被选择的主节点可以将主节点特定结果与所述其它主节点特定结果的组合发送到第二未被选择的主节点。当全部的其它未被选择的主节点都已经接收到计算任务时,未被选择的主节点可以将主节点特定结果与所述其它主节点特定结果的组合发送到第一主节点。
[0062]在一些实施方式中,方法200可以包括在主节点中的至少一些主节点当中进行主节点负载均衡运算。基于主节点负载均衡运算,可以将任务指派或分发给主节点中的一个或更多个主节点。主节点负载均衡运算可以包括例如评估冗余是否可用、评估本地计算能力可用性、或者评估任务的数目。
[0063]例如,在一些实施方式中,当在接收任务的主节点处存在冗余时,该主节点可以接受任务。然而,当不存在冗余时,该主节点可以将任务发送到另一主节点。另选地或另外,接收任务的主节点可以评估其本地计算能力可用性。当本地计算可用性低于阀值计算能力时,该主节点可以将指示不充足计算能力的消息发送到主节点中的另一主节点。另选地或另外,接收任务的主节点可以评估主节点中的每一个主节点正在执行的任务的数目。该主节点可以将任务分发给执行最低数目的任务的第一主节点。
[0064]在一些实施方式中,方法200可以包括将任务随机地指派给主节点中的一个主节点。随机地指派任务可以基于例如主节点识别符。在一些实施方式中,方法200可以包括使用分布式散列函数来将主节点识别符指派给主节点中的每一个主节点。
[0065]在一些实施方式中,当任务包括向分布式文件系统写入文件时,方法200可以包括在数据节点当中进行数据节点负载均衡运算。基于数据节点负载均衡运算,方法200可以选择数据节点以向其写入文件、打开写入流程、以及发送成功消息。
[0066]在一些实施方式中,主节点可以被构造为使得当所述主节点中的一个主节点发生故障时,可以将指派给发生故障的主
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1