CN103793425B - 用于分布式系统的数据处理方法及装置 - Google Patents
用于分布式系统的数据处理方法及装置 Download PDFInfo
- Publication number
- CN103793425B CN103793425B CN201210429531.3A CN201210429531A CN103793425B CN 103793425 B CN103793425 B CN 103793425B CN 201210429531 A CN201210429531 A CN 201210429531A CN 103793425 B CN103793425 B CN 103793425B
- Authority
- CN
- China
- Prior art keywords
- copy
- data block
- node
- memory node
- data
- 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.)
- Expired - Fee Related
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 9
- 230000004044 response Effects 0.000 claims abstract description 20
- 238000003860 storage Methods 0.000 claims description 30
- 238000000034 method Methods 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 13
- 238000004422 calculation algorithm Methods 0.000 claims description 6
- 238000000151 deposition Methods 0.000 claims description 3
- 230000008901 benefit Effects 0.000 abstract description 3
- 238000013500 data storage Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 11
- 238000004590 computer program Methods 0.000 description 9
- 238000009826 distribution Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000005291 magnetic effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/122—File system administration, e.g. details of archiving or snapshots using management policies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2094—Redundant storage or storage space
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
技术领域
本发明涉及分布式系统,更具体地,涉及一种用于分布式系统的数据处理方法及装置。
背景技术
HDFS(Hadoop Distributed File System)是分布式文件系统的一个典型示例,接下来,以HDFS为例阐述现有的分布式文件系统的特点以及不足之处。
HDFS采用的是主从架构(Master/Slave),一个HDFS集群中包括一个名字节点(NameNode),多个数据节点(DataNode)。名字节点是主存储节点,管理整个文件系统的命名空间和客户端的接入请求。在名字节点,可以执行打开/关闭/重命名文件或目录等操作。数据节点是从存储节点,用于接收来自客户端的读/写请求,同时根据名字节点的指令完成文件块的建立,删除和复制。为了提高存储的可靠性,通常为一个文件存储三个副本,并以固定块大小的方式存储各个副本,HDFS默认数据块大小是64MB。HDFS的备份机制根据文件副本因子的数量,将切分的块分别复制到其它数据节点,然后由名字节点记录并保存一个文件副本包括哪些数据块,以及分布在哪些数据节点的存储分布信息,也称为文件系统的元数据信息。
然而,现有的分布式文件系统并没有考虑分布式程序的有效运行。以MapReduce程序为例,当处理以小的数据块所存储的数据文件时,会启动更多的映射(map)任务,但也会造成较大的开销。当采用大块时,可以减少客户端和主服务器通讯的需求,也会降低主服务器需要保存的元数据的空间,却不能有效地利用可用的并行计算资源。参看表1的示例,当在20个节点对1TB数据进行排序时,假设每个节点最大可同时运行的map任务数量是40,即共计800个映射槽(map slots)。可见,当采用大块时,在第二轮仅利用了200个map任务,并不能充分利用可用的计算资源。
表1
分布式文件系统的另外一个典型示例是GFS(Google File System),两者在术语上存在对应关系,例如GFS的主节点(master)对应着HDFS中的名字节点(NameNode),GFS块服务器(chunkserver)对应着HDFS中的数据节点(DataNode),GFS中的块(Chunk)对应着HDFS中的块(Block),而对于GFS而言,也同样存在着上述问题。。
综上,现有技术仍然存在着改善的空间,需要一种改进的用于分布式系统的数据处理方法及装置。
发明内容
根据本发明的一个方面,提供了一种用于分布式系统的数据处理方法,该分布式系统包括一个主存储节点以及多个从存储节点,所述方法包括:响应于写入数据文件的请求,在所述多个从存储节点上存储所述数据文件的多个副本,每个所述副本划分为大小相同的数据块,其中至少两个副本所划分出的数据块大小不同;存储所述多个副本的分布信息。
根据本发明的另一个方面,提供了一种用于分布式系统的数据处理装置,该分布式系统包括一个主存储节点以及多个从存储节点,所述装置包括:数据文件存储模块,配置为响应于写入数据文件的请求,在所述多个从存储节点上存储所述数据文件的多个副本,每个所述副本划分为大小相同的数据块,其中至少两个副本所划分出的数据块大小不同;分布信息存储模块,配置为存储所述多个副本的分布信息。
采用本申请的技术方案,可以在分布式系统中存储数据文件的多个备份时,能够综合以不同的数据块大小进行存储所带来的优势。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。
图2示出根据本发明实施例的用于分布式系统的数据处理方法流程图。
图3以HDFS为例示出了图2中步骤210的一种实施方式。
图4示出了按照本申请的一个实施例在分布式系统中进行读文件操作的方法流程。
图5示出了一种根据本发明实施例的用于分布式系统的数据处理装置的示意性方框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instructionmeans)的制造品(manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
下面参照图2说明根据本发明实施例的用于分布式系统的数据处理方法流程图:
在步骤210中,响应于写入数据文件的请求,在所述多个从存储节点上存储所述数据文件的多个副本,每个所述副本自身划分为大小相同的数据块,其中至少两个副本所划分出的数据块大小不同。所属领域技术人员明了,只要包括至少两个具有不同数据块大小的副本,可在副本数目允许的范围内选择任意数量具有不同数据块大小的副本,在一个实施例中,所有副本间的数据块大小均不相同。数据块的大小可通过用户自定义,也可以设置为缺省值。
在所述多个从存储节点上存储所述数据文件的多个副本时,可以将一个备份中的多个数据块随机存储在不同的数据节点上。在一个具体的实施例中,数据文件大小为256MB,副本因子(replication factor)是3,将三个副本的块尺寸分别定义为64MB,128MB,256MB。在该实施例中,第一副本文件由一个256MB的数据块组成,存放在数据节点7;第二副本文件由两个128MB的数据块构成,分别存储在数据节点5,6;第三副本文件由四个64MB的数据块构成,分别存储在数据节点1,2,3,4。作为一种替代的方式,也可将该多个数据块存储在同一个数据节点上。
可采用任何现有的副本放置策略,例如,可将数据块的副本分别放在不同机架,通过该策略可将副本分布到集群中的从存储节点中,可在一定程度上防止由整个机架崩溃带来的错误。或者,另一个现有的副本放置策略是将一个副本放在本地,另外其余副本放到另一相同机架的不同节点上,通过该策略,因分布的机架数目减少,可降低机架间数据传输量。副本放置策略并不是本申请改进的重点,所属领域技术人员能够将任何现有的副本放置策略应用于本申请之中,在此不做赘述。
在步骤220中,存储所述多个副本的分布信息。在一个实施例中,是在主存储节点存储所述多个副本在多个从存储节点上的分布信息,分布信息可以包括文件和数据块的名字空间(namespace)、文件到数据块的映射关系,以及每个副本所包含的数据块的位置。
图3中以HDFS为例示出了图2中步骤210的一种实施方式。
在步骤310中,响应于写入所述数据文件的一个数据块的写入请求,确定该数据块的放置策略,该放置策略包括用于存放该数据块的从存储节点列表。举例而言,从存储节点列表例如包括DataNode1,DataNode2等等。在一个实施例中是由NameNode接收该来自客户端的写入请求,在该实施例中,当客户端向HDFS文件系统写入数据的时候,首先写到本地临时文件中,当本地临时文件累积到一个数据块的大小时,客户端会从NameNode获取副本放置策略用于存放副本。
在步骤320中,由该从存储节点列表中的任一从存储节点接收该数据块,并通过该任一从存储节点将该数据块传送至其它从存储节点,直至创建完所需数量的副本。
在一个实施例中,由该从存储节点列表中的DataNode1完全接收到该数据块并将接收到的数据块写入磁盘后,再由DataNode1将该数据块传送到DataNode2,直到创建完所需数量的副本。
在另一个实施例中,数据块是以流水线的方式从前一个从存储节点复制到下一个。前一个从存储节点一小部分一小部分(例如,4KB)地接收来自客户端的数据块,将每一部分写入本地磁盘,并同时传输该部分到列表中下一个从存储节点。下一个从存储节点也是这样,一小部分一小部分地接收数据,写入本地磁盘,并同时传给最后一个从存储节点(在该实施例中,备份系数为3)。最后一个从存储节点接收数据并存储在本地。因此,各个从存储节点能流水线式地从前一个节点接收数据,并在同时转发给下一个节点。
在本申请所公开的信息的基础上,本领域技术人员也能够想到其他替代的实施方式,例如,客户端也可自己同时将数据传给从存储节点列表中的各个存储节点。
在各个从存储节点完成写操作后,将应答消息发送至主存储节点。
图4示出了按照本申请的一个实施例在分布式系统中进行读文件操作的方法流程。该分布式系统还包括一个计算主节点以及多个从计算节点。主存储节点与主计算节点可以位于同一主机上,也可以位于不同主机之上,从存储节点与从计算节点也类似。以基于MapReduce框架的分布式系统为例,其中包括一个主计算节点和多个从计算节点,在MapReduce中主计算节点称为JobTracker,从计算节点称为TaskTracker。主计算节点负责调度构成一个作业的所有任务,这些任务分布在不同的从计算节点上,由主计算节点监控它们的执行,并重新执行已经失败的任务。
在步骤410中,获取包含可用计算单元数量以及所述多个副本的分布信息的运行时信息,所述计算单元是所述从计算节点中所包括可分配的计算资源。
在一个实施例中,运行时信息是主存储节点不时的从主计算节点收集的可用计算单元信息,以及从主存储节点收集的副本的分布信息,“不时的”是指以周期性的或者非周期性的方式收集信息。
计算单元是所述从计算节点中所包括的至少一个可分配的计算资源,既可以是实体的也可以是虚拟的。计算单元的一个示例是Hadoop MapReduce中的map slots,一个从计算节点的map slots的数量用来表示该节点的计算资源的容量,因而map slots是资源单位。每个从计算节点会确定自己的计算能力以确定自己包含的计算单元总量。每个从计算节点(例如,TaskTracker)定期通过心跳(hearbeat)与主计算节点(例如,Jobtracker)通信,汇报自己当前工作状态,以及自身可用计算单元数量,即空闲的计算单元的数量。
在步骤420中,响应于读取数据文件的请求,根据运行时信息确定副本读取策略。在一个实施例中,是由主存储节点接收数据读取请求,并且确定该副本读取策略。
客户端则根据所述副本读取策略,直接与副本读取策略中所记载的从存储节点通信,并从中读取所需数据块的备份。
在一个实施例中,响应于读取数据文件的请求,所述计算主节点根据运行时信息所确定的副本读取策略能够最大程度利用可用计算单元并且读取的副本的数据块最大。在一个具体的实施例中,数据文件的第一备份R1,第二备份R2以及第三备份R3的块大小分别是128MB,256MB以及512MB,因此,R1,R2,R3分别具有16,8以及4个数据块。那么,当具有4个可用计算单元时,使用R3是最佳策略;当具有7个可用计算单元时,使用R2是最佳策略;当具有12个可用计算单元时,使用R1是最佳策略;当具有20个可用计算单元时,使用R1是最佳策略。
参看表2,在一个更为具体的实施例中,示出了采用本申请技术方案对1TB数据进行排序时相比于现有技术在耗时上的改善。
表2
可通过贪婪算法(Greedy algorithm)根据运行时信息确定出能够最大程度利用可用计算单元并且读取的副本的数据块最大的副本读取策略,而贪婪算法本身并不复杂,本领域技术人员在本申请所公开的信息的基础上,不难设计出相应的计算机程序,在此不进行赘述。
以上所述的实施例仅以块大小作为参考依据,接下来在另一个实施例中,还可综合副本的数据块大小与副本获取成本确定副本选择策略。在一个实施例中,可包括以下几个子步骤:
子步骤1,确定出最大程度利用所述可用计算单元的副本集合。举例而言,在可用计算单元数量为7时,具有大于7个块的备份R2(共8个块)和备份R1(共16个块)都能将这7个计算资源用满。
子步骤2,根据每个副本的数据块大小以及副本的获取成本确定所述副本集合中每个副本的特征值;根据所述特征值确定要读取的副本。在另一个具体实施方式中,至少使用以下方式中的一种确定所述获取成本:该副本所在的从存储节点的忙碌程度;该副本所在的从存储节点至所述可用计算单元所在的从计算节点的距离。
在一个具体的实施方式中,可为每一个需要的副本计算副本特征值,副本特征值=副本大小/(距离值*数据节点忙碌程度值),其中,距离值=计算节点与数据节点之间的交换机个数+1,其中,数据节点忙碌程度值=此数据节点接受的来自HDFS的读写请求个数。然后,优先选择副本特征值最大的副本。通过该计算公式,能够在尽量使用最大副本的同时,兼顾了副本的易获取程度和网络及硬盘资源的使用均衡。
在一个更为具体的实施例中:集群中包括100个节点,两层交换机。副本系数设置为3,副本的块大小分别为512M、256M以及128M。基于前述计算方式计算出表3所示的特征值,发现对于从计算节点node1而言,块大小为512MB的副本特征值最大,而对于从计算节点node2而言,块大小为256MB的副本特征值最大。
表3
此时的任务执行示意如下
Node1:|---------------------第一轮map 512M-------------------------|
Node2:|--------第一轮map 256M-------|
图5示出了一种用于分布式系统的数据处理装置,该分布式系统包括一个主存储节点以及多个从存储节点,图5所示的装置包括:
数据文件存储模块510,配置为响应于写入数据文件的请求,在所述多个从存储节点上存储所述数据文件的多个副本,每个所述副本划分为大小相同的数据块,其中至少两个副本所划分出的数据块大小不同;
分布信息存储模块520,配置为存储所述多个副本的分布信息。
在一个实施例中,所述分布式系统还包括一个主计算节点以及多个从计算节点,所述装置还包括:配置为获取包含可用计算单元数量以及所述多个副本的分布信息的运行时信息的模块,所述计算单元是所述从计算节点所包括的可分配的计算资源;配置为响应于读取数据文件的请求,根据所述运行时信息确定副本读取策略的模块。
在一个实施例中,所述副本读取策略可以最大程度利用可用计算单元并且读取的副本的数据块最大。在一个具体的实施例中,采用贪婪算法确定所述副本读取策略以最大程度利用可用计算单元并且读取的副本的数据块最大。
在一个实施例中,所述配置为响应于读取数据文件的请求,根据所述运行时信息确定副本读取策略的模块包括:配置为确定出最大程度利用所述可用计算单元的副本集合的模块;配置为根据每个副本的数据块大小以及副本的获取成本确定所述副本集合中每个副本的特征值的模块;配置为根据所述特征值确定要读取的副本的模块。
在一个实施例中,至少使用以下方式中的一种确定所述获取成本:该副本所在的从存储节点的忙碌程度;该副本所在的从存储节点至所述可用计算单元所在的从计算节点的距离。
在另一个实施例中,所述数据文件存储模块510包括:配置为响应于写入所述数据文件的一个数据块的写入请求,确定该数据块的副本放置策略的模块,该放置策略包括用于存放该数据块的从存储节点列表;配置为由该从存储节点列表中的任一从存储节点接收该数据块,并通过该任一从存储节点将该数据块传送至其它从存储节点,直至创建完所需数量的副本的模块。
在一个实施例中,还包括:配置为将一个副本所包括的多个数据块存储在不同的从存储节点上的模块。在另一个实施例中,所述数据块的大小是可配置的。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (14)
1.一种用于分布式系统的数据处理方法,该分布式系统包括一个主存储节点以及多个从存储节点,所述方法包括:
响应于写入数据文件的请求,在所述多个从存储节点上存储所述数据文件的多个副本,每个所述副本划分为大小相同的数据块,其中至少两个副本所划分出的数据块大小不同;
存储所述多个副本的分布信息,
其中,所述分布式系统还包括一个主计算节点以及多个从计算节点,所述方法还包括:
获取包含可用计算单元数量以及所述多个副本的分布信息的运行时信息,所述计算单元是所述从计算节点所包括的可分配的计算资源;
响应于读取数据文件的请求,根据所述运行时信息确定副本读取策略,所述根据所述运行时信息确定所述副本读取策略包括:
确定出最大程度利用所述可用计算单元的副本集合;
根据每个副本的数据块大小以及副本的获取成本确定所述副本集合中每个副本的特征值;
根据所述特征值确定要读取的副本。
2.根据权利要求1所述的方法,所述副本读取策略可以最大程度利用可用计算单元并且读取的副本的数据块最大。
3.根据权利要求2所述的方法,其中,采用贪婪算法确定所述副本读取策略以最大程度利用可用计算单元并且读取的副本的数据块最大。
4.根据权利要求1所述的方法,至少使用以下方式中的一种确定所述获取成本:
该副本所在的从存储节点的忙碌程度;
该副本所在的从存储节点至所述可用计算单元所在的从计算节点的距离。
5.根据权利要求1所述的方法,所述响应于写入数据文件的请求,在所述多个从存储节点上存储所述数据文件的多个副本包括:
响应于写入所述数据文件的一个数据块的写入请求,确定该数据块的放置策略,该放置策略包括用于存放该数据块的从存储节点列表;
由该从存储节点列表中的任一从存储节点接收该数据块,并通过该任一从存储节点将该数据块传送至其它从存储节点,直至创建完所需数量的副本。
6.根据权利要求1所述的方法,其中,将一个副本所包括的多个数据块存储在不同的从存储节点上。
7.根据权利要求1所述的方法,所述数据块的大小是可配置的。
8.一种用于分布式系统的数据处理装置,该分布式系统包括一个主存储节点以及多个从存储节点,所述装置包括:
数据文件存储模块,配置为响应于写入数据文件的请求,在所述多个从存储节点上存储所述数据文件的多个副本,每个所述副本划分为大小相同的数据块,其中至少两个副本所划分出的数据块大小不同;
分布信息存储模块,配置为存储所述多个副本的分布信息,
其中,所述分布式系统还包括一个主计算节点以及多个从计算节点,
所述装置还包括:
配置为获取包含可用计算单元数量以及所述多个副本的分布信息的运行时信息的模块,所述计算单元是所述从计算节点所包括的可分配的计算资源;
配置为响应于读取数据文件的请求,根据所述运行时信息确定副本读取策略的模块,
所述配置为响应于读取数据文件的请求,根据所述运行时信息确定副本读取策略的模块包括:
配置为确定出最大程度利用所述可用计算单元的副本集合的模块;
配置为根据每个副本的数据块大小以及副本的获取成本确定所述副本集合中每个副本的特征值的模块;
配置为根据所述特征值确定要读取的副本的模块。
9.根据权利要求8所述的装置,所述副本读取策略可以最大程度利用可用计算单元并且读取的副本的数据块最大。
10.根据权利要求9所述的装置,其中,采用贪婪算法确定所述副本读取策略以最大程度利用可用计算单元并且读取的副本的数据块最大。
11.根据权利要求10所述的装置,至少使用以下方式中的一种确定所述获取成本:
该副本所在的从存储节点的忙碌程度;
该副本所在的从存储节点至所述可用计算单元所在的从计算节点的距离。
12.根据权利要求8所述的装置,所述数据文件存储模块包括:
配置为响应于写入所述数据文件的一个数据块的写入请求,确定该数据块的放置策略的模块,该放置策略包括用于存放该数据块的从存储节点列表;
配置为由该从存储节点列表中的任一从存储节点接收该数据块,并通过该任一从存储节点将该数据块传送至其它从存储节点,直至创建完所需数量的副本的模块。
13.根据权利要求8所述的装置,还包括:
配置为将一个副本所包括的多个数据块存储在不同的从存储节点上的模块。
14.根据权利要求8所述的装置,所述数据块的大小是可配置的。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210429531.3A CN103793425B (zh) | 2012-10-31 | 2012-10-31 | 用于分布式系统的数据处理方法及装置 |
US14/052,826 US9569457B2 (en) | 2012-10-31 | 2013-10-14 | Data processing method and apparatus for distributed systems |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210429531.3A CN103793425B (zh) | 2012-10-31 | 2012-10-31 | 用于分布式系统的数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103793425A CN103793425A (zh) | 2014-05-14 |
CN103793425B true CN103793425B (zh) | 2017-07-14 |
Family
ID=50548349
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210429531.3A Expired - Fee Related CN103793425B (zh) | 2012-10-31 | 2012-10-31 | 用于分布式系统的数据处理方法及装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9569457B2 (zh) |
CN (1) | CN103793425B (zh) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150047396A (ko) * | 2013-10-24 | 2015-05-04 | 삼성전자주식회사 | 분산 파일 시스템 관리 장치, 그것을 포함하는 분산 컴퓨팅 시스템, 및 분산 파일 시스템의 작동 방법 |
CN104113597B (zh) * | 2014-07-18 | 2016-06-08 | 西安交通大学 | 一种多数据中心的hdfs数据读写方法 |
CN105354108B (zh) * | 2014-08-22 | 2020-01-07 | 中兴通讯股份有限公司 | 一种数据备份方法及节点 |
CN105760391B (zh) * | 2014-12-18 | 2019-12-13 | 华为技术有限公司 | 数据动态重分布的方法、数据节点、名字节点及系统 |
US10474644B2 (en) * | 2015-03-04 | 2019-11-12 | Dell Products L.P. | Systems and methods for optimizing selection of a replication data node in a distributed file system |
CN106161526A (zh) * | 2015-04-07 | 2016-11-23 | 北京中科同向信息技术有限公司 | 一种基于文件系统的分布式存储技术 |
US20160306810A1 (en) * | 2015-04-15 | 2016-10-20 | Futurewei Technologies, Inc. | Big data statistics at data-block level |
CN105022779A (zh) * | 2015-05-07 | 2015-11-04 | 云南电网有限责任公司电力科学研究院 | 一种利用Filesystem API实现HDFS文件存取方法 |
US9582209B2 (en) * | 2015-06-24 | 2017-02-28 | Vmware, Inc. | Efficient data deployment for a parallel data processing system |
CN105069128B (zh) * | 2015-08-14 | 2018-11-09 | 北京京东尚科信息技术有限公司 | 数据同步方法和装置 |
CN106897281B (zh) | 2015-12-17 | 2020-08-14 | 阿里巴巴集团控股有限公司 | 一种日志分片方法和装置 |
CN106648451B (zh) * | 2016-05-10 | 2020-09-08 | 深圳前海信息技术有限公司 | 基于内存的MapReduce引擎数据处理方法和装置 |
CN107544984B (zh) * | 2016-06-27 | 2020-07-31 | 北京京东尚科信息技术有限公司 | 一种数据处理的方法和装置 |
US11157641B2 (en) * | 2016-07-01 | 2021-10-26 | Microsoft Technology Licensing, Llc | Short-circuit data access |
CN106339473A (zh) * | 2016-08-29 | 2017-01-18 | 北京百度网讯科技有限公司 | 文件复制方法及装置 |
CN106648979A (zh) * | 2016-12-09 | 2017-05-10 | 曙光信息产业(北京)有限公司 | 分布式实时文件系统的备份方法及备份系统 |
US10884977B1 (en) | 2017-06-22 | 2021-01-05 | Jpmorgan Chase Bank, N.A. | Systems and methods for distributed file processing |
US10664368B2 (en) * | 2017-11-30 | 2020-05-26 | International Business Machines Corporation | Modifying aspects of a storage system associated with data mirroring |
CN110232053B (zh) * | 2017-12-05 | 2024-02-02 | 华为技术有限公司 | 日志处理方法、相关设备及系统 |
CN109062512B (zh) * | 2018-07-26 | 2022-02-18 | 郑州云海信息技术有限公司 | 一种分布式存储集群、数据读写方法、系统及相关装置 |
CN110825706B (zh) * | 2018-08-07 | 2022-09-16 | 华为云计算技术有限公司 | 一种数据压缩的方法和相关设备 |
CN109767274B (zh) * | 2018-12-05 | 2023-04-25 | 航天信息股份有限公司 | 一种对海量发票数据进行关联存储的方法及系统 |
CN110825704B (zh) * | 2019-09-27 | 2023-09-01 | 华为云计算技术有限公司 | 一种读数据方法、写数据方法及服务器 |
CN110989922B (zh) * | 2019-10-28 | 2023-05-26 | 烽火通信科技股份有限公司 | 一种分布式数据存储方法及系统 |
CN111090629B (zh) * | 2019-12-24 | 2024-02-06 | 上海达梦数据库有限公司 | 一种数据文件存储方法、装置、设备及存储介质 |
CN111708812A (zh) * | 2020-05-29 | 2020-09-25 | 北京赛博云睿智能科技有限公司 | 一种分布式数据处理方法 |
CN111831618A (zh) * | 2020-07-21 | 2020-10-27 | 北京青云科技股份有限公司 | 数据写入方法、数据读取方法、装置、设备及存储介质 |
CN113778973B (zh) * | 2021-01-21 | 2024-04-05 | 北京沃东天骏信息技术有限公司 | 数据存储方法和装置 |
CN113515495B (zh) * | 2021-04-14 | 2024-03-19 | 暨南大学 | 数据文件分配方法及装置、智能设备和计算机存储介质 |
CN115080527A (zh) * | 2022-08-23 | 2022-09-20 | 矩阵起源(深圳)信息科技有限公司 | 分布式数据处理方法、装置、设备及存储介质 |
CN117420969B (zh) * | 2023-12-19 | 2024-04-16 | 中电云计算技术有限公司 | 一种分布式数据存储方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6029168A (en) * | 1998-01-23 | 2000-02-22 | Tricord Systems, Inc. | Decentralized file mapping in a striped network file system in a distributed computing environment |
CN101371238A (zh) * | 2005-03-24 | 2009-02-18 | 阿卡迈技术有限公司 | 按需分布式计算系统 |
US7617303B2 (en) * | 2004-04-27 | 2009-11-10 | At&T Intellectual Property Ii, L.P. | Systems and method for optimizing access provisioning and capacity planning in IP networks |
CN102004769A (zh) * | 2010-11-12 | 2011-04-06 | 成都市华为赛门铁克科技有限公司 | 文件管理方法、设备及存储系统 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6487561B1 (en) * | 1998-12-31 | 2002-11-26 | Emc Corporation | Apparatus and methods for copying, backing up, and restoring data using a backup segment size larger than the storage block size |
US6484143B1 (en) * | 1999-11-22 | 2002-11-19 | Speedera Networks, Inc. | User device and system for traffic management and content distribution over a world wide area network |
US7146524B2 (en) | 2001-08-03 | 2006-12-05 | Isilon Systems, Inc. | Systems and methods for providing a distributed file system incorporating a virtual hot spare |
US7054910B1 (en) * | 2001-12-20 | 2006-05-30 | Emc Corporation | Data replication facility for distributed computing environments |
US7689633B1 (en) | 2004-09-15 | 2010-03-30 | Data Domain, Inc. | Network file system-based data storage system |
US20080320097A1 (en) | 2007-06-22 | 2008-12-25 | Tenoware R&D Limited | Network distributed file system |
CN101187931A (zh) * | 2007-12-12 | 2008-05-28 | 浙江大学 | 分布式文件系统多文件副本的管理方法 |
US9098519B2 (en) | 2008-09-16 | 2015-08-04 | File System Labs Llc | Methods and apparatus for distributed data storage |
US9021229B2 (en) | 2010-04-14 | 2015-04-28 | International Business Machines Corporation | Optimizing a file system for different types of applications in a compute cluster using dynamic block size granularity |
CN102223404A (zh) * | 2011-06-07 | 2011-10-19 | 武汉理工大学 | 一种基于访问成本和传输时间的副本选择方法 |
-
2012
- 2012-10-31 CN CN201210429531.3A patent/CN103793425B/zh not_active Expired - Fee Related
-
2013
- 2013-10-14 US US14/052,826 patent/US9569457B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6029168A (en) * | 1998-01-23 | 2000-02-22 | Tricord Systems, Inc. | Decentralized file mapping in a striped network file system in a distributed computing environment |
US7617303B2 (en) * | 2004-04-27 | 2009-11-10 | At&T Intellectual Property Ii, L.P. | Systems and method for optimizing access provisioning and capacity planning in IP networks |
CN101371238A (zh) * | 2005-03-24 | 2009-02-18 | 阿卡迈技术有限公司 | 按需分布式计算系统 |
CN102004769A (zh) * | 2010-11-12 | 2011-04-06 | 成都市华为赛门铁克科技有限公司 | 文件管理方法、设备及存储系统 |
Non-Patent Citations (1)
Title |
---|
Cloud analytics: Do we really need to reinvent the storage stack?;Rajagopal Ananthanarayanan等;《Proceedings of the 2009 conference on hot topics in cloud computing》;20090615;第2节第6-9段,第3节第5-11段 * |
Also Published As
Publication number | Publication date |
---|---|
US9569457B2 (en) | 2017-02-14 |
CN103793425A (zh) | 2014-05-14 |
US20140122429A1 (en) | 2014-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103793425B (zh) | 用于分布式系统的数据处理方法及装置 | |
US20230342271A1 (en) | Performance-Based Prioritization For Storage Systems Replicating A Dataset | |
US20220050858A1 (en) | Snapshot-Based Hydration Of A Cloud-Based Storage System | |
US12056386B2 (en) | Selectable write paths with different formatted data | |
US10715460B2 (en) | Opportunistic resource migration to optimize resource placement | |
CN106687911B (zh) | 不损害数据完整性的在线数据移动 | |
JP5765416B2 (ja) | 分散ストレージシステムおよび方法 | |
JP5411250B2 (ja) | 冗長データ記憶システムへの指示に従ってのデータ配置 | |
CN104603762B (zh) | 利用并行文件访问协议的自动校准以及元数据管理支持对文件系统的共享存储的协调访问的方法及系统 | |
US8627024B2 (en) | Snapshot based replication | |
US20240231939A1 (en) | Queueing Storage Operations | |
CN103765817A (zh) | 从源服务器向目标服务器复制数据对象 | |
KR102581374B1 (ko) | 분산 계산 가능한 스토리지 그룹을 구비하는 컴퓨팅 시스템 및 그것의 동작 방법 | |
US8538929B2 (en) | Archiving de-duplicated data on tape storage media using graph partitions | |
CN101986276B (zh) | 文件存储方法、文件恢复方法、系统及服务器 | |
CN110597655B (zh) | 迁移和基于纠删码的重构相耦合快速预知修复方法及装置 | |
US7792966B2 (en) | Zone control weights | |
CN102576294A (zh) | 含有多个存储装置的存储系统、方法及程序 | |
JP2016134133A (ja) | ストレージシステム | |
US10725877B2 (en) | System, method and computer program product for performing a data protection operation | |
US20230195535A1 (en) | Containerized Application Deployment to Use Multi-Cluster Computing Resources | |
CN118591945A (zh) | 改进的带状电缆对准装置 | |
US11868629B1 (en) | Storage system sizing service | |
JP6201340B2 (ja) | レプリケーションシステム | |
US11204845B2 (en) | Workload coordination on disaster recovery site |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170714 |
|
CF01 | Termination of patent right due to non-payment of annual fee |