CN104838374A - 分散hadoop集群 - Google Patents

分散hadoop集群 Download PDF

Info

Publication number
CN104838374A
CN104838374A CN201280077564.4A CN201280077564A CN104838374A CN 104838374 A CN104838374 A CN 104838374A CN 201280077564 A CN201280077564 A CN 201280077564A CN 104838374 A CN104838374 A CN 104838374A
Authority
CN
China
Prior art keywords
host node
task
file
distributed file
described multiple
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201280077564.4A
Other languages
English (en)
Inventor
应励志
宋学锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Empire Technology Development LLC
Original Assignee
Empire Technology Development LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Empire Technology Development LLC filed Critical Empire Technology Development LLC
Publication of CN104838374A publication Critical patent/CN104838374A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

在一些示例中,描述了分布式文件系统。所述分布式文件系统可以包括多个数据节点以及导向器单元。所述多个数据节点可以各自包括一个或更多个数据块。所述导向器单元可以包括多个主节点,所述多个主节点以对等分布式架构来进行构造并且与所述多个数据节点可操作地联接。所述多个主节点中的每一个主节点可以被构造为:接收与针对所述分布式文件系统来管理数据相关的任务;管理所述任务在所述多个主节点中的一个或更多个主节点当中的分发;以及向其它主节点中的每一个其它节点传送任务状态以及所述分布式文件系统的至少一部分的状态。

Description

分散HADOOP集群
背景技术
除非在本文中另外说明,否则本文中描述的材料不是针对本申请中的权利要求的现有技术,并且不应认为包括在本部分中即为现有技术。
可以将计算机系统构造为分布式文件系统。一般来说,分布式文件系统可以使得能够从多个主机访问存储在这些分布式文件系统中的文件。主机可以被远程地定位,并且可以经由例如计算机网络与分布式文件系统通信地联接。对文件的访问可以使得客户端能够读取或修改存在于分布式文件系统中的文件和/或使得客户端能够向分布式文件系统添加新文件。分布式文件系统可以通过复制文件来提供一些优势(诸如可靠性)。通过具有文件的多个副本,即使分布式文件系统的某些部分被损坏,用户也可以访问这些文件。
计算机集群通常包括被构造为一起操作的一组连接节点。作为连接成集群的结果,可以将节点视为单个单元并且作为单个单元来操作。可以通过例如计算机网络来连接节点。
包括计算机集群的一种类型的分布式文件系统是Hadoop分布式文件系统。Hadoop分布式文件系统可以包括单个主节点(该单个主节点可以被称为名称节点)以及工作节点的集群。主节点可以操作以协调对文件的访问。工作节点可以存储文件和/或执行与访问和/或修改存储在Hadoop分布式文件系统中的文件相关的各种动作。
发明内容
本文中所描述的技术总体上涉及分布式文件系统中的数据管理。
在一些示例中,描述了一种分布式文件系统。该分布式文件系统可以包括多个数据节点以及导向器(director)单元。所述多个数据节点可以各自包括一个或更多个数据块。所述导向器单元可以包括以对等分布式架构来进行构造的多个主节点,并且可以与所述多个数据节点可操作地联接。所述多个主节点中的每一个主节点可以被构造为:接收与针对所述分布式文件系统来管理数据相关的任务;管理所述任务在所述多个主节点中的一个或更多个主节点当中的分发;以及向其它主节点中的每一个其它主节点传送任务状态以及所述分布式文件系统的至少一部分的状态。
在一些示例中,描述了一种管理分布式文件系统的方法。该方法可以包括以下操作:接收与针对所述分布式文件系统来管理数据相关的任务。所述方法还可以包括以下操作:从多个主节点中选择一个或更多个主节点来管理所述任务。所述多个主节点可以以对等分布式架构来进行构造,并且与多个数据节点可操作地联接。所述方法还可以包括以下操作:管理所述任务在所述多个数据节点中的一个或更多个数据节点当中的分发。可以由所选择的主节点来执行管理所述任务的所述分发的操作。此外,所述方法还可以包括以下操作:在所述多个主节点中的至少一些主节点当中传送任务状态以及所述分布式文件系统的至少一部分的状态。
前述概要仅是说明性的,并且不旨在以任何方式进行限制。除了上述说明性方面、实施方式和特征之外,另外的方面、实施方式和特征还将参照附图和以下详细描述而变得显而易见。
附图说明
在附图中:
图1是示例分布式文件系统的框图;
图2是管理分布式文件系统的示例方法的流程图;以及
图3是例示了根据本文中所描述的至少一些实施方式全部布置的、被布置为用于管理分布式文件系统的示例主节点的框图。
具体实施方式
在以下详细描述中,参照附图,附图形成所述详细描述的一部分。在附图中,除非上下文另外规定,否则相似的符号通常标识相似的组件。在详细的说明书、附图以及权利要求中描述的说明性实施方式不意指进行限制。在不脱离本文中所提出的主题的精神或范围的情况下,可以利用其它实施方式,并且可以做出其它改变。将容易理解的是,如在本文中总体上描述的以及在图中例示的,可以以各种不同的构造来布置、替换、组合、分离和设计本发明的方面,这些构造全部都在本文中明确地考虑到。
本文中描述的一些实施方式总体上涉及分布式文件系统。所述分布式文件系统可以包括与导向器单元可操作地联接的多个数据节点。所述多个数据节点可以各自包括一个或更多个数据块,在所述一个或更多个数据块上可以存储文件。导向器单元可以包括以对等分布式架构进行构造的多个主节点。通常,主节点管理对存储在数据块上的文件的访问。此外,主节点中的每一个主节点可以接收与针对分布式文件系统来管理数据相关的任务,可以管理任务在主节点当中的分发;并且可以向其它主节点中的每一个其它主节点传送任务状态以及分布式文件系统的至少一部分的状态。
图1是根据本文中所描述的至少一些实施方式布置的示例分布式文件系统100的框图。分布式文件系统100可以包括第一数据节点110A、第二数据节点110B和第三数据节点110C(总称为一个数据节点110或多个数据节点110),该第一数据节点110A、第二数据节点110B和第三数据节点110C还分别包括第一数据块112A、第二数据块112B和第三数据块112C(总称为一个数据块112或多个数据块112),在该第一数据块112A、第二数据块112B和第三数据块112C中可以分别存储第一文件114A、第二文件114B和第三文件114C(总称为一个文件114或多个文件114)。数据节点110中的每一个数据节点110可以包括诸如服务器这样的任何计算装置,在所述计算装置上可以存储、访问和/或修改文件114。数据块112可以包括数据节点110中的任一个数据节点110的任何部分。
如图1中所描述的,分布式文件系统100可以包括三个数据节点110,每个数据节点包括一个数据块112和一个文件114。然而,这种描述不意指进行限制。在另选的实施方式中,分布式文件系统100可以包括任何数目的数据节点110,所述数据节点110中的每一个数据节点110可以包括任何数目的数据块112和/或任何数目的文件114。图1中包括省略号是为了指示分布式文件系统100内的数据节点110的数目、数据块112的数目以及文件112的数目可以大于三个。另外,在一些实施方式中,数据块112的数目、数据节点110的数目以及文件114的数目可以改变。例如,当超过第一数目的数据节点110的初始存储容量时,可以向分布式文件系统100添加一个或更多个数据节点110。
分布式文件系统100还可以包括导向器单元102。通常,导向器单元102可以与客户端106进行通信。例如,导向器单元102可以从客户端106接收一个或更多个任务,并且可以向例如客户端106传送响应。另外,导向器单元102可以管理和/或访问文件114、属于文件114的信息、包括在文件114中的数据或者其一些组合。
导向器单元102可以包括第一主节点104A、第二主节点104B和第三主节点104C(总称为一个主节点104或多个主节点104)。图1表示导向器单元102的非限制性示例。导向器单元102可以包括任何数目的主节点104。另外,主节点104的数目可以在导向器单元102中改变。例如,当数据节点110的数目增加时,包括在分布式文件系统100中的主节点104的数目也可以增加。添加附加的主节点104的能力可以能够使得分布式文件系统100可扩展。
主节点104可以以对等分布式架构来进行构造。在对等分布式架构中,主节点104中的每一个主节点104可以允许在没有中央计算系统或管理计算系统的情况下对主节点文件和/或主节点外围设备(peripherals)的共享访问。另外,在对等分布式架构中,主节点104可以划分分布式文件系统100的任务或工作量,并且可以使用单个可兼容程序在它们当中进行通信。例如,在一些实施方式中,主节点104可以使用chord路由算法来进行通信。
另外,在一些实施方式中,可以根据主节点识别符来识别主节点104中的一个或更多个主节点104。主节点识别符可以是唯一标志(designation),可以从该唯一标志在由例如分布式文件系统100执行的一个或更多个操作或任务中选择或参考主节点104。可以根据函数来指派针对主节点104中的每一个主节点104的主节点识别符。例如,在一些实施方式中,可以使用分布式散列(hash)函数来将主节点识别符指派给主节点104。
在一些实施方式中,因为主节点104以对等分布式架构来进行构造,所以导向器单元102可以是单个主节点的虚拟化(即,导向器单元102可以用作关于客户端106的单个主节点和/或数据节点110),尽管包括多个主节点104。例如,数据节点110可以被编程或者以其它方式(otherwise)构造为以与如下方式相似的方式与导向器单元102进行通信:如何将具有单个主节点的另一分布式文件系统中的其它数据节点构造成与该单个主节点进行通信。
分布式文件系统100还可以包括数据库108。在一些实施方式中,数据库108可以与导向器单元102联接或者包括在导向器单元102中。数据库108可以被构造为存储分布式文件系统100中的一个或更多个文件114的文件元数据。另外或另选地,数据库108可以被构造为存储系统元数据。系统元数据可以指示将一个或更多个文件114存储在数据节点110中的哪个数据节点110中。
总体上来说,文件元数据可以包括与文件114中的一个或更多个文件114有关的信息。所述信息可以包括例如识别号、文件名、文件大小、文件类型、创建日期或创建人。可以根据文件元数据来识别文件114。
系统元数据可以包括指示分布式文件系统内的文件114的位置的信息。可以由主节点104中的一个或更多个主节点104来生成系统元数据。例如,来自客户端106的任务可以包括向第一数据节点110A写入第一文件114A。当主节点104执行该任务时,主节点104可以生成指示第一文件114A位于第一数据节点110A中的系统元数据。当另一任务包括访问第一文件114A的请求时,分布式文件系统100可以通过发送指示该第一文件114A的位置的系统元数据来提供对该第一文件114A的访问。
图1还描述了可以被构造成与分布式文件系统100进行通信的客户端106。客户端106通常是指可以与分布式文件系统100进行通信或交互的任何实体(诸如企业、个人、计算机系统等)。例如,客户端106可以向分布式文件系统100传送任务、数据、文件114、请求或者其一些组合。特别地,在所描述的实施方式中,客户端106可以与导向器单元102和/或数据节点100进行通信。在一些实施方式中,客户端106可以经由计算机网络(诸如局域网(LAN)、广域网(WAN)、因特网等)进行通信。
如提到的,客户端106可以发送待由分布式文件系统100执行的任务。在一些实施方式中,任务可以涉及管理包括在文件114中的一个或更多个文件114中的数据,或者可以涉及传送分布式文件系统100内的计算任务。例如,任务可以包括但不限于:向分布式文件系统100写入第一文件114A,访问分布式文件系统100中的第二文件114B,处理分布式文件系统100中的数据,改变分布式文件系统100中的第三文件114C的名称,或者删除分布式文件系统100中的第四文件(未示出)。在一些实施方式中,可以由分布式文件系统100同时执行从客户端106传送的两个或更多个任务或者以其它方式发起的两个或更多个任务,和/或两个或更多个任务的持续时间可以交叠。在导向器单元102中,主节点104中的每一个主节点104可以被构造为接收向分布式文件系统100传送的一个或更多个任务或者在分布式文件系统100中以其它方式发起的一个或更多个任务。例如,在一些实施方式中,客户端106可以向导向器单元102传送任务,该任务可以由第一主节点104A接收。另选地或作为补充,主节点104中的一个或更多个主节点104可以测量存在于分布式文件系统100中的条件,并且可以因此发起任务。在分布式文件系统100中发起的任务的示例可以包括评估导向器单元102、一个或更多个主节点104、和/或分布式文件系统100或其任何部分的健康状况和/或功能。
当主节点104中的一个主节点104接收到任务时,可以由接收到该任务的主节点104来执行该任务或者将该任务分发给其它主节点104中的一个或更多个主节点104。通过分发任务,主节点104可以划分强加在分布式文件系统100上的总工作量。在分发中,主节点104是总体上等效或大致等效的装置。例如,主节点104中的每一个主节点104可以包括相似的计算能力和处理能力。因此,主节点104中的每一个主节点104可以被构造为管理所接收的任务在这些主节点104当中的分发。另外,由特定主节点104执行的特定功能可以通过以下方式来确定:特定主节点104是接收还是发起任务、任务的特定内容、导向器单元102的当前工作量、以及因此全部主节点104的组合、是否选择了特定主节点104、由另一主节点104做出的评估、或其任何组合。
在分发任务之后,主节点104中的每一个主节点104还可以被构造为生成任务状态以及分布式文件系统100的至少一部分的状态(系统状态),并且将这些状态传送给其它主节点104中的每一个主节点104。可以连续地或定期地生成任务状态和/或系统状态。同样,任务状态和/或系统状态的传送可以是定期的或连续的。因此,主节点104当中的通信可以是这样的:每个主节点104不断地了解由主节点104中的每一个主节点104执行的每个任务的任务状态和/或如由主节点104中的每一个主节点104评估的系统状态。
在一些实施方式中,任务状态可以包括任务的处理的运行语句。例如,运行语句可以包括已经完成了任务的哪些部分、涉及哪个主节点104或数据节点110、以及分配给任务的资源。在一些实施方式中,主节点104中的每一个主节点104可以被构造为生成与这些主节点104关联的任务的处理的运行语句。运行语句可以包括与任务的处理有关的信息(诸如消耗的资源、涉及的主节点104、涉及的数据节点110、完成所需的时间、完成的百分比、用于完成的附加资源等)。在生成运行语句之后,这些主节点中的每一个主节点可以被构造为将它们的运行语句广播至其它主节点104。以这种方式,主节点104中的每一个主节点104可以具有与由其它主节点104执行的任务的处理有关的信息。
例如,第一主节点104A可以接收第一任务。第一任务可以包括将第一文件114A写入到分布式文件系统100的请求。第一主节点104A可以管理第一任务在该第一主节点104A、第二主节点104B和第三主节点104C当中的分发。另外,第一主节点104A可以生成写入第一文件114A的处理的运行语句,并且然后可以将该运行语句广播至第二主节点104B和第三主节点104C。因此,第二主节点104B和第三主节点104C可以具有与将第一文件114A写入到分布式文件系统100的处理有关的信息。另外,第一主节点104A可以在写入第一文件114A的处理期间评估某个时间的系统状态。第一主节点104A可以向第二主节点104B和第三主节点104C传送系统状态。通过任务的分发以及任务状态的传送,主节点104中的每一个主节点104可以了解这些主节点104中的哪个主节点104与各自的任务关联以及保留什么功能以完成各个任务。
在一些实施方式中,任务状态的传送也可以提供可靠性。例如,主节点104可以被构造为使得当这些主节点104中的一个主节点104发生故障时,保持操作的主节点104在剩余的主节点104当中重新分发分指派给发生故障的主节点104的任务中的一个或更多个任务。在这些实施方式以及其它实施方式中,保持操作的主节点104可以由于缺乏关于指派给发生故障的主节点104的任务的进展而了解到该故障主节点104。因为任务状态已经被传送到保持操作的主节点104,所以分布式文件系统100可以在处理指派给发生故障的主节点104的任务时在没有多少重复或干扰或者没有重复或干扰的情况下从故障中恢复。
例如,可以将任务指派给第一主节点104A。在处理任务期间,第一主节点104A可以向第二主节点104B和第三主节点104C传送运行语句。第一主节点104A可能然后发生故障,这可以由第二主节点104B和/或第三主节点104C检测到。第二主节点104B和/或第三主节点104C可以在第二主节点104B和第三主节点104C之间重新指派任务。因为第二主节点104B和/或第三主节点104C已经接收到运行语句,所以可以重新指派任务的仅剩余部分。
在一些实施方式中,主节点104可以被构造为在这些主节点104当中进行主节点负载均衡(load balancing)运算。在这些实施方式以及其它实施方式中,向主节点104指派任务可以至少部分地基于主节点负载均衡运算。可以在将任务指派或分发给主节点104之前进行主节点负载均衡运算。主节点负载均衡运算可以确定主节点104中的一个或更多个主节点104的接受任务的可用性,可以确定主节点104中的一个或更多个主节点104的接受任务的不可用性,可以在主节点104当中重新指派任务,和/或确定与任务的执行相关的其它信息或执行其它任务。
主节点负载均衡运算的一些示例可以包括考虑以下项:主节点104中的一个或更多个主节点104的能力可用性、主节点104中的一个或更多个主节点104的本地计算可用性、是否可以得到充足的计算资源以确保在任务的执行期间针对主节点104中的一个或更多个主节点104的冗余、主节点104中的每一个主节点104正在执行的任务的数目、或者其任何组合。
主节点负载均衡运算可以包括主节点104当中的通信或者用于确定强加在主节点104中的每一个主节点104上的相对负载的本地评估。另选地,主节点负载均衡运算可以基于运行语句、任务状态通信、和/或系统状态通信。在任何情况下,主节点104中的一个主节点104可以从客户端106接收任务。该主节点104然后进行主节点负载均衡运算,并且对结果进行排序或者以其它方式处理结果。基于所述结果,该主节点104向主节点104中的一个或更多个主节点104指派任务,这可以包括向它自身指派任务。
例如,接收任务的主节点104可以被构造为评估主节点104中的每一个主节点104处的本地计算能力可用性。当主节点104中的一个主节点104处的本地计算可用性低于阀值计算能力时,评估本地计算能力的主节点104可以不向具有低本地计算可用性的主节点104指派任务。另外,评估本地计算能力的主节点104可以向其它主节点104发送指示不充足计算能力的消息。所述其它主节点104然后可以停止向具有低本地计算可用性的主节点104指派任务,直至本地计算可用性提高为止。
在另一示例中,从客户端106接收任务的主节点104可以被构造为评估冗余是否可用。在该示例中,该主节点104可以评估冗余是否在本地可用。例如,第一主节点104A可以正在评估冗余是否在该第一主节点104A处可用。冗余通常可以是指继指派任务之后或者在指派任务之前的备份计算系统或另选计算系统的可用性。例如,主节点104可以评估分布式文件系统100是否包括充足的存储容量等,使得数据节点110中的一个或更多个数据节点110的故障不会导致数据丢失。当存在冗余时,主节点104可以接受任务。当不存在冗余时,主节点104可以将任务发送给主节点104中的另一主节点104。在接收到该任务的主节点104处,可以在本地评估冗余。另外,当存在冗余时,主节点104接受任务,而当不存在冗余时,主节点104可以将任务发送给主节点104中的另一主节点104。可以继续,直至主节点104中的一个主节点104接受任务为止。另选地,主节点104中的一个主节点104可以重新指派已经指派给主节点104中的一个或更多个主节点104的任务,以创造执行所述任务所需的冗余。
在另一示例中,接收任务的主节点104可以被构造为评估主节点104中的每一个主节点104正在执行的任务的数目。评估任务的数目的主节点104可以将任务分发到例如执行最低数目的任务的主节点104。
另选地,在以上示例中的每个示例中,未接收任务的主节点104可以执行主节点负载均衡运算,并且将结果传送给接收了任务的主节点104或者正在确定任务的分发的主节点104。
在一些实施方式中,不是执行主节点负载均衡运算,而是可以将任务随机地指派给主节点104。例如,客户端106可以向导向器单元102传送任务,并且可以基于主节点识别符来随机地指派该任务。
在一些实施方式中,任务可以包括复数运算(Complex operation)和/或迭代运算(repetitious operation)。在这些实施方式以及其它实施方式中,主节点104中的一个或更多个主节点104可以被构造为将任务划分成多个子任务。分发所述任务可以包括在主节点104之间分发所述多个子任务。主节点104中的每一个主节点104可以处理子任务,好像该子任务是任务一样。在一些实施方式中,在数据节点110中的一个或更多个数据节点110执行子任务之后,主节点104可以收集所述子任务的结果。例如,任务可以包括改变一千份文件114的名称,该任务由第一主节点104A接收。可以将该任务划分成一千个子任务,这一千个子任务中的每一个子任务包括改变这些文件114中的一个文件114的名称。可以将子任务分发到主节点104。主节点104中的每一个主节点104发起数据节点110中的操作,以改变包括在指派给该数据节点110的子任务中的文件114的名称。在该示例中,第一主节点104A可以不收集结果。
作为补充或另选地,由主节点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。
当找到文件114时,找到文件114的主节点104可以将指示文件114的位置的系统元数据发送到客户端106。另外,找到文件114的主节点104可以向客户端106发送成功消息。利用系统元数据,客户端106可以从数据节点110访问文件114。
在另一示例中,任务可以包括向分布式文件系统100写入到文件114。在一些实施方式中,当任务包括写入文件114时,主节点104中的一个主节点104可以接收识别待写入的文件114的文件元数据。主节点104可以尝试基于该文件元数据来查找文件114。当没有找到文件114时,主节点104可以将该文件元数据分发给主节点104中的另一主节点104。该文件元数据可以在全部的主节点104当中进行分发,直至确定文件114不是分布式文件系统100的一部分为止。在确定文件114不是分布式文件系统100的一部分之后,主节点104中的一个主节点104可以打开写入流程。写入流程可以包括由分布式文件系统100执行的任何一组或一系列操作,以将来自客户端106的数据写入到数据单元112中的一个或更多个数据单元112。
作为补充或另选地,当任务包括向分布式文件系统100写入文件114时,最初接收该任务的主节点104可以被构造为在数据节点110当中进行数据节点负载均衡运算。数据节点负载均衡运算可以评估由数据节点110中的每一个数据节点110正在处理的负载。例如,数据节点负载均衡运算可以评估由数据节点110中的每一个数据节点110正在执行的任务或子任务的数目。至少部分地基于数据节点负载均衡运算,主节点104可以选择数据节点110中的一个数据节点110,以向其写入文件114。主节点104然后可以打开写入流程并向客户端106发送成功消息。在一些实施方式中,除了接收到任务的主节点之外的一个或更多个主节点104首先可以在数据节点110当中进行数据节点负载均衡运算。在这些实施方式以及其它实施方式中,进行数据节点负载均衡运算的主节点104可以将结果传送给首先接收任务的主节点104。
在另一示例中,任务可以包括计算任务。通常,计算任务可以包括由分布式文件系统100的一些部分执行的任何内部处理(诸如由主节点104做出的评估)。诸如由主节点104做出的评估这样的计算任务可以包括全部的主节点104,或者可以包括主节点104中的一些部分。
在一些实施方式中,当任何包括计算任务时,选择主节点104中的一个主节点104。可以例如基于分布式文件系统100的当前工作量、基于预定顺序或者随机地来选择主节点104。在选择主节点104之后,所选择的主节点104可以执行特定功能,而未被选择的主节点104可以执行其它功能。如上所述,一些计算任务可以适用于主节点104的一部分或子集。在任务仅适用于主节点104的一部分的情况下,可以存在所选择的主节点104、一个或更多个未被选择的主节点104、以及其它主节点104。通常,任务将不涉及其它主节点104。
在一些实施方式中,未被选择的主节点104中的每一个未被选择的主节点104可以被构造为从所选择的主节点104接收计算任务。未被选择的主节点104中的每一个未被选择的主节点104然后可以通过在本地执行计算任务来获得主节点特定结果。例如,未被选择的主节点104中的每一个未被选择的主节点104可以执行关于其自身的评估,这可以生成主节点特定结果。
在一些实施方式中,已经接收到计算任务的未被选择的主节点104中的每一个未被选择的主节点104可以确定其它未被选择的主节点104是否已经接收到计算任务。当并非全部的其它未被选择的主节点104都已经接收到计算任务时,已经接收到计算任务的未被选择的主节点104可以将主节点特定结果和计算任务发送到未被选择的主节点104中的、尚未接收到计算任务的另一未被选择的主节点104。然而,当全部的未被选择的主节点104都已经接收到计算任务时,未被选择的主节点104中的每一个未被选择的主节点104可以将主节点特定结果发送到所选择的主节点104。所选择的主节点104可以编译主节点特定结果,或者以其它方式处理由计算任务生成的信息。
在一些实施方式中,未被选择的主节点104中的每一个未被选择的主节点104可以从其它未被选择的主节点104接收其它主节点特定结果。接收其它主节点特定结果的未被选择的主节点104可以将在本地获得的(即,通过执行关于其自身的计算任务而生成的)主节点特定结果与所述其它主节点特定结果进行组合。当未被选择的主节点104中的一些未被选择的主节点104尚没有接收到计算任务时,已经接收到计算任务的未被选择的主节点104可以将主节点特定结果与所述其它主节点特定结果的组合发送到尚未接收到计算任务的未被选择的主节点104中的另一未被选择的主节点104。当全部的未被选择的主节点104都已经接收到计算任务时,编译来自全部的未被选择的主节点104的主节点特定结果的组合的未被选择的主节点104可以将主节点特定结果与所述其它主节点特定结果的组合发送到所选择的主节点104。
例如,第一主节点104A可以是所选择的主节点104,并且计算任务可以是操作计算能力的评估。第一主节点104A可以将计算任务发送到第二主节点104B。第二主节点104B可以接收计算任务,并且执行关于其自身的评估以获得针对第二主节点104B的主节点特定结果。然后,第二主节点104B可以确定第三主节点104C是否已经接收到计算任务。如果第三主节点104C尚未接收到计算任务,则第二主节点104B可以将针对第二主节点104B的主节点特定结果以及计算任务发送到第三主节点104C。然后,第三主节点104C可以在本地执行计算任务,以获得针对第三主节点104C的主节点特定结果。然后,第三主节点104C可以将针对第三主节点104C的主节点特定结果与针对第二主节点104B的主节点特定结果进行组合,并且将所组合的主节点特定结果发送到第一主节点104A。
图2是根据本文中所描述的至少一些实施方式布置的、管理分布式文件系统的示例方法200的流程图。方法200可以全部地或部分地由例如图1中的导向器单元102或者主节点104的任一个主节点104或其任何组合来执行。方法200包括如通过块202、204、206和/或208中的一个或更多个块例示的各种操作、功能或动作。方法200可以开始于块202。
在块202(“接收与针对分布式文件系统来管理数据相关的任务”)中,可以接收与针对分布式文件系统来管理数据相关的任务。任务可以涉及以下项:在分布式文件系统内传送计算任务、向分布式文件系统写入文件、访问分布式文件系统中的文件、处理分布式文件系统中的数据、改变分布式文件系统中的文件的名称、或者删除分布式文件系统中的文件。块202可以紧接着块204。
在块204(“选择一个或更多个主节点来管理任务,这些主节点以对等分布式架构来进行构造并且与数据节点可操作地联接”)中,选择来自多个主节点的至少一个主节点。所述多个主节点可以以对等分布式架构来进行构造并且与一个或更多个数据节点可操作地联接。块204可以紧接着块206。
在块206(“管理任务在数据节点中的一个或更多个数据节点当中的分发,由所选择的主节点来执行任务的分发的管理”)中,由所选择的主节点来管理任务的分发。可以在数据节点中的一个或更多个数据节点当中分发任务。块206可以紧接着块208。
在块208(“在主节点中的至少一些主节点当中传送任务状态以及分布式文件系统的至少一部分的状态”)中,可以在主节点中的至少一些主节点当中传送任务状态。作为补充或另选地,可以在主节点中的至少一些主节点当中传送分布式文件系统的至少一部分的状态(系统状态)。例如,可以生成任务的处理的运行语句并将该运行语句广播至主节点。
本领域技术人员将要领会的是,对于本文中公开的这些处理和方法以及其它处理和方法,可以以不同的顺序来实现在所述处理和方法中执行的功能。此外,概述的步骤和操作仅作为示例而提供,并且在不损害所公开的实施方式的本质的情况下,所述步骤和操作中的一些步骤和操作可以是可选的,可以被组合成更少的步骤和操作,或者可以被扩展成附加的步骤和操作。
例如,方法200可以包括将任务划分成多个子任务。在这些实施方式以及其它实施方式中,管理任务的分发可以包括在主节点中的一个或更多个主节点当中分发子任务。另外,在数据节点中的一个或更多个数据节点执行子任务之后,管理任务的分发可以包括收集所述子任务的结果。
在一些实施方式中,任务可以包括访问来自分布式文件系统的文件。在这些实施方式以及其它实施方式中,方法200可以包括接收任务,该任务可以包括文件元数据。文件元数据可以识别文件。另外,方法200可以包括尝试基于文件元数据来查找文件。当没有找到文件时,方法200可以包括将任务分发给主节点中的另一主节点。当找到文件时,方法200可以包括发送指示该文件的位置的系统元数据以及发送成功消息。另外,在一些实施方式中,当主节点中的任一个都没有找到文件时,方法200可以包括发送空消息。另选地,当主节点中的任一个都没有找到文件时,方法200可以包括打开写入流程。
在一些实施方式中,当任务包括计算任务时,方法200可以包括从主节点中选择第一主节点。第一未被选择的主节点可以从第一主节点接收计算任务。接收计算任务的第一未被选择的主节点可以通过在本地执行计算任务来获得主节点特定结果。然后,第一未被选择的主节点可以确定其它未被选择的主节点是否已经接收到计算任务。当其它未被选择的主节点尚未接收到计算任务时,第一未被选择的主节点可以将主节点特定结果和计算任务发送到其它未被选择的主节点的第二未被选择的主节点。当其它未被选择的主节点已经接收到计算任务时,方法200可以包括将主节点特定结果发送到第一主节点。
在一些实施方式中,当任务包括计算任务时,方法200可以包括第一未被选择的主节点从其它未被选择的主节点接收其它主节点特定结果以及将主节点特定结果与所述其它主节点特定结果进行组合。当并非全部的其它未被选择的主节点都已经接收到计算任务时,第一未被选择的主节点可以将主节点特定结果与所述其它主节点特定结果的组合发送到第二未被选择的主节点。当全部的其它未被选择的主节点都已经接收到计算任务时,未被选择的主节点可以将主节点特定结果与所述其它主节点特定结果的组合发送到第一主节点。
在一些实施方式中,方法200可以包括在主节点中的至少一些主节点当中进行主节点负载均衡运算。基于主节点负载均衡运算,可以将任务指派或分发给主节点中的一个或更多个主节点。主节点负载均衡运算可以包括例如评估冗余是否可用、评估本地计算能力可用性、或者评估任务的数目。
例如,在一些实施方式中,当在接收任务的主节点处存在冗余时,该主节点可以接受任务。然而,当不存在冗余时,该主节点可以将任务发送到另一主节点。另选地或另外,接收任务的主节点可以评估其本地计算能力可用性。当本地计算可用性低于阀值计算能力时,该主节点可以将指示不充足计算能力的消息发送到主节点中的另一主节点。另选地或另外,接收任务的主节点可以评估主节点中的每一个主节点正在执行的任务的数目。该主节点可以将任务分发给执行最低数目的任务的第一主节点。
在一些实施方式中,方法200可以包括将任务随机地指派给主节点中的一个主节点。随机地指派任务可以基于例如主节点识别符。在一些实施方式中,方法200可以包括使用分布式散列函数来将主节点识别符指派给主节点中的每一个主节点。
在一些实施方式中,当任务包括向分布式文件系统写入文件时,方法200可以包括在数据节点当中进行数据节点负载均衡运算。基于数据节点负载均衡运算,方法200可以选择数据节点以向其写入文件、打开写入流程、以及发送成功消息。
在一些实施方式中,主节点可以被构造为使得当所述主节点中的一个主节点发生故障时,可以将指派给发生故障的主节点的任务在剩余的主节点当中进行重新指派。
主节点中的一个或更多个主节点(诸如图1的主节点104和/或以下描述的主节点300)可以执行包括在图2的方法200中的操作(诸如由图2中的块202、204、206和208中的一个或更多个块例示的操作、和/或其变型)。
图3是例示了根据本文中描述的至少一些实施方式布置的、布置用于管理分布式文件系统的示例主节点300的框图。主节点300可以相似于和/或对应于包括在例如图1的导向器单元102中的主节点104。在非常基本的构造302中,主节点300通常包括一个或更多个处理器304以及系统存储器306。存储器总线308可以被用于在处理器304与系统存储器306之间进行通信。
根据期望的构造,处理器304可以是包括但不限于以下项的任一种类型:微处理器(μP)、微控制器(μC)、数字信号处理器(DSP)或其任何组合。处理器304可以包括一个或更多个级别的高速缓冲存储器(诸如一级高速缓冲存储器310和二级高速缓冲存储器312)、处理器核314以及寄存器316。示例处理器核314可以包括算术逻辑单元(ALU)、浮点单元(FPU)、数字信号处理核(DSP核)或其任何组合。示例存储器控制器318也可以与处理器304一起使用,或者在一些实施方式中,存储器控制器318可以是处理器304的内部部件。
根据期望的构造,系统存储器306可以是包括但不限于以下项的任一种类型:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪速存储器等)或其任何组合。系统存储器306可以包括OS 320、一个或更多个应用322、以及程序数据324。应用322可以包括分布式文件管理应用326(在图3中,“分布式文件管理应用”),该分布式文件管理应用326可以包括任务分发和指派算法、文件写入应用、文件访问应用、和/或可以被布置用来执行如本文中描述的功能的其它应用。程序数据324可以包括例如对等架构细节328(在图3中,“P2P架构细节”),该对等架构细节328可以识别可以包括在如文本中描述的分布式文件系统中的其它主节点、数据节点、客户端等的细节。在一些实施方式中,应用322可以被布置为与OS 320上的程序数据324一起来操作,使得可以如本文中描述地提供用于管理分布式文件系统的方法(诸如图2的方法200)。在图3中通过内部箱形区域内的这些组件例示了这样描述的基本构造302。
主节点300可以具有附加特征或功能、以及用来利于基本构造302与任何所需的装置和接口之间的通信的附加接口。例如,可以使用总线/接口控制器330来利于基本构造302与一个或更多个数据存储装置332之间经由存储器接口总线334的通信。数据存储装置332可以是可拆卸存储装置336、不可拆卸存储装置338或其组合。举例来说,可拆卸存储装置和不可拆卸存储装置的示例包括磁盘装置(诸如软盘驱动器和硬盘驱动器(HDD))、光盘驱动器(诸如光盘(CD)驱动器或数字通用磁盘(DVD)驱动器)、固态硬盘(SSD)以及磁带驱动器。示例计算机存储介质可以包括以用于存储信息(诸如计算机可读指令、数据结构、程序模块或者其它数据)的任何方法或技术实现的易失性介质和非易失性介质、可拆卸介质和不可拆卸介质。
系统存储器306、可拆卸存储装置336和不可拆卸存储装置338是计算机存储介质的示例。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存存储器或其它存储器技术,CD-ROM、数字通用磁盘(DVD)或其它光学存储器、磁带盒、磁带、磁盘存储器或其它磁存储装置,或者可以被用来存储期望的信息并且可以由主节点300进行访问的任何其它介质。任何这种计算机存储介质可以是主节点300的部件。
主节点300还可以包括接口总线340,该接口总线340用于利于从各种接口装置(例如,输出装置342、外围接口344和通信装置346)经由总线/接口控制器330到基本构造302的通信。示例输出装置342包括图形处理单元348和音频处理单元350,其可以被构造为经由一个或更多个A/V端口352与各种外部装置(诸如显示器或扬声器)进行通信。示例外围接口344包括串行接口控制器354或并行接口控制器356,其可以被构造为经由一个或更多个I/O端口358与诸如输入装置(例如,键盘、鼠标、笔、语音输入装置、触摸输入装置等)这样的外部装置或者其它外围装置(例如,打印机、扫描仪等)进行通信。示例通信装置346包括网络控制器360,该网络控制器360可以被布置为利于经由一个或更多个通信端口364通过网络通信链路与一个或更多个其它计算装置362进行通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以通过计算机可读指令、数据结构、程序模块、或者经调制的数据信号中的其它数据(诸如载波或其它传输机制)来具体实现,并且可以包括任何信息传递介质。“经调制的数据信号”可以是这样的信号:该信号具有其以对信号中的信息进行编码的方式设置或改变的特征中的一个或更多个特征。通过示例的方式,并且非限制地,通信介质可以包括有线介质(诸如有线网络或直接有线连接)、以及无线介质(诸如声音、射频(RF)、微波、红外线(IR)和其它无线介质)。如本文中使用的术语计算机可读介质可以包括存储介质和通信介质二者。
本公开在本文中描述的特定实施方式方面不受限制,这些实施方式被用作各种方面的例示。如对于本领域技术人员将显而易见的,能够在不脱离本公开的精神和范围的情况下进行许多修改和变型。除了本文中所列举的方法和装置之外,在本公开的范围内的功能上等同的方法和装置将对于本领域技术人员从前面的描述是显而易见的。这些修改和变型旨在落入所附权利要求的范围内。本公开是为了仅受所附权利要求连同有权享受这些权利要求的等同物的全部范围的限制。要理解的是,本公开不限于特定方法、试剂、化合物、组合物或生物系统,其当然能够改变。还要理解的是,本文中使用的术语是仅为了描述特定实施方式的目的,而不旨在进行限制。
针对本文中的基本上任何复数术语和/或单数术语的使用,如适合于上下文和/或本申请那样,本领域技术人员可以将复数转换成单数和/或将单数转换成复数。为了清楚起见,可以在本文中清楚地阐述各种单数或复数置换。
本领域技术人员将要理解的是,通常而言,本文中并且特别是所附权利要求(例如,所附权利要求的主体)中使用的术语通常被用作“开放”术语(例如,术语“包含(including)”应当被理解为“包含但不限于”,术语“具有”应当被理解为“至少具有”,术语“包括(includes)”应当被理解为“包括但不限于”等)。本领域技术人员将要进一步理解的是,如果目的在于引入的权利要求叙述的特定数目,则将在权利要求中明确地记载这种目的,并且在没有这种叙述时,不存在这种目的。例如,为了帮助理解,所附的权利要求可以包含引导短语“至少一个”和“一个或更多个”的使用,以引入权利要求叙述。然而,即使当同一权利要求包括引导短语“一个或更多个”或“至少一个”以及诸如“一(a)”或“一个(an)”这样的不定冠词(例如,“一”和/或“一个”应当被理解为意指“至少一个”或“一个或更多个”),这些短语的使用也不应当被理解为暗示将不定冠词“一”或“一个”引入到权利要求中将包含这种引入的权利要求叙述的任何特定权利要求限制为包含仅一个这种叙述的实施方式;同样适用于使用被用来引入权利要求叙述的定冠词的情况。另外,即使明确地记载了所引入的权利要求叙述的特定数目,本领域技术人员也将认识到,这种叙述应当被理解为至少意指所记载的数目(例如,仅陈述“两个叙述”,没有其它修饰语,至少意指两个叙述,或者两个或更多个叙述)。此外,在使用类似于“A、B和C等中的至少一个”的习惯用词(convention)的这些情况下,通常这种结构的目的为本领域技术人员将理解该习惯用词(例如,“具有A、B和C中的至少一个的系统”将包括但不限于只具有A的系统、只具有B的系统、只具有C的系统、同时具有A和B的系统、同时具有A和C的系统、同时具有B和C的系统、和/或同时具有A、B和C系统等)。在使用类似于“A、B或C等中的至少一个”的习惯用词的这些情况下,通常这种结构的目的为本领域技术人员将理解该习惯用词(例如,“具有A、B或C中的至少一个的系统”包括但不限于只具有A的系统、只具有B的系统、只具有C的系统、同时具有A和B的系统、同时具有A和C的系统、同时具有B和C的系统、和/或同时具有A、B和C系统等)。本领域技术人员将要进一步理解的是,无论在说明书、权利要求还是附图中,表示两个或更多个可替代的术语的几乎任何转折性词语和/或短语应当被理解为考虑包括所述术语中的一个、所述术语中的任一个、或者两个术语的可能性。例如,短语“A或B”将被理解为包括“A”或“B”或“A和B”的可能性。
另外,在本公开的特征或方面是根据马库什(Markush)组来进行描述的情况下,本领域技术人员将要认识到,本公开也由此是根据马库什组的任何个体成员或成员的子组来进行描述。
如本领域技术人员将要理解的,对于任何目的和全部目的(诸如在提供书面描述方面),本文中所公开的全部范围还包含任何和全部可能的子范围及其子范围的组合。可以将任何列举的范围容易地理解为充分地描述相同的范围并且使得相同的范围能够被分解成至少等同的两个、三个、四个、五个、十个等。作为非限制示例,可以容易地将本文中讨论的每个范围分解成下三分之一、中三分之一和上三分之一等。如本领域技术人员还将要理解的,诸如“多达”、“至少”等这样的全部语言包括记载的数目,并且是指可以随后被分解成如以上讨论的子范围的范围。最后,如本领域技术人员将要理解的,范围包括每个个体成员。因此,例如,具有1-3个单元的组是指具有1、2或3个单元的组。类似地,具有1-5个单元的组是指具有1、2、3、4或5个单元的组,等等。
从以上内容可知,将要理解的是,为了例示的目的已经在本文中对本公开的各种实施方式进行了描述,并且可以在不脱离本公开的范围和精神的情况下进行各种修改。因此,本文中公开的各种实施方式不旨在进行限制,由所附权利要求指示真实的范围和精神。

Claims (36)

1.一种分布式文件系统,该分布式文件系统包括:
多个数据节点,所述多个数据节点各自包括一个或更多个数据块;以及
导向器单元,该导向器单元包括多个主节点,所述多个主节点以对等分布式架构来进行构造并且与所述多个数据节点可操作地联接,所述多个主节点中的每一个主节点被构造为:
接收与针对所述分布式文件系统来管理数据相关的任务;
管理所述任务在所述多个主节点中的一个或更多个主节点当中的分发;以及
向其它多个主节点中的每一个主节点传送任务状态以及所述分布式文件系统的至少一部分的状态。
2.根据权利要求1所述的分布式文件系统,其中,每个主节点被构造为将所述任务划分成多个子任务,并且其中,分发所述任务包括在所述多个主节点中的一个或更多个主节点当中分发所述多个子任务,以及在所述多个数据节点中的所述一个或更多个数据节点执行所述子任务之后,收集所述子任务的结果。
3.根据权利要求1所述的分布式文件系统,所述分布式文件系统还包括与所述导向器单元联接的数据库,所述数据库被构造为将文件的文件元数据存储在所述分布式文件系统中。
4.根据权利要求3所述的分布式文件系统,其中,所述数据库还被构造为存储指示在所述分布式文件系统中将所述文件存储在所述多个数据节点中的哪个数据节点中的系统元数据。
5.根据权利要求1所述的分布式文件系统,其中,所述任务包括向所述分布式文件系统写入第一文件、访问所述分布式文件系统中的第二文件、处理所述分布式文件系统中的数据、改变所述分布式文件系统中的第三文件的名称、删除所述分布式文件系统中的第四文件、或者向所述多个主节点中的另一主节点传送计算任务。
6.根据权利要求1所述的分布式文件系统,其中,当所述任务包括访问文件时,所述多个主节点中的每一个主节点被构造为:
接收包括识别所述文件的文件元数据的任务;
尝试基于所述文件元数据来查找所述文件;
当没有找到所述文件时,将所述任务分发给所述多个主节点中的另一主节点;以及
当找到所述文件时,发送指示所述文件的位置的系统元数据并且发送成功消息。
7.根据权利要求6所述的分布式文件系统,其中,当所述多个主节点中的任何主节点都没有找到所述文件时,所述多个主节点中的每一个主节点还被构造为发送空消息。
8.根据权利要求1所述的分布式文件系统,其中,当所述任务包括写入文件时,所述多个主节点中的每一个主节点被构造为:
接收识别要在所述分布式文件系统中写入的所述文件的文件元数据;
尝试基于所述文件元数据来查找所述文件;
当没有找到所述文件时,将所述文件元数据分发给所述多个主节点中的另一主节点;以及
当所述多个主节点中的任何主节点都没有找到所述文件时,打开写入流程。
9.根据权利要求1所述的分布式文件系统,其中,当所述任务包括计算任务时,从所述多个主节点中选择来自所述多个主节点的第一主节点;以及
所述多个主节点的其它主节点中的每一个其它主节点被构造为:
从所述第一主节点接收所述计算任务;
通过在本地执行所述计算任务来获得主节点特定结果;
确定所述多个主节点中的一部分主节点是否已经接收到所述计算任务;
当所述一部分主节点尚未接收到所述计算任务时,将所述主节点特定结果和所述计算任务发送到所述多个主节点中的第二主节点;以及
当所述一部分主节点已经接收到所述计算任务时,将所述主节点特定结果发送到所述第一主节点。
10.根据权利要求9所述的分布式文件系统,其中,所述多个主节点中的每一个主节点还被构造为:
从所述多个主节点中的其它主节点接收其它主节点特定结果;
将所述主节点特定结果与所述其它主节点特定结果进行组合;
当所述一部分主节点已经接收到所述计算任务时,将所述主节点特定结果与所述其它主节点特定结果的组合发送到所述第二主节点;以及
当所述一部分主节点尚未接收到所述计算任务时,将所述主节点特定结果与所述其它主节点特定结果的组合发送到所述第一主节点。
11.根据权利要求1所述的分布式文件系统,其中,所述多个主节点中的每一个主节点被构造为:
评估本地计算能力可用性;以及
当所述本地计算可用性低于阀值计算能力时,将指示不充足计算能力的消息发送到所述多个主节点中的另一主节点。
12.根据权利要求1所述的分布式文件系统,其中,所述任务包括多个任务中的第一任务,并且其中,所述多个主节点被构造为:
在所述多个主节点中的至少一些主节点当中进行主节点负载均衡运算;以及
基于所述负载均衡运算,将所述多个任务中的至少一些任务指派给所述多个主节点中的一个主节点。
13.根据权利要求12所述的分布式文件系统,其中,为了进行所述主节点负载均衡运算,所述多个主节点中的至少一些主节点被构造为:
接收所述第一任务;
评估冗余是否可用;
当存在冗余时,接受所述第一任务;以及
当不存在冗余时,将所述第一任务发送到所述多个主节点中的另一主节点。
14.根据权利要求12所述的分布式文件系统,其中,为了进行所述主节点负载均衡运算,所述多个主节点中的至少一些主节点被构造为:
评估所述多个主节点中的每一个主节点正在执行的任务的数目;以及
将所述多个任务中的所述第一任务分发给所述多个主节点中的、执行最低数目的任务的第一主节点。
15.根据权利要求12所述的分布式文件系统,其中,当所述多个主节点中的一个主节点发生故障时,保持操作的所述主节点被构造为在剩余的主节点当中将指派给发生故障的主节点的一个或更多个任务进行重新指派。
16.根据权利要求1所述的分布式文件系统,其中,将所述任务随机地指派给所述多个主节点中的一个主节点。
17.根据权利要求1所述的分布式文件系统,其中,所述多个主节点被构造为使用chord路由算法在所述多个主节点当中进行通信。
18.根据权利要求1所述的分布式文件系统,其中,所述导向器单元包括单个主节点向所述多个数据节点的虚拟化。
19.根据权利要求1所述的分布式文件系统,其中,所述任务包括向所述分布式文件系统写入文件,并且其中,接收所述任务的所述主节点被构造为:
在所述多个数据节点当中进行数据节点负载均衡运算;
基于所述数据节点负载均衡运算,选择所述多个数据节点中的一个数据节点,以向所述一个数据节点写入所述文件;
打开写入流程;以及
发送成功消息。
20.根据权利要求1所述的分布式文件系统,其中,所述多个主节点中的所述每一个主节点还被构造为:
生成所述任务的处理的运行语句;以及
将所述运行语句广播至所述多个主节点。
21.一种管理分布式文件系统的方法,该方法包括以下步骤:
接收与针对所述分布式文件系统来管理数据相关的任务;
选择多个主节点中的一个或更多个主节点来管理所述任务,所述多个主节点以对等分布式架构来进行构造并且与多个数据节点可操作地联接;
管理所述任务在所述多个数据节点中的一个或更多个数据节点当中的分发,由所述多个主节点中的所选择的一个或更多个主节点来执行管理所述任务的所述分发的步骤;以及
在所述多个主节点中的至少一些主节点当中传送任务状态以及所述分布式文件系统的至少一部分的状态。
22.根据权利要求21所述的方法,所述方法还包括以下步骤:将所述任务划分成多个子任务,其中,管理所述任务的所述分发的步骤包括:
在所述多个主节点中的一个或更多个主节点当中分发所述子任务;以及
在所述多个数据节点中的所述一个或更多个数据节点执行所述子任务之后,收集所述子任务的结果。
23.根据权利要求21所述的方法,其中,所述任务包括访问来自所述分布式文件系统的文件,所述方法还包括以下步骤:
接收包括识别所述文件的文件元数据的任务;
尝试基于所述文件元数据来查找所述文件;
当没有找到所述文件时,将所述任务分发给所述多个主节点中的另一主节点;以及
当找到所述文件时,发送指示所述文件的位置的系统元数据并且发送成功消息。
24.根据权利要求23所述的方法,其中,当所述多个主节点中的任何主节点都没有找到所述文件时,所述方法还包括发送空消息。
25.根据权利要求21所述的方法,其中,当所述任务包括写入文件时,所述方法还包括以下步骤:
接收识别要在所述分布式文件系统中写入的所述文件的文件元数据;
尝试基于所述文件元数据来查找所述文件;
当没有找到所述文件时,将所述文件元数据分发给所述多个主节点中的另一主节点;以及
当所述多个主节点中的任何主节点都没有找到所述文件时,打开写入流程。
26.根据权利要求21所述的方法,其中,当所述任务包括计算任务时,所述方法还包括以下步骤:
从所述多个主节点中选择第一主节点;
从所述第一主节点接收所述计算任务;
通过在本地执行所述计算任务来获得主节点特定结果;
确定所述多个主节点中的一部分主节点是否已经接收到所述计算任务;
当所述一部分主节点尚未接收到所述计算任务时,将所述主节点特定结果和所述计算任务发送到所述多个主节点中的第二主节点;以及
当所述一部分主节点已经接收到所述计算任务时,将所述主节点特定结果发送到所述第一主节点。
27.根据权利要求26所述的方法,所述方法还包括以下步骤:
从所述多个主节点中的其它主节点接收其它主节点特定结果;
将所述主节点特定结果与所述其它主节点特定结果进行组合;
当所述一部分主节点已经接收到所述计算任务时,将所述主节点特定结果与所述其它主节点特定结果的组合发送到所述第二主节点;以及
当所述一部分主节点尚未接收到所述计算任务时,将所述主节点特定结果与所述其它主节点特定结果的组合发送到所述第一主节点。
28.根据权利要求21所述的方法,所述方法还包括以下步骤:
评估所述多个主节点中的一个主节点处的本地计算能力可用性;以及
当所述本地计算可用性低于阀值计算能力时,将指示不充足计算能力的消息发送到所述多个主节点中的另一主节点。
29.根据权利要求21所述的方法,其中,所述任务包括多个任务中的第一任务,所述方法还包括以下步骤:
在所述多个主节点中的至少一些主节点当中进行主节点负载均衡运算;以及
基于所述负载均衡运算,将所述多个任务中的至少一些任务指派给所述多个主节点中的一个主节点。
30.根据权利要求29所述的方法,其中,进行所述负载均衡运算的步骤包括:
接收所述第一任务;
评估冗余是否可用;
当存在冗余时,接受所述第一任务;以及
当不存在冗余时,将所述第一任务发送到所述多个主节点中的另一主节点。
31.根据权利要求29所述的方法,其中,进行所述主节点负载均衡运算的步骤包括:
评估所述多个主节点中的每一个主节点正在执行的任务的数目;以及
将所述多个任务中的所述第一任务分发给所述多个主节点中的、执行最低数目的任务的第一主节点。
32.根据权利要求29所述的方法,所述方法还包括以下步骤:
当所述多个主节点中的一个主节点发生故障时,在剩余的主节点当中将指派给发生故障的主节点的任务中的一个或更多个任务进行重新指派。
33.根据权利要求21所述的方法,其中,当所述任务包括向所述分布式文件系统写入文件时,所述方法包括以下步骤:
在所述多个数据节点当中进行数据节点负载均衡运算;
基于所述数据节点负载均衡运算,选择所述多个数据节点中的一个数据节点,以向所述一个数据节点写入所述文件;
打开写入流程;以及
发送成功消息。
34.根据权利要求21所述的方法,所述方法还包括以下步骤:
生成所述任务的处理的运行语句;以及
将所述运行语句广播至所述多个主节点。
35.根据权利要求21所述的方法,所述方法还包括以下步骤:将所述任务随机地指派给所述多个主节点中的一个主节点。
36.根据权利要求21所述的方法,所述方法还包括以下步骤:使用分布式散列函数来向所述多个主节点中的每一个主节点指派主节点识别符。
CN201280077564.4A 2012-12-06 2012-12-06 分散hadoop集群 Pending CN104838374A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2012/086032 WO2014086019A1 (en) 2012-12-06 2012-12-06 Decentralizing a hadoop cluster

Publications (1)

Publication Number Publication Date
CN104838374A true CN104838374A (zh) 2015-08-12

Family

ID=50882175

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280077564.4A Pending CN104838374A (zh) 2012-12-06 2012-12-06 分散hadoop集群

Country Status (3)

Country Link
US (2) US9588984B2 (zh)
CN (1) CN104838374A (zh)
WO (1) WO2014086019A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105959235A (zh) * 2016-07-21 2016-09-21 中国工商银行股份有限公司 分布式数据处理系统及方法
CN106294511A (zh) * 2015-06-10 2017-01-04 中国移动通信集团广东有限公司 一种Hadoop分布式文件系统的存储方法及装置
CN106933662A (zh) * 2017-03-03 2017-07-07 广东神马搜索科技有限公司 分布式系统及其调度方法和调度装置
WO2018054079A1 (zh) * 2016-09-23 2018-03-29 华为技术有限公司 一种存储文件的方法、第一虚拟机及名称节点
CN110225133A (zh) * 2019-06-20 2019-09-10 恒生电子股份有限公司 消息发送方法、节点、装置、系统及相关设备

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9424272B2 (en) * 2005-01-12 2016-08-23 Wandisco, Inc. Distributed file system using consensus nodes
US10291696B2 (en) * 2014-04-28 2019-05-14 Arizona Board Of Regents On Behalf Of Arizona State University Peer-to-peer architecture for processing big data
US10565074B2 (en) 2014-08-29 2020-02-18 Cynny Space Srl Systems and methods to distribute computing tasks among multiple computers
CN105007193A (zh) * 2015-08-19 2015-10-28 浪潮(北京)电子信息产业有限公司 一种多层信息处理方法、系统及集群管理节点
US10387207B2 (en) * 2016-12-06 2019-08-20 International Business Machines Corporation Data processing
CN108228323B (zh) * 2016-12-14 2020-09-01 龙芯中科技术有限公司 基于数据本地性的Hadoop任务调度方法及装置
US10909070B2 (en) * 2017-08-31 2021-02-02 Salesforce.Com, Inc. Memory efficient policy-based file deletion system
JP6939665B2 (ja) * 2018-03-15 2021-09-22 オムロン株式会社 ネットワークシステム
US11748495B2 (en) * 2018-11-28 2023-09-05 Jpmorgan Chase Bank, N.A. Systems and methods for data usage monitoring in multi-tenancy enabled HADOOP clusters
US10944782B2 (en) * 2018-12-04 2021-03-09 EMC IP Holding Company LLC Forensic analysis through metadata extraction

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102420854A (zh) * 2011-11-14 2012-04-18 西安电子科技大学 面向云存储的分布式文件系统
CN102722531A (zh) * 2012-05-17 2012-10-10 北京大学 一种云环境中基于分片位图索引的查询方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2424713C (en) * 2000-08-21 2007-12-04 Thoughtslinger Corporation Simultaneous multi-user document editing system
US20070150492A1 (en) * 2005-12-27 2007-06-28 Hitachi, Ltd. Method and system for allocating file in clustered file system
US7746784B2 (en) * 2006-03-23 2010-06-29 Alcatel-Lucent Usa Inc. Method and apparatus for improving traffic distribution in load-balancing networks
US7647590B2 (en) * 2006-08-31 2010-01-12 International Business Machines Corporation Parallel computing system using coordinator and master nodes for load balancing and distributing work
US20100050181A1 (en) * 2006-11-29 2010-02-25 Yongmin Zhang Method and System of Group-to-Group Computing
WO2009134772A2 (en) * 2008-04-29 2009-11-05 Maxiscale, Inc Peer-to-peer redundant file server system and methods
US20100114826A1 (en) 2008-10-24 2010-05-06 Microsoft Corporation Configuration management in distributed data systems
US8935232B2 (en) * 2010-06-04 2015-01-13 Yale University Query execution systems and methods
US9081821B2 (en) * 2012-07-25 2015-07-14 Ebay Inc. Spell check using column cursor

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102420854A (zh) * 2011-11-14 2012-04-18 西安电子科技大学 面向云存储的分布式文件系统
CN102722531A (zh) * 2012-05-17 2012-10-10 北京大学 一种云环境中基于分片位图索引的查询方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106294511A (zh) * 2015-06-10 2017-01-04 中国移动通信集团广东有限公司 一种Hadoop分布式文件系统的存储方法及装置
CN105959235A (zh) * 2016-07-21 2016-09-21 中国工商银行股份有限公司 分布式数据处理系统及方法
CN105959235B (zh) * 2016-07-21 2019-02-12 中国工商银行股份有限公司 分布式数据处理系统及方法
WO2018054079A1 (zh) * 2016-09-23 2018-03-29 华为技术有限公司 一种存储文件的方法、第一虚拟机及名称节点
CN106933662A (zh) * 2017-03-03 2017-07-07 广东神马搜索科技有限公司 分布式系统及其调度方法和调度装置
CN110225133A (zh) * 2019-06-20 2019-09-10 恒生电子股份有限公司 消息发送方法、节点、装置、系统及相关设备
CN110225133B (zh) * 2019-06-20 2022-01-21 恒生电子股份有限公司 消息发送方法、节点、装置、系统及相关设备

Also Published As

Publication number Publication date
WO2014086019A1 (en) 2014-06-12
US20170177616A1 (en) 2017-06-22
US20140164452A1 (en) 2014-06-12
US9588984B2 (en) 2017-03-07

Similar Documents

Publication Publication Date Title
CN104838374A (zh) 分散hadoop集群
US8615677B2 (en) Distributed job scheduling in a multi-nodal environment
CN100487659C (zh) 用于优化分段资源分配的方法和设备
US10776170B2 (en) Software service execution apparatus, system, and method
CN103329106B (zh) Alua首选项和状态转换的主机发现和处理
US11228570B2 (en) Safe-transfer exchange protocol based on trigger-ready envelopes among distributed nodes
CN103534687B (zh) 聚簇数据格网中的可扩展集中动态资源分配
US9092266B2 (en) Scalable scheduling for distributed data processing
CN102884525B (zh) 对于搜索配置的自动角色确定
KR102319172B1 (ko) 클라우드 컴퓨팅 기반의 플랫폼 제공 시스템 및 이를 이용한 플랫폼 제공 방법
Du et al. Scientific workflows in IoT environments: a data placement strategy based on heterogeneous edge-cloud computing
JP6972796B2 (ja) ソフトウェアサービス実行装置、システム、及び方法
WO2007023726A1 (ja) 情報処理システム
JP2007041720A (ja) ジョブステップ実行プログラムおよびジョブステップ実行方法
JPWO2013179451A1 (ja) 並列データ処理システム、計算機および並列データ処理方法
CN110188135A (zh) 文件生成方法及设备
CN103853811A (zh) 用于在网络化计算环境中替换注释的程序代码的方法和系统
WO2016207731A2 (en) Alife machine learning system and method
US20090083277A1 (en) Nodal data normalization
JP4940613B2 (ja) 制約条件に基づいた資源選択システム、資源選択方法および資源選択プログラム
CN103500108B (zh) 系统内存访问方法、节点控制器和多处理器系统
Huang et al. Performance evaluation of enabling logistic regression for big data with R
US20090100000A1 (en) Acquisition and expansion of storage area network interoperation relationships
JP2009289161A (ja) クラスタ型ストレージシステム、そのノード装置、データの読み出しおよび書き込み制御方法およびそのプログラム
KR20190109795A (ko) 유휴 컴퓨팅 자원을 이용한 클러스터 구축 장치 및 방법, 상기 방법을 수행하기 위한 저장 매체

Legal Events

Date Code Title Description
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20150812