CN107368490A - 数据处理方法及装置 - Google Patents
数据处理方法及装置 Download PDFInfo
- Publication number
- CN107368490A CN107368490A CN201610315583.6A CN201610315583A CN107368490A CN 107368490 A CN107368490 A CN 107368490A CN 201610315583 A CN201610315583 A CN 201610315583A CN 107368490 A CN107368490 A CN 107368490A
- Authority
- CN
- China
- Prior art keywords
- node
- metadata
- name
- information
- target designation
- 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/13—File access structures, e.g. distributed indices
-
- 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
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分布式文件系统(HDFS,Hadoop Distribute File System)、计算框架(MapReduce)、数据库(HBase)、数据仓库(Hive)以及其他组件,其中,HDFS是Hadoop的最为基础的分布式计算存储平台。但是,HDFS至少存在如下两方面问题:
1)存储元数据(metadata)的名称节点(NameNode)存在单点故障问题:针对该问题目前已经公开的解决NameNode高可靠性(HA)问题的技术列举如下:现有技术1公开了一种分布式系统的NameNode切换方法和系统,通过主从NameNode节点切换实现HDFS系统的高可靠性;现有技术2公开了一种解决Hadoop分布式文件系统NameNode单点故障的HA方法,采用两台服务器实现双机热备,将元数据保存在共享存储中,该方法也是解决NameNode节点HA问题;现有技术3公开了一种云存储数据同步框架及其实现方法,提出云存储数据同步框架(Quorum),以解决NameNode节点单点故障时的服务中断问题;上述技术方案可以有效解决NameNode节点的高可靠性问题。
2)HDFS存在的无法有效处理海量小文件的问题:参见图1,因为HFDS在NameNode节点中存储元数据,而因为NameNode节点把文件系统的元数据放置在服务器内存中,所以文件系统所能容纳的文件数目是由NameNode的内存大小来决定;然而,NameNode的内存大小是有限的,使得HDFS系统无法高效存储大量的小文件。对此,现有技术4公开了一种海量小文件存储及管理方法和系统,方法包括:存储海量小文件,并将元数据写入NameNode服务网络;NameNode服务网络管理元数据,实现对客户端访问请求的响应;具体地,将多个NameNode节点组成对等网络,每个NameNode节点在对等网络的地位是相同的,它们协同解决小文件的存储和管理问题,通过改进NameNode实现机制而提升HDFS处理海量小文件的能力,采用对等计算技术,避免单点失效问题,提供基于关键字的路由查找方法,有效均衡网络负载,提高查询效率。
然而,现有技术4中NameNode对等网络(Peer-to-Peer)实现起来非常复杂,而且会损失输入/输出(I/O)处理性能,进而会影响HDFS系统的吞吐量,而HDFS系统的核心的目的之一正是实现高吞吐量;如此,现有技术会增加实现复杂性,降低系统吞吐量。
发明内容
有鉴于此,本发明实施例期望提供一种数据处理方法及装置,能降低实现复杂性,提高系统吞吐量。
为达到上述目的,本发明的技术方案是这样实现的:
本发明实施例提供一种数据处理方法,方法包括:
第一名称节点根据所述客户端发送的访问请求,从至少一个第二名称节点中确定与所述访问请求对应的目标名称节点;
所述第一名称节点向所述目标名称节点发送所述访问请求;
所述目标名称节点根据所述访问请求进行响应处理,并将处理结果反馈给所述第一名称节点;
所述第一名称节点根据所述处理结果向所述客户端发送访问响应。
在上述实施例的基础上,所述方法还包括:
所述第一名称节点检测各所述至少一个第二名称节点的内存使用信息;
检测到所述至少一个第二名称节点中的第三名称节点的内存使用信息满足第一预设条件时,从所述至少一个第二名称节点中查找到目前状态为不正在使用的第四名称节点;
确定所述第四名称节点的内存使用信息满足第二预设条件时,将所述第三名称节点存储的部分元数据迁移至所述第四名称节点中,以使所述第三名称节点的内存使用信息满足第三预设条件。
在上述实施例的基础上,所述第一名称节点检测各所述至少一个第二名称节点的内存使用信息,包括:
所述第一名称节点查询节点管理表,获取各所述至少一个第二名称节点的内存使用信息;其中,所述节点管理表,用于记录各所述至少一个第二名称节点的目前状态及内存使用信息。
在上述实施例的基础上,第一名称节点根据所述客户端发送的访问请求,从至少一个第二名称节点中确定与所述访问请求对应的目标名称节点,包括:
所述第一名称节点对所述访问请求进行解析,提取出操作类型和元数据信息;所述第一名称节点根据所述元数据信息,分别查询各所述至少一个第二名称节点,从各所述至少一个第二名称节点中确定存储所述元数据信息的目标名称节点。
在上述实施例的基础上,所述目标名称节点根据所述访问请求进行响应处理,包括:
所述访问请求为读操作时,所述目标名称节点使用所述元数据信息查询所述目标名称节点的元数据管理表,得到所述元数据信息在所述目标名称节点中的存储信息;基于所述元数据信息在所述目标名称节点中的存储信息,读取所述元数据信息;或者,
所述访问请求为写操作时,所述目标名称节点将所述元数据信息写入内存系统中,并更新所述元数据信息在所述元数据管理表中的存储信息;
其中,所述目标名称节点的元数据管理表,用于记录所述目标名称节点所存储的元数据信息分别在所述目标名称节点中的存储信息。
本发明实施例还提供一种数据处理装置,装置包括:
确定模块,用于根据所述客户端发送的访问请求,从至少一个第二名称节点中确定与所述访问请求对应的目标名称节点;
发送模块,用于向所述目标名称节点发送所述访问请求;
响应模块,用于根据所述访问请求进行响应处理,并将处理结果反馈给所述第一名称节点;
所述发送模块,还用于根据所述处理结果向所述客户端发送访问响应。
在上述实施例的基础上,所述装置还包括:
检测模块,用于检测各所述至少一个第二名称节点的内存使用信息;
查找模块,用于在所述检测模块检测到所述至少一个第二名称节点中的第三名称节点的内存使用信息满足第一预设条件时,从所述至少一个第二名称节点中查找到目前状态为不正在使用的第四名称节点;
所述响应模块,还用于确定所述第四名称节点的内存使用信息满足第二预设条件时,将所述第三名称节点存储的部分元数据迁移至所述第四名称节点中,以使所述第三名称节点的内存使用信息满足第三预设条件。
在上述实施例的基础上,所述检测模块,具体用于:
查询节点管理表,获取各所述至少一个第二名称节点的内存使用信息;其中,所述节点管理表,用于记录各所述至少一个第二名称节点的目前状态及内存使用信息。
在上述实施例的基础上,所述确定模块,具体用于:对所述访问请求进行解析,提取出操作类型和元数据信息;根据所述元数据信息,分别查询各所述至少一个第二名称节点,从各所述至少一个第二名称节点中确定存储所述元数据信息的目标名称节点。
在上述实施例的基础上,所述响应模块,具体用于:
所述访问请求为读操作时,使用所述元数据信息查询所述目标名称节点的元数据管理表,得到所述元数据信息在所述目标名称节点中的存储信息;基于所述元数据信息在所述目标名称节点中的存储信息,读取所述元数据信息;
或者,
所述访问请求为写操作时,将所述元数据信息写入内存系统中,并更新所述元数据信息在所述元数据管理表中的存储信息;
其中,所述目标名称节点的元数据管理表,用于记录所述目标名称节点所存储的元数据信息分别在所述目标名称节点中的存储信息。
本发明实施例,通过将分布式文件系统的名称节点分为第一名称节点和多个第二名称节点,第一名称节点负责所有名称节点的统一映像管理以及作为客户端的查询、读写操作等的访问接口,第一名称节点对所有的第二名称节点统一管理,第二名称节点负责元数据的存储、管理等功能,在实现上较为简单,如此,能降低实现复杂性,提高系统吞吐量。
附图说明
图1为现有技术中HDFS的系统结构示意图;
图2为本发明实施例中分布式文件系统的一种可选的系统结构示意图;
图3为本发明实施例提供的数据处理方法的一种可选的流程示意图;
图4为本发明实施例中第一名称节点的一种可选的结构示意图;
图5为本发明实施例中第二名称节点的一种可选的结构示意图;
图6为本发明实施例提供的数据处理装置的一种可选的结构示意图;
图7为本发明实施例提供的数据处理装置的另一种可选的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
本发明实施例记载一种数据处理方法,可以应用于分布式文件系统,例如Hadoop分布式文件系统,参见图2示出的本发明实施例中分布式文件系统的一种可选的系统结构示意图,本发明实施例记载的分布式文件系统可以包括:客户端、第一名称节点(也可称管理名称节点)、至少一个第二名称节点(也可称数据名称节点)、至少一个数据节点;该分布式文件系统中管理元数据的名称节点包括一个第一名称节点和多个第二名称节点;其中,第一名称节点负责所有名称节点的统一映像以及作为客户端的查询、读写操作接口等,第一名称节点是所有名称节点的控制管理节点;第二名称节点负责元数据的存储、管理等功能;第一名称节点负责根据每个第二名称节点的内存使用情况对所有的第二名称节点进行统一的分配管理,以保证第二名称节点能够有效处理元数据;在第二名称节点中实现元数据快速查询表,以便能够在多个第二名称节点中快速查询、定位元数据,以提高系统的整体I/O性能。
基于上述记载的分布式文件系统,提出以下各具体实施例。
实施例一
图3为本发明实施例提供的数据处理方法的一种可选的流程示意图,如图3所示,该方法包括:
步骤101、第一名称节点根据客户端发送的访问请求,从至少一个第二名称节点中确定与访问请求对应的目标名称节点。
客户端例如是HDFS客户端。第一名称节点对HDFS客户端呈现为统一的名称节点映像,主要功能包括:(1)所有名称节点的统一映像管理,所有名称节点作为一个整体的对外接口关系可以采用现有的接口关系,而且对外依然表现为单一的名称节点映像;(2)作为与HDFS客户端、数据节点的接口,包括客户端的读写操作、数据节点的元数据查询等;(4)根据所有的第二名称节点的内存使用情况等信息,对所有的第二名称节点进行统一的分配管理,以保证所有的第二名称节点正常运行。第二名称节点负责具体元数据的存储、管理等,主要功能包括:(1)元数据的存储,即元数据的具体存储由若干个第二名称节点实际实现;(2)元数据的数据存放位置、变化由第二名称节点具体管理;(3)元数据的修改、删除等由第二名称节点处理;(4)元数据的快速查询功能,即在内部实现多关键字快速查询表,以提高查询速度。
客户端发送给第一名称节点的访问请求中携带有操作类型及文件信息或元数据信息等;操作类型可以包括:查询操作、读操作、写操作、修改操作、删除操作等。第一名称节点根据客户端发送的访问请求,从至少一个第二名称节点中确定与访问请求对应的目标名称节点的一种可行的实现方式包括:第一名称节点对访问请求进行解析,提取出操作类型和元数据信息;第一名称节点根据元数据信息,分别查询各至少一个第二名称节点,从各至少一个第二名称节点中确定存储元数据信息的目标名称节点。
步骤102、第一名称节点向目标名称节点发送访问请求。
步骤103、目标名称节点根据访问请求进行响应处理,并将处理结果反馈给第一名称节点。
步骤104、第一名称节点根据处理结果向客户端发送访问响应。
现有技术由于采用对等网络模式,因而需要考虑对等网络的复杂调度和管理功能;然而,本实施例中将分布式文件系统的名称节点分为第一名称节点和多个第二名称节点,第一名称节点负责所有名称节点的统一映像管理以及作为客户端的查询、读写操作等的访问接口,第一名称节点对所有的第二名称节点统一管理,第二名称节点负责元数据的存储、管理等功能,在实现上较为简单,如此,能降低实现复杂性,提高系统吞吐量。
实施例二
本实施例基于实施例一,首先对第一名称节点进行具体说明。
第一名称节点是整个名称节点的控制管理节点,一方面对外表现为统一的名称节点映像,另一方面必须遵循标准的HDFS读写过程和接口;参见图4,第一名称节点在具体实现上包括:(1)HDFS系统内部调用接口;(2)元数据查询模块;(3)元数据读写模块;(4)元数据管理模块;(5)统一映像管理模块;(6)数据节点远程过程调用协议(RPC,Remote Procedure Call Protocol)函数;(7)后台守护进程(Daemon),支持第二名称节点管理,主要负责对第二名称节点统一管理。
第一名称节点采用标准统一的HDFS调用接口和HDFS客户端以及数据节点交互第一名称节点接收到命令后,通过元数据查询模块查询元数据所在的具体第二名称节点的标识号;通过元数据读写模块将元数据从具体第二名称节点上读出,或者将元数据具体写到具体第二名称节点上;通过元数据管理模块实现元数据的信息统计或信息管理。
统一映像管理模块,实际上就是将所有的第二名称节点统一管理成单一映像的名称节点,屏蔽第二名称节点内部细节问题,通过标准化的数据节点RPC函数和各个第二名称节点交互,对外表现为一个统一映像的名称节点;统一映像管理模块是第一名称节点的核心控制模块,核心功能就是将所有的第二名称节点全部管理起来,实现为统一的名称节点,其在内部建立第二名称节点管理表(也即节点管理表)对所有的第二名称节点进行管理;节点管理表用于记录各至少一个第二名称节点(即所有的第二名称节点)的目前状态及内存使用信息,节点管理表的数据结构,示例如下:
统一映射管理模块的主要管理功能包括:(1)刷新模块,主要对所有第二名称节点的信息统一进行刷新;(2)查询、读写、调度模块的统一接口函数,负责为这些函数查询定位所有的第二名称节点的信息,并将它们传递给下层标准的RPC函数进行处理;(3)和RPC标准化函数接口;(4)第二名称节点管理函数,主要是负责删除、增加、修改节点管理表信息。
这里,对第一名称节点的主要处理流程说明如下,流程包括:
1)接收HDFS系统的调用函数,例如各种标准化函数。
2)处理调用函数的参数,从中得到元数据所有信息。
3)根据元数据信息,判断元数据信息的正确性或完整性,如果存在错误,则返回错误给HDFS系统的调用函数,流程结束;否则执行步骤4)。
4)判断调用函数的类型:
若调用函数为查询函数,则调用元数据查询模块,元数据查询模块查询所有的第二名称节点,确定元数据是否存在,如果存在则返回元数据信息;如果不存在则返回错误信息;
若调用函数为读函数:调用元数据读写模块,其根据统一映像管理模块得到元数据所在第二名称节点信息,并向具体的第二名称节点发送读元数据操作,处理完毕返回所读元数据信息;
若调用函数为写函数:调用元数据读写模块,其根据统一映像管理模块得到元数据所在第二名称节点信息,并向具体的第二名称节点发送写元数据操作,处理完毕后返回写操作成功与否的信息;
若调用函数为其他函数:调用元数据管理模块,从对应的第二名称节点中得到元数据相关管理信息,处理后返回元数据管理操作结果。
5)将各种返回结果或数据返回给HDFS调用函数。
这里,对第一名称节点对第二名称节点的管理功能及过程进行说明。第一名称节点不仅根据外部调用处理正常的元数据读写功能,而且必须对第二名称节点进行后台管理,包括增加、替换第二名称节点等。
第一名称节点完成增加第二名称节点的实现方式可以包括:
1)第一名称节点检测各至少一个第二名称节点的内存使用信息;
这里,第一名称节点查询节点管理表,获取各至少一个第二名称节点的内存使用信息;其中,节点管理表,用于记录各至少一个第二名称节点的目前状态及内存使用信息;内存使用信息可以包括:内存使用大小,和/或内存使用率。
2)检测到至少一个第二名称节点中的第三名称节点的内存使用信息满足第一预设条件时,从至少一个第二名称节点中查找到目前状态为不正在使用的第四名称节点;
3)确定第四名称节点的内存使用信息满足第二预设条件时,将第三名称节点存储的部分元数据迁移至第四名称节点中,以使第三名称节点的内存使用信息满足第三预设条件。
下面通过一个具体的实施例对第一名称节点完成增加第二名称节点的主要过程进行说明:
1)第一名称节点通过后台Daemon定时查询所有第二名称节点的内存使用情况;
2)如果单个第二名称节点的已使用内存已经超过85%,则需要增加新的第二名称节点,跳转步骤4);否则,转到步骤3);
3)Daemon休眠60ms,跳转到步骤1);
4)根据节点管理表信息找到目前不正在使用的第二名称节点;
5)后台Daemon调整该第二名称节点的状态信息,并将其插入到已经使用的第二名称节点的最后一个;
6)查询新第二名称节点的内存使用情况;
7)如果新第二名称节点的内存使用情况小于50%,则调用元数据迁移工具,将该第二名称节点的元数据迁移到新的第二名称节点中,直到内存使用量小于70%为止,转到步骤8);否则跳转到步骤10);
8)修改内部的节点管理表信息,调用第二名称节点内部的元数据表管理函数进行修改调整后的元数据信息;
9)第二名称节点成功修改元数据表信息;
10)返回步骤1)。
实际中,在第二名称节点使用中,可能因为数据节点的磁盘、内存大小等受到限制,或者系统存在问题而进行第二名称节点的替换。替换第二名称节点的主要处理流程如下:
1)后台Daemon定位替换和被替换的名称节点;
2)将被替换的第二名称节点的状态修改为替换;
3)查询所有目前没有正在使用的第二名称节点;
4)找到未使用内存最大的第二名称节点;
5)如果其未使用内存大小小于被替换的第二名称节点的使用内存大小,则修改被替换的第二名称节点状态,返回无法替换信息,跳转步骤10);否则,转到步骤6);
6)将此第二名称节点状态修改为正在使用;
7)将被替换的第二名称节点的元数据迁移到替换的第二名称节点上;
8)后台Daemon等待数据迁移完毕信息;
9)后台Daemon修改节点管理表信息;
10)返回。
下面对第二名称节点进行具体说明。
第二名称节点是具体存储、管理与迁移元数据的功能模块,其和HDFS系统的客户端、DataNode无关,其只通过第一名称节点标准化的RPC函数实现和第一名称节点接口,其和第一名称节点之间通过TCP/IP进行通信。参见图5,第二名称节点的主要的功能模块包括:(1)第一名称节点RPC函数接口;(2)元数据查询模块,包括第二名称节点信息查询函数,根据统一映像管理模块进行第二名称节点的具体元数据信息查询,返回所查询的元数据信息;(3)元数据读模块,包括读函数,负责从第二名称节点内存中读具体的元数据信息;(4)元数据写模块,包括写函数,负责往第二名称节点内存中写具体的元数据信息;(5)元数据管理模块,即负责查询元数据及元数据所在第二名称节点的统计信息或管理信息,其被第一名称节点元数据管理函数所调用处理,其具体包括统计、删除、更新等管理操作;(6)第二名称节点内存操作处理函数,负责具体和内存系统接口,实现数据在内存系统的读写、删除、查询等各种操作。
上述实施例一中步骤103记载的目标名称节点根据访问请求进行响应处理的一种可行的实现方式包括:
情形1:访问请求为读操作时,目标名称节点使用元数据信息查询目标名称节点的元数据管理表,得到元数据信息在目标名称节点中的存储信息;基于元数据信息在目标名称节点中的存储信息,读取元数据信息;其中,目标名称节点的元数据管理表,用于记录目标名称节点所存储的元数据信息分别在目标名称节点中的存储信息。
情形2:访问请求为写操作时,目标名称节点将元数据信息写入内存系统中,并更新元数据信息在元数据管理表中的存储信息。
数据NameNode负责对元数据的具体查询、读写、删除等操作,所有操作全部在内存系统中进行,其通过数据NameNode内存操作处理函数实现。
第一名称节点仅仅实现对第二名称节点的节点级别的管理,而具体元数据的管理全部在第二名称节点中实现。在第二名称节点中提供元数据快速查询定位功能,以提高整体系统的I/O处理性能。
元数据快速查询定位功能的实现方法如下:(1)在每个第二名称节点中实现一个元数据查询管理表(即上述的元数据管理表);(2)该表以二叉树的方式实现,以便能够快速查询;(3)二叉树的每个节点采用特定的数据结构模式,具体参见如下结构;(4)第二名称节点在写元数据的时候,按照元数据查询管理表数据结构的要求,将数据填写到相关数据结构中;(5)所有的元数据查询直接查询元数据查询管理表,而不查询内存系统真正的元数据;(6)元数据查询管理表每次在元数据写操作后进行结构调整,调整二叉树节点的位置。
元数据查询管理表节点的数据结构如下:
第二名称节点进行元数据写操作的主要过程如下:
1)数据NameNode接受RPC函数传递的管理NameNode命令;
2)将函数中的参数和数据整理出来;
3)调用内存处理函数将数据写到内存系统中;
4)查询元数据查询管理表,是否已经存在此文件;如果不存在,则增加一个节点,转至步骤5);否则跳转到步骤7);
5)将新增加的节点按照二叉树结构放到二叉树中。
6)将写操作中的相关数据填写到新增加节点的数据结构中;
7)修改新节点内容;
8)将写操作的处理结果返回给RPC函数。
第二名称节点进行元数据查询操作的主要过程如下:
1)接收RPC模块传送的元数据查询函数;
2)整理元数据查询函数的参数和数据;
3)按照文件名、索引节点号、数据块号查询元数据快速查询管理表;
4)按照二叉树结构进行遍历查询;
5)如果遍历完毕,没有此元数据信息,则跳转到步骤8);否则转至步骤6);
6)根据所确定的节点信息,调用内存操作函数读出元数据信息;
7)将元数据信息返回给RPC模块,退出处理;
8)将没有元数据信息返回给RPC模块。
本实施例将分布式文件系统的名称节点分为第一名称节点和多个第二名称节点,第一名称节点负责统一映像管理以及接口调用处理,而第二名称节点负责元数据的存储和管理,而所有的名称节点对于客户端和数据节点表现为单一的第一名称节点,并且遵循原来的接口和流程语义。第一名称节点根据第二名称节点的内存以及元数据存储的要求,对第二名称节点进行统一的配置和部署,从而满足元数据动态增长要求;在第二名称节点内部实现元数据快速查询表,不用再对每个第二名称节点进行元数据的查询,可以提高元数据查询的速度。
本实施例将单一的名称节点模式变化为管理名称节点加上数据名称节点的模式,管理名称节点负责统一映射以及查询、读写操作接口等,数据名称节点负责元数据的存储、管理与迁移等,名称节点全部采用Hot-Standby热备模式,以提高NameNode的高可靠性、防止其出现单点故障(SPOF),但不改变HDFS客户端的读写语义,HDFS客户端和名称节点按照原有语义、流程处理。
与现有技术相比,本实施例将名称节点分为管理名称节点和多个数据名称节点,而不是采用对等网络模式,因此在内部实现上较为简单,而不用考虑对等网络的复杂调度和管理功能;与对等网络模式相比,本实施例中内部的I/O路径较短,因而可以得到较好的I/O处理性能,同时,可以保持较好的系统整体吞吐量。综上,本实施例可以用于解决现有技术中HDFS存在的无法有效处理海量小文件的问题,同时遵循严格的HDFS内部接口和处理流程,还可以保持较好的I/O处理性能和系统整体吞吐量。
实施例三
本实施例与上述实施例的记载相对应,本实施例记载一种数据处理装置,可以用于执行上述实施例记载的数据处理方法,数据处理装置可以采用各种方式来实施,例如在分布式系统中实施装置中的全部组件,或者,在分布式系统侧以耦合的方式实施装置中的组件;参见图6所示,数据处理装置包括:
确定模块201,用于根据客户端发送的访问请求,从至少一个第二名称节点中确定与访问请求对应的目标名称节点;
发送模块202,用于向目标名称节点发送访问请求;
响应模块203,用于根据访问请求进行响应处理,并将处理结果反馈给第一名称节点;
发送模块202,还用于根据处理结果向客户端发送访问响应。
本实施例中将分布式文件系统的名称节点分为第一名称节点和多个第二名称节点,第一名称节点负责所有名称节点的统一映像管理以及作为客户端的查询、读写操作等的访问接口,第一名称节点对所有的第二名称节点统一管理,第二名称节点负责元数据的存储、管理等功能,在实现上较为简单,如此,能降低实现复杂性,提高系统吞吐量。
实施例四
本实施例基于实施例三,参见图7所示,本实施例记载的数据处理装置也包括确定模块201、发送模块202、响应模块203,并且这些模块也具有实施例三所记载的相应作用,同时,本实施例记载的数据处理装置还包括:
检测模块204,用于检测各至少一个第二名称节点的内存使用信息;
查找模块205,用于在检测模块204检测到至少一个第二名称节点中的第三名称节点的内存使用信息满足第一预设条件时,从至少一个第二名称节点中查找到目前状态为不正在使用的第四名称节点;
响应模块203,还用于确定第四名称节点的内存使用信息满足第二预设条件时,将第三名称节点存储的部分元数据迁移至第四名称节点中,以使第三名称节点的内存使用信息满足第三预设条件。
在上述实施例的基础上,检测模块204,具体用于:
查询节点管理表,获取各至少一个第二名称节点的内存使用信息;其中,节点管理表,用于记录各至少一个第二名称节点的目前状态及内存使用信息。
在上述实施例的基础上,确定模块201,具体用于:
对访问请求进行解析,提取出操作类型和元数据信息;根据元数据信息,分别查询各至少一个第二名称节点,从各至少一个第二名称节点中确定存储元数据信息的目标名称节点。
在上述实施例的基础上,响应模块203,具体用于:
访问请求为读操作时,使用元数据信息查询目标名称节点的元数据管理表,得到元数据信息在目标名称节点中的存储信息;基于元数据信息在目标名称节点中的存储信息,读取元数据信息;
或者,
访问请求为写操作时,将元数据信息写入内存系统中,并更新元数据信息在元数据管理表中的存储信息;
其中,目标名称节点的元数据管理表,用于记录目标名称节点所存储的元数据信息分别在目标名称节点中的存储信息。
在实际应用中,确定模块201、发送模块202、响应模块203、检测模块204及查找模块205均可由位于数据处理装置的中央处理器(CPU)、微处理器(MPU)、专用集成电路(ASIC)或现场可编程门阵列(FPGA)等实现。
实施例五
本实施例记载一种计算机可读介质,可以为ROM(例如,只读存储器、FLASH存储器、转移装置等)、磁存储介质(例如,磁带、磁盘驱动器等)、光学存储介质(例如,CD-ROM、DVD-ROM、纸卡、纸带等)以及其他熟知类型的程序存储器;计算机可读介质中存储有计算机可执行指令,当执行指令时,引起至少一个处理器执行包括以下的操作:
第一名称节点根据客户端发送的访问请求,从至少一个第二名称节点中确定与访问请求对应的目标名称节点;
第一名称节点向目标名称节点发送访问请求;
目标名称节点根据访问请求进行响应处理,并将处理结果反馈给第一名称节点;
第一名称节点根据处理结果向客户端发送访问响应。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (10)
1.一种数据处理方法,其特征在于,应用于分布式文件系统,所述方法包括:
第一名称节点根据所述客户端发送的访问请求,从至少一个第二名称节点中确定与所述访问请求对应的目标名称节点;
所述第一名称节点向所述目标名称节点发送所述访问请求;
所述目标名称节点根据所述访问请求进行响应处理,并将处理结果反馈给所述第一名称节点;
所述第一名称节点根据所述处理结果向所述客户端发送访问响应。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一名称节点检测各所述至少一个第二名称节点的内存使用信息;
检测到所述至少一个第二名称节点中的第三名称节点的内存使用信息满足第一预设条件时,从所述至少一个第二名称节点中查找到目前状态为不正在使用的第四名称节点;
确定所述第四名称节点的内存使用信息满足第二预设条件时,将所述第三名称节点存储的部分元数据迁移至所述第四名称节点中,以使所述第三名称节点的内存使用信息满足第三预设条件。
3.根据权利要求2所述的方法,其特征在于,所述第一名称节点检测各所述至少一个第二名称节点的内存使用信息,包括:
所述第一名称节点查询节点管理表,获取各所述至少一个第二名称节点的内存使用信息;其中,所述节点管理表,用于记录各所述至少一个第二名称节点的目前状态及内存使用信息。
4.根据权利要求1所述的方法,其特征在于,所述第一名称节点根据所述客户端发送的访问请求,从至少一个第二名称节点中确定与所述访问请求对应的目标名称节点,包括:
所述第一名称节点对所述访问请求进行解析,提取出操作类型和元数据信息;
所述第一名称节点根据所述元数据信息,分别查询各所述至少一个第二名称节点,从各所述至少一个第二名称节点中确定存储所述元数据信息的目标名称节点。
5.根据权利要求4所述的方法,其特征在于,所述目标名称节点根据所述访问请求进行响应处理,包括:
所述访问请求为读操作时,所述目标名称节点使用所述元数据信息查询所述目标名称节点的元数据管理表,得到所述元数据信息在所述目标名称节点中的存储信息;基于所述元数据信息在所述目标名称节点中的存储信息,读取所述元数据信息;或者,
所述访问请求为写操作时,所述目标名称节点将所述元数据信息写入内存系统中,并更新所述元数据信息在所述元数据管理表中的存储信息;
其中,所述目标名称节点的元数据管理表,用于记录所述目标名称节点所存储的元数据信息分别在所述目标名称节点中的存储信息。
6.一种数据处理装置,其特征在于,所述装置包括:
确定模块,用于根据所述客户端发送的访问请求,从至少一个第二名称节点中确定与所述访问请求对应的目标名称节点;
发送模块,用于向所述目标名称节点发送所述访问请求;
响应模块,用于根据所述访问请求进行响应处理,并将处理结果反馈给所述第一名称节点;
所述发送模块,还用于根据所述处理结果向所述客户端发送访问响应。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
检测模块,用于检测各所述至少一个第二名称节点的内存使用信息;
查找模块,用于在所述检测模块检测到所述至少一个第二名称节点中的第三名称节点的内存使用信息满足第一预设条件时,从所述至少一个第二名称节点中查找到目前状态为不正在使用的第四名称节点;
所述响应模块,还用于确定所述第四名称节点的内存使用信息满足第二预设条件时,将所述第三名称节点存储的部分元数据迁移至所述第四名称节点中,以使所述第三名称节点的内存使用信息满足第三预设条件。
8.根据权利要求7所述的装置,其特征在于,所述检测模块,具体用于:
查询节点管理表,获取各所述至少一个第二名称节点的内存使用信息;其中,所述节点管理表,用于记录各所述至少一个第二名称节点的目前状态及内存使用信息。
9.根据权利要求6所述的装置,其特征在于,所述确定模块,具体用于:
对所述访问请求进行解析,提取出操作类型和元数据信息;根据所述元数据信息,分别查询各所述至少一个第二名称节点,从各所述至少一个第二名称节点中确定存储所述元数据信息的目标名称节点。
10.根据权利要求9所述的装置,其特征在于,所述响应模块,具体用于:
所述访问请求为读操作时,使用所述元数据信息查询所述目标名称节点的元数据管理表,得到所述元数据信息在所述目标名称节点中的存储信息;基于所述元数据信息在所述目标名称节点中的存储信息,读取所述元数据信息;
或者,
所述访问请求为写操作时,将所述元数据信息写入内存系统中,并更新所述元数据信息在所述元数据管理表中的存储信息;
其中,所述目标名称节点的元数据管理表,用于记录所述目标名称节点所存储的元数据信息分别在所述目标名称节点中的存储信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610315583.6A CN107368490A (zh) | 2016-05-12 | 2016-05-12 | 数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610315583.6A CN107368490A (zh) | 2016-05-12 | 2016-05-12 | 数据处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107368490A true CN107368490A (zh) | 2017-11-21 |
Family
ID=60304094
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610315583.6A Pending CN107368490A (zh) | 2016-05-12 | 2016-05-12 | 数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107368490A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108280449A (zh) * | 2018-02-06 | 2018-07-13 | 国网山西省电力公司电力科学研究院 | 基于多光谱传感器组的电力设备影像采集方法 |
CN109889561A (zh) * | 2017-12-25 | 2019-06-14 | 新华三大数据技术有限公司 | 一种数据处理方法及装置 |
CN109992531A (zh) * | 2019-04-15 | 2019-07-09 | 成都四方伟业软件股份有限公司 | 数据存储方法及装置 |
CN110222109A (zh) * | 2019-05-29 | 2019-09-10 | 邓子航 | 基于分布式账本技术的节点拼接系统、方法及区块链节点 |
CN110708375A (zh) * | 2019-09-30 | 2020-01-17 | 恩亿科(北京)数据科技有限公司 | 一种数据处理方法、装置及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999519A (zh) * | 2011-09-15 | 2013-03-27 | 上海盛付通电子商务有限公司 | 一种数据库的读写方法及系统 |
CN103544261A (zh) * | 2013-10-16 | 2014-01-29 | 国家计算机网络与信息安全管理中心 | 一种海量结构化日志数据全局索引管理方法及装置 |
CN103647669A (zh) * | 2013-12-16 | 2014-03-19 | 上海证券交易所 | 一种保证分布式数据处理一致性的系统及方法 |
US8811344B1 (en) * | 2012-01-20 | 2014-08-19 | Wichorus, Inc. | Methods and apparatus for assigning same sequence number to multiple GTP messages |
CN104050249A (zh) * | 2011-12-31 | 2014-09-17 | 北京奇虎科技有限公司 | 分布式查询引擎系统和方法及元数据服务器 |
CN104820717A (zh) * | 2015-05-22 | 2015-08-05 | 国网智能电网研究院 | 一种海量小文件存储及管理方法和系统 |
-
2016
- 2016-05-12 CN CN201610315583.6A patent/CN107368490A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999519A (zh) * | 2011-09-15 | 2013-03-27 | 上海盛付通电子商务有限公司 | 一种数据库的读写方法及系统 |
CN104050249A (zh) * | 2011-12-31 | 2014-09-17 | 北京奇虎科技有限公司 | 分布式查询引擎系统和方法及元数据服务器 |
US8811344B1 (en) * | 2012-01-20 | 2014-08-19 | Wichorus, Inc. | Methods and apparatus for assigning same sequence number to multiple GTP messages |
CN103544261A (zh) * | 2013-10-16 | 2014-01-29 | 国家计算机网络与信息安全管理中心 | 一种海量结构化日志数据全局索引管理方法及装置 |
CN103647669A (zh) * | 2013-12-16 | 2014-03-19 | 上海证券交易所 | 一种保证分布式数据处理一致性的系统及方法 |
CN104820717A (zh) * | 2015-05-22 | 2015-08-05 | 国网智能电网研究院 | 一种海量小文件存储及管理方法和系统 |
Non-Patent Citations (1)
Title |
---|
童维勤等: "《数据密集型计算和模型》", 31 January 2015 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109889561A (zh) * | 2017-12-25 | 2019-06-14 | 新华三大数据技术有限公司 | 一种数据处理方法及装置 |
CN108280449A (zh) * | 2018-02-06 | 2018-07-13 | 国网山西省电力公司电力科学研究院 | 基于多光谱传感器组的电力设备影像采集方法 |
CN109992531A (zh) * | 2019-04-15 | 2019-07-09 | 成都四方伟业软件股份有限公司 | 数据存储方法及装置 |
CN110222109A (zh) * | 2019-05-29 | 2019-09-10 | 邓子航 | 基于分布式账本技术的节点拼接系统、方法及区块链节点 |
CN110708375A (zh) * | 2019-09-30 | 2020-01-17 | 恩亿科(北京)数据科技有限公司 | 一种数据处理方法、装置及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Dobbelaere et al. | Kafka versus RabbitMQ: A comparative study of two industry reference publish/subscribe implementations: Industry Paper | |
US8161244B2 (en) | Multiple cache directories | |
CN107368490A (zh) | 数据处理方法及装置 | |
US8688708B2 (en) | Storing and retrieving objects on a computer network in a distributed database | |
US20100146003A1 (en) | Method and system for building a B-tree | |
US9477772B2 (en) | Storing and retrieving objects on a computer network in a distributed database | |
CN107800808A (zh) | 一种基于Hadoop架构的数据存储系统 | |
CN103795811A (zh) | 一种基于元数据保存存储信息及统计管理数据的方法 | |
KR20180077839A (ko) | 대용량 비정형 데이터를 처리하는 rest api 서비스 제공 방법 | |
US8880504B2 (en) | Tag management device, system and recording medium | |
CN103617276A (zh) | 一种分布式层次化的rdf数据的存储方法 | |
CN108009270A (zh) | 一种基于分布式内存计算的文本检索方法 | |
CN109117426A (zh) | 分布式数据库查询方法、装置、设备及存储介质 | |
CN111125248A (zh) | 一种大数据存储解析查询系统 | |
CN110781430B (zh) | 互联网新型虚拟数据中心系统及其构造方法 | |
CN109800208B (zh) | 网络溯源系统及其数据处理方法、计算机存储介质 | |
CN112035428A (zh) | 分布式存储系统、方法、装置、电子设备和存储介质 | |
US10135926B2 (en) | Shuffle embedded distributed storage system supporting virtual merge and method thereof | |
KR102049420B1 (ko) | 분산 데이터베이스에서의 복제본이 존재하는 데이터에 대한 질의 병렬화 방법 | |
KR100912129B1 (ko) | 객체 파일 시스템을 이용한 비정형 데이터 관리 방법 및장치 | |
US7979393B2 (en) | Multiphase topology-wide code modifications for peer-to-peer systems | |
CN109634914A (zh) | 一种对讲语音小文件整存散分和分叉检索的优化方法 | |
CN103455641A (zh) | 交叉多次检索的系统和方法 | |
CN112241243B (zh) | 一种主动对象存储系统的实现方法 | |
US11853298B2 (en) | Data storage and data retrieval methods and devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for 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: 20171121 |