CN104156381A - Hadoop分布式文件系统的副本存取方法、装置和Hadoop分布式文件系统 - Google Patents
Hadoop分布式文件系统的副本存取方法、装置和Hadoop分布式文件系统 Download PDFInfo
- Publication number
- CN104156381A CN104156381A CN201410120902.9A CN201410120902A CN104156381A CN 104156381 A CN104156381 A CN 104156381A CN 201410120902 A CN201410120902 A CN 201410120902A CN 104156381 A CN104156381 A CN 104156381A
- Authority
- CN
- China
- Prior art keywords
- back end
- copy
- load
- data block
- same 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.)
- Pending
Links
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/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
Abstract
本发明公开了一种Hadoop分布式文件系统的副本存取方法、装置和Hadoop分布式文件系统,以均衡系统负载从而提高读/写性能。所述方法包括:获取Hadoop分布式文件系统中数据节点的节点负载信息;在存放副本时,根据所述节点负载信息,将同一数据块的副本存放在客户端所在数据节点或者负载最低的数据节点;在读取所述副本时,从负载最低的数据节点和/或与客户端距离最小的数据节点读取。本发明提供的方法充分考虑到了各个数据节点的节点负载信息,因而能够均衡系统负载,提升读写操作的性能。
Description
技术领域
本发明涉及分布式架构领域,具体涉及Hadoop分布式文件系统的副本存取方法、装置和Hadoop分布式文件系统。
背景技术
分布式文件系统(Hadoop Distributed File System,HDFS)是一个主从结构,一个HDFS集群是由一个名字节点和至少一个数据节点组成。HDFS集群中的名字节点是一个管理文件命名空间和调节客户端访问文件的主服务器,主要操作文件命名空间的文件或目录操作,例如,打开、关闭和重命名等等,同时,名字节点还用于确定块与数据节点的映射。HDFS集群中的数据节点存储具体的数据文件,负责来自文件系统客户的读写请求,同时还要执行块的创建、删除和来自名字节点的块复制指令。
HDFS对外开放文件命名空间并允许用户数据以文件形式存储,内部机制是将一个文件分割成一个或多个块进行存储,同时每一个数据块又保存有多个副本。以数据块的副本是3个副本为例,HDFS对副本的放置策略为:名字节点将一个副本存放在本地节点即客户端所在节点上,第二个副本存放在与客户端所在节点处于同一个机架的另一个节点上,最后一个副本放在不同机架的节点上。仍以数据块的副本是3个副本为例,HDFS对副本的读取策略是原则上优先访问存放副本的节点中与客户端的距离最近的节点,具体为:若要访问的数据块的一个副本存在于客户端,则客户端优先从本地读取该数据块,否则,若该数据块的一个副本与客户端在同一个机架上,则客户端优先读取这个同机架上的副本,若该数据块既没有一个副本存在客户端,又没有一个副本与客户端在同一个机架上,则随机选择一个数据块的副本进行读取。
上述现有技术提供的HDFS对副本的放置和读取策略减少了机架间的数据传输,提高了写操作的效率。另一方面,由于机架的错误远远比节点的错误少,因此,这种策略不会影响到数据的可靠性和可用性。与此同时,因为数据块只存放在两个不同的机架上,所以上述策略减少了读取数据时需要的网络传输总带宽。
然而,上述现有技术提供的HDFS副本的放置和读取策略只考虑了写/读操作的网络开销,而未考虑系统注入CPU和磁盘等其他负载的负载均衡,可能会导致系统负载严重不均,从而影响写/读操作的性能。
发明内容
本发明提供Hadoop分布式文件系统的副本存取方法、装置和Hadoop分布式文件系统,以均衡系统负载从而提高读/写性能。
本发明实施例提供一种Hadoop分布式文件系统的副本存取方法,所述方法包括:
获取Hadoop分布式文件系统中数据节点的节点负载信息;
在存放副本时,根据所述节点负载信息,将同一数据块的副本存放在客户端所在数据节点或者负载最低的数据节点;
在读取所述副本时,从负载最低的数据节点和/或与客户端距离最小的数据节点读取。
本发明另一实施例提供一种Hadoop分布式文件系统的副本存取装置,所述装置包括:
获取模块,用于获取Hadoop分布式文件系统中数据节点的节点负载信息;
存放模块,用于在存放副本时,根据所述节点负载信息,将同一数据块的副本存放在客户端所在数据节点或者负载最低的数据节点;
读取模块,用于在读取所述副本时,从负载最低的数据节点和/或与客户端距离最小的数据节点读取。
本发明另一实施例提供一种Hadoop分布式文件系统,所述系统包括名字节点和至少一个数据节点,所述名字节点包括获取模块、存放模块和读取模块;
所述数据节点,用于存放数据块的副本,将本节点的节点负载信息传递至所述名字节点;
所述获取模块,用于获取Hadoop分布式文件系统中数据节点的节点负载信息;
所述存放模块,用于根据所述节点负载信息,将同一数据块的副本存放在客户端所在数据节点或者负载最低的数据节点;
所述读取模块,用于在读取所述副本时,从负载最低的数据节点和/或与客户端距离最小的数据节点读取。
从上述本发明实施例可知,由于可以根据获取的节点负载信息,将同一数据块的副本存放在客户端所在数据节点或者负载最低的数据节点,在读取所述副本时,从负载最低的数据节点和/或与客户端距离最小的数据节点读取,因此,与现有技术提供的HDFS副本的放置和读取策略只考虑了写/读操作的网络开销,而未考虑系统注入CPU和磁盘等其他负载的负载均衡相比,本发明提供的方法充分考虑到了各个数据节点的节点负载信息,因而能够均衡系统负载,提升读写操作的性能。
附图说明
图1是本发明实施例提供的Hadoop分布式文件系统的副本存取方法的基本流程示意图;
图2是本发明实施例提供的按照数据节点与客户端的距离大小以及数据节点的负载大小进行升序排序形成最终数据节点列表的示意图;
图3是本发明实施例提供的Hadoop分布式文件系统的副本存取装置逻辑结构示意图;
图4是本发明另一实施例提供的Hadoop分布式文件系统的副本存取装置逻辑结构示意图;
图5是本发明另一实施例提供的Hadoop分布式文件系统的副本存取装置逻辑结构示意图;
图6是本发明另一实施例提供的Hadoop分布式文件系统的副本存取装置逻辑结构示意图;
图7是本发明实施例提供的Hadoop分布式文件系统的逻辑结构示意图;
图8是本发明另一实施例提供的Hadoop分布式文件系统的逻辑结构示意图。
具体实施方式
本发明提供Hadoop分布式文件系统的副本存取方法,所述方法包括:获取Hadoop分布式文件系统中数据节点的节点负载信息;根据所述节点负载信息,将同一数据块的副本存放在客户端所在数据节点或者负载最低的数据节点;在读取所述副本时,从负载最低的数据节点和/或与客户端距离最小的数据节点读取。本发明还提供相应的Hadoop分布式文件系统的副本存取装置和Hadoop分布式文件系统。以下分别进行详细说明。
本发明实施例的Hadoop分布式文件系统的副本存取方法可应用于Hadoop分布式文件系统的名字节点。本发明实施例提供的Hadoop分布式文件系统的副本存取方法的基本流程可参考图1,主要包括步骤S101至步骤S103,详细说明如下:
S101,获取Hadoop分布式文件系统中数据节点的节点负载信息。
数据节点的节点负载信息包括CPU负载、网络负载、磁盘IO负载和磁盘空间负载中的一种或者其任意组合。作为本发明一个实施例,数据节点的节点负载可以按照以下方式计算,即节点负载=w1*CPU负载+w2*网络负载+w3*磁盘IO负载+w4*磁盘空间负载,其中,w1、w2、w3和w4为预置的0到1之间的权重系数。
数据节点和名字节点在建立通信连接时会有握手这一环节,在本发明一个实施例中,数据节点可以将其节点负载信息携带在其与名字节点握手时发送的握手信息中。因此,作为本发明一个实施例,名字节点获取Hadoop分布式文件系统中数据节点的节点负载信息可以是通过与所述数据节点握手,从握手信息中提取Hadoop分布式文件系统中数据节点的节点负载信息。名字节点将这些数据节点的节点负载信息予以保存,并在下次收到同一数据节点的节点负载信息时予以更新。
S102,在存放副本时,根据步骤S101获取的节点负载信息,将同一数据块的副本存放在客户端所在数据节点或者负载最低的数据节点。
在本发明实施例中,客户端也有可能存在数据节点。若客户端存在数据节点,则将同一数据块B的副本Ci存放在客户端所在数据节点,否则,将所述副本Ci存放在Hadoop分布式文件系统中负载最低的数据节点Ni,此处,副本Ci是所述同一数据块的副本中的任意一个副本。
数据块B的副本可能不止一个,在将同一数据块B的副本Ci存放在客户端所在数据节点,或者,将所述副本Ci存放在Hadoop分布式文件系统中负载最低的数据节点Ni后,再将所述同一数据块B的副本Cj存放在数据节点Nj,此处,副本Cj是所述同一数据块B的副本中不同于所述副本Ci的任意一个副本,数据节点Nj是与数据节点Ni属同一机架并且除数据节点Ni之外负载最低的数据节点。
若数据块B的副本不止副本Ci和副本Cj,则将所述同一数据块B的副本Ck存放在数据节点Nk,此处,副本Ck是所述同一数据块的副本中不同于所述副本Ci和副本Cj的任意一个副本;数据节点Nk是与所述数据节点Ni不属同一机架并且除所述数据节点Ni和数据节点Nj之外负载最低的数据节点,即,假设数据节点Ni和数据节点Nj同属机架C,则数据节点Nk是不同于机架C的另一机架D上的数据节点,并且除数据节点Ni和数据节点Nj之外,数据节点Nk的负载最低。
若数据块B的副本不止副本Ci、副本Cj和副本Ck,则将所述同一数据块的剩余副本存放在数据节点Ni,此处,同一数据块的剩余副本是所述同一数据块B的副本中不同于所述副本Ci、副本Cj和副本Ck的任意副本,数据节点Nl是除所述数据节点Ni、数据节点Nj和数据节点Nk之外,Hadoop分布式文件系统中负载最低的数据节点。
从上述副本的存放策略可知,副本优先存放在客户端所在数据节点,其次是存放在负载最低的数据节点,再其次是存放在与客户端距离较小并且负载最低的数据节点,例如,与客户端同属一个机架的数据节点,其与客户端的距离可以定义为2,与客户端不同属一个机架的数据节点,其与客户端的距离可以定义为4,则显然,与客户端同属一个机架的数据节点和与客户端不同属一个机架的数据节点相比,前者与客户端的距离小于后者与客户端的距离。
S103,在读取所述副本时,从负载最低的数据节点和/或与客户端距离最小的数据节点读取。
在读取同一数据块的副本时,按照负载优先原则读取,即优先从负载较小的数据节点读取同一数据块的副本,在这一大前提下,从与客户端距离较小的数据节点读取同一数据块的副本,具体地,从负载最低的数据节点和/或与客户端距离最小的数据节点读取同一数据块的副本包括如下步骤S1031至步骤S1033:
S1031,将负载小于预置门限的数据节点按照其与客户端的距离大小进行升序排序得到初级数据节点列表。
数据节点与客户端的距离大小定义和背景技术中提到的现有技术相同,例如,在客户端所在的数据节点,其与客户端的距离定义为0,与客户端所在数据节点同属一个机架的数据节点,其与客户端的距离可定义为2,与客户端所在数据节点不同属一个机架的数据节点,其与客户端的距离可定义为4,等等。在本发明实施例中,可以先将负载小于预置门限的数据节点筛选出来,再按照其与客户端的距离进行升序排序得到初级数据节点列表。例如,假设数据节点N1至数据节点Nn中,其负载均小于预置门限的数据节点包括数据节点N1至数据节点Nm,数据节点N1至数据节点Nm与客户端的距离依次定义为S1至Sm,进一步假设S1<S2<…<Sm-1<Sm,则数据节点N1至数据节点Nm按照其与客户端的距离大小进行升序排序得到的初级数据节点列表如附图2。
S1032,将负载大于预置门限的数据节点按照其负载大小进行升序排序在初级数据节点列表后得到最终数据节点列表。
仍以步骤S1031中的数据节点N1至数据节点Nn为例,假设负载均大于预置门限的数据节点包括数据节点Nm+1至数据节点Nn,数据节点Nm+1至数据节点Nn的负载依次定义为Lm+1至Ln,进一步假设Lm+1<Lm+2<…<Ln-1<Ln,则将数据节点Nm+1至数据节点Nn按照其负载大小进行升序排序在初级数据节点列表后得到的最终数据节点列表如附图2。
S1033,从最终数据节点列表的首个数据节点开始,优先从排序在前的数据节点读取同一数据块的副本。
如附图2所示的最终数据节点列表,优先从数据节点N1开始读取同一数据块B的副本。若数据节点N1没有同一数据块B的副本,则再从数据节点N2读取同一数据块B的副本。若数据节点N2没有同一数据块B的副本,则从数据节点N3读取同一数据块B的副本,依次类推,直至最后一个数据节点Nn。
从上述本发明实施例提供的Hadoop分布式文件系统的副本存取方法可知,由于可以根据获取的节点负载信息,将同一数据块的副本存放在客户端所在数据节点或者负载最低的数据节点,在读取所述副本时,从负载最低的数据节点和/或与客户端距离最小的数据节点读取,因此,与现有技术提供的HDFS副本的放置和读取策略只考虑了写/读操作的网络开销,而未考虑系统注入CPU和磁盘等其他负载的负载均衡相比,本发明提供的方法充分考虑到了各个数据节点的节点负载信息,因而能够均衡系统负载,提升读写操作的性能。
下面对用于执行上述Hadoop分布式文件系统的副本存取方法的本发明实施例的Hadoop分布式文件系统的副本存取装置进行说明,其基本逻辑结构参考图3。为了便于说明,仅仅示出了与本发明实施例相关的部分。附图3示例的Hadoop分布式文件系统的副本存取装置可以是Hadoop分布式文件系统中的名字节点或该名字节点中的某个功能模块。附图3示例的Hadoop分布式文件系统的副本存取装置主要包括获取模块301、存放模块302和读取模块303,各模块详细说明如下:
获取模块301,用于获取Hadoop分布式文件系统中数据节点的节点负载信息;
存放模块302,用于在存放副本时,根据所述节点负载信息,将同一数据块的副本存放在客户端所在数据节点或者负载最低的数据节点;
读取模块303,用于在读取所述副本时,从负载最低的数据节点和/或与客户端距离最小的数据节点读取。
需要说明的是,以上附图3示例的Hadoop分布式文件系统的副本存取装置的实施方式中,各功能模块的划分仅是举例说明,实际应用中可以根据需要,例如相应硬件的配置要求或者软件的实现的便利考虑,而将上述功能分配由不同的功能模块完成,即将所述Hadoop分布式文件系统的副本存取装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。而且,实际应用中,本实施例中的相应的功能模块可以是由相应的硬件实现,也可以由相应的硬件执行相应的软件完成,例如,前述的存放模块,可以是具有执行前述根据所述节点负载信息,将同一数据块的副本存放在客户端所在数据节点或者负载最低的数据节点的硬件,例如存放器,也可以是能够执行相应计算机程序从而完成前述功能的一般处理器或者其他硬件设备;再如前述的读取模块,可以是在读取所述副本时,从负载最低的数据节点和/或与客户端距离最小的数据节点读取功能的硬件,例如读取器,也可以是能够执行相应计算机程序从而完成前述功能的一般处理器或者其他硬件设备(本说明书提供的各个实施例都可应用上述描述原则)。
附图3示例的获取模块301可以包括提取单元401,如附图4所示本发明另一实施例提供的Hadoop分布式文件系统的副本存取装置。提取单元401用于通过与所述数据节点握手,从握手信息中提取Hadoop分布式文件系统中数据节点的节点负载信息。
附图3示例的存放模块302可以包括第一存放单元501、第二存放单元502、第三存放单元503和第四存放单元,如附图5所示本发明另一实施例提供的Hadoop分布式文件系统的副本存取装置,其中:
第一存放单元501,用于若所述客户端存在数据节点,则将所述同一数据块的副本Ci存放在客户端所在数据节点,否则,将所述副本Ci存放在Hadoop分布式文件系统中负载最低的数据节点Ni,所述副本Ci是所述同一数据块的副本中的任意一个副本;
第二存放单元502,用于将所述同一数据块的副本Cj存放在数据节点Nj,所述副本Cj是所述同一数据块的副本中不同于所述副本Ci的任意一个副本,所述数据节点Nj是与所述数据节点Ni属同一机架并且除所述数据节点Ni之外负载最低的数据节点;
第三存放单元503,用于将所述同一数据块的副本Ck存放在数据节点Nk,所述副本Ck是所述同一数据块的副本中不同于所述副本Ci和副本Cj的任意一个副本,所述数据节点Nk是与所述数据节点Ni不属同一机架并且除所述数据节点Ni和数据节点Nj之外负载最低的数据节点;
第四存放单元504,用于将所述同一数据块的剩余副本存放在数据节点Nl,所述同一数据块的剩余副本是所述同一数据块的副本中不同于所述副本Ci、副本Cj和副本Ck的任意副本,所述数据节点Nl是除所述数据节点Ni、数据节点Nj和数据节点Nk之外,Hadoop分布式文件系统中负载最低的数据节点。
附图3示例的读取模块303可以包括第一排序单元601、第二排序单元602、和优先读取单元603,如附图6所示本发明另一实施例提供的Hadoop分布式文件系统的副本存取装置,其中:
第一排序单元601,用于将负载小于预置门限的数据节点按照其与客户端的距离大小进行升序排序得到初级数据节点列表;
第二排序单元602,用于将负载大于预置门限的数据节点按照其负载大小进行升序排序在所述初级数据节点列表后得到最终数据节点列表;
优先读取单元603,用于从所述最终数据节点列表的首个数据节点开始,优先从排序在前的数据节点读取所述副本。
请参阅附图7,是本发明实施例提供的Hadoop分布式文件系统的逻辑结构示意图。附图7示例的Hadoop分布式文件系统主要包括名字节点701和至少一个数据节点702,其中,名字节点701包括获取模块703、存放模块704和读取模块705,各模块详细说明如下:
数据节点702,用于存放数据块的副本,将本节点的节点负载信息传递至名字节点701;
获取模块703,用于获取Hadoop分布式文件系统中数据节点702的节点负载信息;
存放模块704,用于在存放副本时,根据所述节点负载信息,将同一数据块的副本存放在客户端所在数据节点或者负载最低的数据节点;
读取模块705,用于在读取所述副本时,从负载最低的数据节点和/或与客户端距离最小的数据节点读取。
附图7示例的存放模块704包括第一存放单元801、第二存放单元802、第三存放单元803和第四存放单元804,读取模块705包括第一排序单元805、第二排序单元806和优先读取单元807,如附图7所示本发明另一实施例提供的Hadoop分布式文件系统的副本存取装置,其中:
第一存放单元801,用于若所述客户端存在数据节点,则将所述同一数据块的副本Ci存放在客户端所在数据节点,否则,将所述副本Ci存放在Hadoop分布式文件系统中负载最低的数据节点Ni,所述副本Ci是所述同一数据块的副本中的任意一个副本;
第二存放单元802,用于将所述同一数据块的副本Cj存放在数据节点Nj,所述副本Cj是所述同一数据块的副本中不同于所述副本Ci的任意一个副本,所述数据节点Nj是与所述数据节点Ni属同一机架并且除所述数据节点Ni之外负载最低的数据节点;
第三存放单元803,用于将所述同一数据块的副本Ck存放在数据节点Nk,所述副本Ck是所述同一数据块的副本中不同于所述副本Ci和副本Cj的任意一个副本,所述数据节点Nk是与所述数据节点Ni不属同一机架并且除所述数据节点Ni和数据节点Nj之外负载最低的数据节点;
第四存放单元804,用于将所述同一数据块的剩余副本存放在数据节点Nl,所述同一数据块的剩余副本是所述同一数据块的副本中不同于所述副本Ci、副本Cj和副本Ck的任意副本,所述数据节点Nl是除所述数据节点Ni、数据节点Nj和数据节点Nk之外,Hadoop分布式文件系统中负载最低的数据节点。
第一排序单元805,用于将负载小于预置门限的数据节点按照其与客户端的距离大小进行升序排序得到初级数据节点列表;
第二排序单元806,用于将负载大于预置门限的数据节点按照其负载大小进行升序排序在所述初级数据节点列表后得到最终数据节点列表;
优先读取单元807,用于从所述最终数据节点列表的首个数据节点开始,优先从排序在前的数据节点读取所述副本。
需要说明的是,上述装置各模块/单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,其带来的技术效果与本发明方法实施例相同,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁盘或光盘等。
以上对本发明实施例所提供的Hadoop分布式文件系统的副本存取方法、装置和Hadoop分布式文件系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种Hadoop分布式文件系统的副本存取方法,其特征在于,所述方法包括:
获取Hadoop分布式文件系统中数据节点的节点负载信息;
在存放副本时,根据所述节点负载信息,将同一数据块的副本存放在客户端所在数据节点或者负载最低的数据节点;
在读取所述副本时,从负载最低的数据节点和/或与客户端距离最小的数据节点读取。
2.根据权利要求1所述的方法,其特征在于,所述获取Hadoop分布式文件系统中数据节点的节点负载信息,包括:
通过与所述数据节点握手,从握手信息中提取Hadoop分布式文件系统中数据节点的节点负载信息。
3.根据权利要求1所述的方法,其特征在于,所述在存放副本时,根据所述节点负载信息,将同一数据块的副本存放在客户端所在数据节点或者负载最低的数据节点,包括:
若所述客户端存在数据节点,则将所述同一数据块的副本Ci存放在客户端所在数据节点,否则,将所述副本Ci存放在Hadoop分布式文件系统中负载最低的数据节点Ni,所述副本Ci是所述同一数据块的副本中的任意一个副本;
将所述同一数据块的副本Cj存放在数据节点Nj,所述副本Cj是所述同一数据块的副本中不同于所述副本Ci的任意一个副本,所述数据节点Nj是与所述数据节点Ni属同一机架并且除所述数据节点Ni之外负载最低的数据节点;
将所述同一数据块的副本Ck存放在数据节点Nk,所述副本Ck是所述同一数据块的副本中不同于所述副本Ci和副本Cj的任意一个副本,所述数据节点Nk是与所述数据节点Ni不属同一机架并且除所述数据节点Ni和数据节点Nj之外负载最低的数据节点;
将所述同一数据块的剩余副本存放在数据节点Nl,所述同一数据块的剩余副本是所述同一数据块的副本中不同于所述副本Ci、副本Cj和副本Ck的任意副本,所述数据节点Nl是除所述数据节点Ni、数据节点Nj和数据节点Nk之外,Hadoop分布式文件系统中负载最低的数据节点。
4.根据权利要求1所述的方法,其特征在于,所述在读取所述副本时,从负载最低的数据节点和/或与客户端距离最小的数据节点读取,包括:
将负载小于预置门限的数据节点按照其与客户端的距离大小进行升序排序得到初级数据节点列表;
将负载大于预置门限的数据节点按照其负载大小进行升序排序在所述初级数据节点列表后得到最终数据节点列表;
从所述最终数据节点列表的首个数据节点开始,优先从排序在前的数据节点读取所述副本。
5.一种Hadoop分布式文件系统的副本存取装置,其特征在于,所述装置包括:
获取模块,用于获取Hadoop分布式文件系统中数据节点的节点负载信息;
存放模块,用于在存放副本时,根据所述节点负载信息,将同一数据块的副本存放在客户端所在数据节点或者负载最低的数据节点;
读取模块,用于在读取所述副本时,从负载最低的数据节点和/或与客户端距离最小的数据节点读取。
6.根据权利要求5所述的装置,其特征在于,所述获取模块包括:
提取单元,用于通过与所述数据节点握手,从握手信息中提取Hadoop分布式文件系统中数据节点的节点负载信息。
7.根据权利要求5所述的装置,其特征在于,所述存放模块包括:
第一存放单元,用于若所述客户端存在数据节点,则将所述同一数据块的副本Ci存放在客户端所在数据节点,否则,将所述副本Ci存放在Hadoop分布式文件系统中负载最低的数据节点Ni,所述副本Ci是所述同一数据块的副本中的任意一个副本;
第二存放单元,用于将所述同一数据块的副本Cj存放在数据节点Nj,所述副本Cj是所述同一数据块的副本中不同于所述副本Ci的任意一个副本,所述数据节点Nj是与所述数据节点Ni属同一机架并且除所述数据节点Ni之外负载最低的数据节点;
第三存放单元,用于将所述同一数据块的副本Ck存放在数据节点Nk,所述副本Ck是所述同一数据块的副本中不同于所述副本Ci和副本Cj的任意一个副本,所述数据节点Nk是与所述数据节点Ni不属同一机架并且除所述数据节点Ni和数据节点Nj之外负载最低的数据节点;
第四存放单元,用于将所述同一数据块的剩余副本存放在数据节点Nl,所述同一数据块的剩余副本是所述同一数据块的副本中不同于所述副本Ci、副本Cj和副本Ck的任意副本,所述数据节点Nl是除所述数据节点Ni、数据节点Nj和数据节点Nk之外,Hadoop分布式文件系统中负载最低的数据节点。
8.根据权利要求5所述的装置,其特征在于,所述读取模块包括:。
第一排序单元,用于将负载小于预置门限的数据节点按照其与客户端的距离大小进行升序排序得到初级数据节点列表;
第二排序单元,用于将负载大于预置门限的数据节点按照其负载大小进行升序排序在所述初级数据节点列表后得到最终数据节点列表;
优先读取单元,用于从所述最终数据节点列表的首个数据节点开始,优先从排序在前的数据节点读取所述副本。
9.一种Hadoop分布式文件系统,其特征在于,所述系统包括名字节点和至少一个数据节点,所述名字节点包括获取模块、存放模块和读取模块;
所述数据节点,用于存放数据块的副本,将本节点的节点负载信息传递至所述名字节点;
所述获取模块,用于获取Hadoop分布式文件系统中数据节点的节点负载信息;
所述存放模块,用于在存放副本时,根据所述节点负载信息,将同一数据块的副本存放在客户端所在数据节点或者负载最低的数据节点;
所述读取模块,用于在读取所述副本时,从负载最低的数据节点和/或与客户端距离最小的数据节点读取。
10.根据权利要求9所述的系统,其特征在于,所述存放模块包括第一存放单元、第二存放单元、第三存放单元和第四存放单元,所述读取模块包括第一排序单元、第二排序单元和优先读取单元;
所述第一存放单元,用于若所述客户端存在数据节点,则将所述同一数据块的副本Ci存放在客户端所在数据节点,否则,将所述副本Ci存放在Hadoop分布式文件系统中负载最低的数据节点Ni,所述副本Ci是所述同一数据块的副本中的任意一个副本;
所述第二存放单元,用于将所述同一数据块的副本Cj存放在数据节点Nj,所述副本Cj是所述同一数据块的副本中不同于所述副本Ci的任意一个副本,所述数据节点Nj是与所述数据节点Ni属同一机架并且除所述数据节点Ni之外负载最低的数据节点;
所述第三存放单元,用于将所述同一数据块的副本Ck存放在数据节点Nk,所述副本Ck是所述同一数据块的副本中不同于所述副本Ci和副本Cj的任意一个副本,所述数据节点Nk是与所述数据节点Ni不属同一机架并且除所述数据节点Ni和数据节点Nj之外负载最低的数据节点;
所述第四存放单元,用于将所述同一数据块的剩余副本存放在数据节点Nl,所述同一数据块的剩余副本是所述同一数据块的副本中不同于所述副本Ci、副本Cj和副本Ck的任意副本,所述数据节点Nl是除所述数据节点Ni、数据节点Nj和数据节点Nk之外,Hadoop分布式文件系统中负载最低的数据节点。
所述第一排序单元,用于将负载小于预置门限的数据节点按照其与客户端的距离大小进行升序排序得到初级数据节点列表;
所述第二排序单元,用于将负载大于预置门限的数据节点按照其负载大小进行升序排序在所述初级数据节点列表后得到最终数据节点列表;
所述优先读取单元,用于从所述最终数据节点列表的首个数据节点开始,优先从排序在前的数据节点读取所述副本。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410120902.9A CN104156381A (zh) | 2014-03-27 | 2014-03-27 | Hadoop分布式文件系统的副本存取方法、装置和Hadoop分布式文件系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410120902.9A CN104156381A (zh) | 2014-03-27 | 2014-03-27 | Hadoop分布式文件系统的副本存取方法、装置和Hadoop分布式文件系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104156381A true CN104156381A (zh) | 2014-11-19 |
Family
ID=51881886
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410120902.9A Pending CN104156381A (zh) | 2014-03-27 | 2014-03-27 | Hadoop分布式文件系统的副本存取方法、装置和Hadoop分布式文件系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104156381A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104978236A (zh) * | 2015-07-07 | 2015-10-14 | 四川大学 | 一种基于多衡量指标的hdfs负载源宿节点选取方法 |
CN105550362A (zh) * | 2015-12-31 | 2016-05-04 | 浙江大华技术股份有限公司 | 一种存储系统的索引数据修复方法和存储系统 |
CN106776000A (zh) * | 2016-11-17 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种分布式文件系统负载平衡实现方法 |
CN107295030A (zh) * | 2016-03-30 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 一种数据写入方法、装置、数据处理方法、装置及系统 |
CN109522289A (zh) * | 2018-10-30 | 2019-03-26 | 咪咕文化科技有限公司 | 副本的存放处理方法、装置及计算机存储介质 |
CN110535898A (zh) * | 2018-05-25 | 2019-12-03 | 许继集团有限公司 | 大数据存储中副本存放、补全、节点选择方法及管理系统 |
CN110825704A (zh) * | 2019-09-27 | 2020-02-21 | 华为技术有限公司 | 一种读数据方法、写数据方法及服务器 |
WO2020094064A1 (zh) * | 2018-11-07 | 2020-05-14 | 中兴通讯股份有限公司 | 性能优化方法、装置、设备及计算机可读存储介质 |
CN112346667A (zh) * | 2021-01-07 | 2021-02-09 | 广东睿江云计算股份有限公司 | 一种ceph存储osd读均衡方法及其系统 |
CN115080527A (zh) * | 2022-08-23 | 2022-09-20 | 矩阵起源(深圳)信息科技有限公司 | 分布式数据处理方法、装置、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130024496A1 (en) * | 2011-07-21 | 2013-01-24 | Yahoo! Inc | Method and system for building an elastic cloud web server farm |
CN103150263A (zh) * | 2012-12-13 | 2013-06-12 | 深圳先进技术研究院 | 分级存储方法 |
-
2014
- 2014-03-27 CN CN201410120902.9A patent/CN104156381A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130024496A1 (en) * | 2011-07-21 | 2013-01-24 | Yahoo! Inc | Method and system for building an elastic cloud web server farm |
CN103150263A (zh) * | 2012-12-13 | 2013-06-12 | 深圳先进技术研究院 | 分级存储方法 |
Non-Patent Citations (1)
Title |
---|
朱岩: "Hadoop云存储策略的研究与优化", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104978236B (zh) * | 2015-07-07 | 2018-11-06 | 四川大学 | 基于多衡量指标的hdfs负载源宿节点选取方法 |
CN104978236A (zh) * | 2015-07-07 | 2015-10-14 | 四川大学 | 一种基于多衡量指标的hdfs负载源宿节点选取方法 |
CN105550362A (zh) * | 2015-12-31 | 2016-05-04 | 浙江大华技术股份有限公司 | 一种存储系统的索引数据修复方法和存储系统 |
CN105550362B (zh) * | 2015-12-31 | 2019-11-19 | 浙江大华技术股份有限公司 | 一种存储系统的索引数据修复方法和存储系统 |
CN107295030A (zh) * | 2016-03-30 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 一种数据写入方法、装置、数据处理方法、装置及系统 |
CN106776000A (zh) * | 2016-11-17 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种分布式文件系统负载平衡实现方法 |
CN110535898A (zh) * | 2018-05-25 | 2019-12-03 | 许继集团有限公司 | 大数据存储中副本存放、补全、节点选择方法及管理系统 |
CN110535898B (zh) * | 2018-05-25 | 2022-10-04 | 许继集团有限公司 | 大数据存储中副本存放、补全、节点选择方法及管理系统 |
CN109522289A (zh) * | 2018-10-30 | 2019-03-26 | 咪咕文化科技有限公司 | 副本的存放处理方法、装置及计算机存储介质 |
WO2020094064A1 (zh) * | 2018-11-07 | 2020-05-14 | 中兴通讯股份有限公司 | 性能优化方法、装置、设备及计算机可读存储介质 |
CN111159131A (zh) * | 2018-11-07 | 2020-05-15 | 中兴通讯股份有限公司 | 性能优化方法、装置、设备及计算机可读存储介质 |
CN110825704A (zh) * | 2019-09-27 | 2020-02-21 | 华为技术有限公司 | 一种读数据方法、写数据方法及服务器 |
CN110825704B (zh) * | 2019-09-27 | 2023-09-01 | 华为云计算技术有限公司 | 一种读数据方法、写数据方法及服务器 |
CN112346667A (zh) * | 2021-01-07 | 2021-02-09 | 广东睿江云计算股份有限公司 | 一种ceph存储osd读均衡方法及其系统 |
CN115080527A (zh) * | 2022-08-23 | 2022-09-20 | 矩阵起源(深圳)信息科技有限公司 | 分布式数据处理方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104156381A (zh) | Hadoop分布式文件系统的副本存取方法、装置和Hadoop分布式文件系统 | |
CN105144121B (zh) | 高速缓存内容可寻址数据块以供存储虚拟化 | |
Chandrasekar et al. | A novel indexing scheme for efficient handling of small files in hadoop distributed file system | |
US8677366B2 (en) | Systems and methods for processing hierarchical data in a map-reduce framework | |
JP2019517043A (ja) | ハイブリッドアプリケーションの自動更新 | |
US20110022582A1 (en) | Indexing of Partitioned External Data Sources | |
US9459897B2 (en) | System and method for providing data analysis service in cloud environment | |
CN103744618B (zh) | 实现团队共享存储的方法及系统 | |
CN104133882A (zh) | 一种基于hdfs的小文件处理方法 | |
CN110347651A (zh) | 基于云存储的数据同步方法、装置、设备及存储介质 | |
US9900386B2 (en) | Provisioning data to distributed computing systems | |
CN103780676B (zh) | 一种文件传输方法、设备和系统 | |
US20180267979A1 (en) | Managing data storage using storage policy specifications | |
US9600486B2 (en) | File system directory attribute correction | |
CN110532098A (zh) | 提供gpu服务的方法及系统 | |
US10681180B2 (en) | Dynamically transitioning the file system role of compute nodes for provisioning a storlet | |
CN106446099A (zh) | 一种分布式云存储方法、系统及其上传下载方法 | |
CN109151824A (zh) | 一种基于5g架构的图书馆数据服务扩展系统及方法 | |
CN109767274B (zh) | 一种对海量发票数据进行关联存储的方法及系统 | |
CN102281312B (zh) | 一种数据加载方法、系统和数据处理方法、系统 | |
CN110018878A (zh) | 一种分布式系统数据加载方法以及装置 | |
CN106570153A (zh) | 一种海量url的数据提取方法及系统 | |
US11748029B2 (en) | Protecting writes to shared storage in a distributed search system | |
CN110502472A (zh) | 一种大量小文件的云存储优化方法及其系统 | |
CN106570151A (zh) | 一种海量文件的数据收集处理方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into 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: 20141119 |