一种多数据中心的hdfs数据读写系统及方法

文档序号:7809248阅读:197来源:国知局
一种多数据中心的hdfs数据读写系统及方法
【专利摘要】本发明提供一种多数据中心的HDFS数据读写系统及方法,其特征在于,建立全局元数据服务器,用于存储和管理全局的元数据信息,并负责接收客户端数据读写访问请求,根据预设调度算法选择HDFS数据中心;客户端与所选数据中心进行交互进行数据读写操作,操作完成后,数据中心的元数据节点再将元数据的变化信息同步至全局元数据服务器。本发明所述系统及方法实现了多HDFS数据中心的数据读写访问,提供统一的数据访问接口,有效实现了多HDFS数据中心的资源和数据共享。
【专利说明】一种多数据中心的HDFS数据读写系统及方法

【技术领域】
[0001] 本发明涉及计算机云存储技术,特别涉及一种基于HDFS分布式文件体系的数据 读写系统及方法。

【背景技术】
[0002] 云存储是在云计算(Cloud Computing)概念上延伸和发展而来。云存储指通过集 群、网格技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用 软件集合起来协同工作,共同对外提供数据存储和业务访问功能,并保证数据的安全性等。
[0003] 目前以开源社区Apache的Hadoop项目分布式文件体系(Hadoop Distributed File System,简称HDFS)和并行编程框架Hadoop MapReduce为代表的技术逐渐成为海量 数据存储与分析处理的主流技术。其中,HDFS已逐渐成为使用最广泛的分布式文件系统之 一,是当前构建云存储的主流文件系统。
[0004] HDFS系统结构如图1所示,主要由元数据节点NameNode、数据节点DataNode和 客户端Client组成。其中,NameNode也称Master节点,负责管理HDFS的名称空间和数据 块映射信息,配置副本策略,并处理客户端请求。DataNode也称为Slave节点,存储实际的 数据,执行数据块的读写操作,并周期性地将存储的数据块信息汇报给NameNode。客户端 Client,用于切分数据文件,访问或通过命令行管理HDFS ;与NameNode交互,获取文件位置 信息;与DataNode交互,进行数据读和写操作。
[0005] 目前,HDFS被众多企业、高校、科研院所等广泛应用于数据中心,逐渐成为数据中 心的基础存储系统,承担着海量数据存储任务。随着越来越多分散在各处的独立中小型数 据中心的建立,各数据中心的存储资源和数据如何有效共享,如何给外层业务提供统一的 数据访问接口,成为制约云存储系统高速发展和广泛应用的核心难题之一。目前关于多数 据中心的HDFS数据读写技术未见有具体的公开报道,是当前亟待解决的技术问题。


【发明内容】

[0006] 本发明的目的是提供一种可为数据的读写提供统一的访问接口,实现多数据中心 信息和资源有效共享的HDFS数据读写系统和方法。
[0007] 为达到以上目的,发明是采取如下技术方案予以实现的:
[0008] -种多数据中心的HDFS数据读写系统,其特征在于,包括一个全局元数据服务 器、η个数据中心、一个客户端,各数据中心均有一个元数据节点和多个数据节点;全局元 数据服务器与客户端和各数据中心元数据节点之间采用广域网链接,各数据中心的元数 据节点与数据节点之间由局域网链接;全局元数据服务器用于存储和管理全局的元数据 信息,负责为各数据中心分配元数据命名空间;各数据中心的元数据节点均包含一个GMS plugin模块,负责向全局元数据服务器注册并定时汇报数据中心资源使用状态和元数据信 息;全局元数据服务器负责接收客户端HDFS数据读写访问请求,并根据预设调度算法选择 满足要求的数据中心;客户端访问所选数据中心的元数据节点,由该元数据节点进行HDFS 数据读写的调度,客户端在HDFS数据读写完成后,数据中心的元数据节点再将元数据的变 化信息同步至全局元数据服务器。
[0009] -种多数据中心的HDFS数据读写方法,其特征在于,包括读和写两大步骤:
[0010] 第一步,HDFS数据读,包括:
[0011] (1)建立全局元数据服务器,用于存储和管理全局的元数据信息;全局元数据服 务器为各数据中心分配命名空间,各数据中心向全局元数据服务器汇报元数据信息;
[0012] (2)全局元数据服务器接收客户端读数据请求,按预设算法选择满足读取要求的 数据中心,返回所选数据中心的元数据节点信息;
[0013] (3)客户端访问数据中心的元数据节点,元数据节点按照预设调度算法把数据块 与数据节点信息返回给客户端;
[0014] (4)客户端与数据节点进行交互,读取数据,读取完成后通知元数据节点,读数据 操作完成;
[0015] 第二步,HDFS数据写,包括:
[0016] (1)同HDFS数据读的步骤(1);
[0017] (2)全局元数据服务器接收客户端读数据请求,按预设算法选择满足写入要求的 数据中心,返回所选数据中心的元数据节点信息;
[0018] (3)客户端访问所选HDFS数据中心的元数据节点,元数据节点创建元数据信息, 并按照预设算法分配数据节点,并将数据节点信息返回给客户端;
[0019] (4)客户端与数据节点进行交互,进行写数据操作,写入完成后通知元数据节点; 客户端写入数据时采用分块写入机制,数据块副本拷贝由数据节点自动完成,所有数据块 均写入成功后通知元数据节点写入完成;
[0020] (5)在写入过程完成后,数据中心的元数据节点将元数据的变化信息同步至全局 元数据服务器。
[0021] 上述方法中,所述客户端读数据请求包括文件路径、数据块索引、缓冲区大小之任 何一特征;所述客户端写数据请求包括新创建文件路径、写入数据大小、访问权限之任何一 特征。
[0022] 所述全局元数据服务器预设的数据中心选择算法根据读或写数据请求和各数据 中心的数据分布、系统性能、负载情况之任何一特征,采用数据分布优先、性能优先策略选 择数据中心。
[0023] 所述元数据节点预设调度算法包括根据数据大小、分块数量、数据块与客户端的 距离、数据块分布之任何一特征,按距离优先、分布公平策略进行选择。
[0024] 本发明的多数据中心的HDFS数据读写系统采用两层逻辑分离调度架构。全局逻 辑层有全局元数据服务器负责各数据中心命名空间的分配、全局元数据的查询、读写数据 时的数据中心的选择,是将各个独立数据中心集成统一的核心。业务逻辑层通过对HDFS的 元数据节点进行扩展开发,增加 GMS plugin模块,并与全局元数据服务器链接作为从属模 块,从而构成可支持元数据同步和共享的多HDFS数据中心资源共享架构。本发明在保留原 有HDFS数据中心的元数据节点数据管理等功能的同时实现元数据的全局共享。这种方式 在保持原系统高效稳定的同时降低系统复杂度,能够快速有效实现多HDFS数据中心的数 据读写访问。

【专利附图】

【附图说明】
[0025] 图1为HDFS系统架构图。
[0026] 图2为本发明多数据中心的HDFS数据读写系统架构图。
[0027] 图3为本发明多数据中心的HDFS读数据流程图。
[0028] 图4为本发明多数据中心的HDFS写数据流程图。

【具体实施方式】
[0029] 为了更清楚地说明本发明的技术方案,下面结合附图和具体实施例对本发明进行 详细描述。
[0030] 如图2所示,一种多数据中心的HDFS数据读写系统,包括一个全局元数据服务器 (Global Metadata Server,GMS)、编号为01到N的η个数据中心、一个客户端Client,各 数据中心均有一个元数据节点(NameNode)和多个数据节点(DataNode),其中全局元数据 服务器与客户端之间采用广域网链接,全局元数据服务器和各数据中心的元数据节点之间 采用广域网链接,各数据中心的元数据节点与数据节点之间由局域网链接。全局元数据服 务器用于存储和管理全局的元数据信息,负责为各数据中心分配元数据命名空间;各数据 中心的元数据节点中均包含一个GMS plugin(全局元数据服务器中间件)模块,并与全局 元数据服务器链接,向全局元数据服务器注册并定时汇报数据中心资源使用状态和元数据 信息。
[0031] 全局元数据服务器负责接收客户端HDFS数据读写访问请求,并根据预设调度算 法选择满足要求的数据中心;客户端访问上述所选数据中心的元数据节点,由该元数据节 点进行HDFS数据读写的调度,在客户端HDFS数据读写完成后,数据中心的元数据节点再将 元数据的变化信息同步至全局元数据服务器。
[0032] 全局元数据服务器用于存储和管理全局的元数据信息;负责为各数据中心分配元 数据命名空间;负责接收客户端HDFS数据读写访问请求,并根据预设调度算法选择满足要 求的数据中心对应的元数据节点;负责接收各数据中心的元数据节点的元数据更新。
[0033] 全局元数据服务器主要由访问接口、GMS服务程序、元数据管理三个模板组成;访 问接口是客户端与全局元数据服务器的交互接口模块,负责处理客户端对HDFS数据的读、 写、查询等请求;GMS服务程序是全局元数据服务器的服务守护模块,负责全局元数据服务 器的运行监控、模块重启,保证全局元数据服务器的稳定运行;元数据管理是各数据中心的 元数据节点与全局元数据服务器的交互接口模块,负责管理各数据中心的元数据节点,接 收各数据中心的元数据同步更新请求并存储全局元数据信息,处理访问接口模块接收到的 数据读写请求,并根据全局元数据信息和各数据中心状态选择合适的数据中心。
[0034] GMS plugin模块,是一个用于与全局元数据服务器进行通信的中间件,负责向全 局元数据服务器注册,实时向全局元数据服务器同步本数据中心状态信息和元数据信息。
[0035] 各数据中心的元数据节点(含GMS plugin模块)用于管理本数据中心的目录树 和文件元数据信息,在元数据节点的元数据发生变化时按预置算法通过GMS plugin模块实 时同步信息至全局元数据服务器;元数据节点负责本数据中心的数据节点的管理、客户端 HDFS数据读写数据请求的处理;元数据节点可根据待访问数据参数和预设调度策略,从其 管理的数据中心中选择数据节点。
[0036] 各数据中心的数据节点用于管理节点上的存储、块列表、数据的读写;数据节点在 元数据节点的调度下进行块的创建、删除和复制;数据节点按预置算法定时地将数据块信 息汇报给元数据节点。
[0037] Client用于与系统交互,客户端进行写入数据的分块,并分别与全局元数据服务 器和数据中心的元数据节点、数据节点交互,完成HDFS数据读写操作。
[0038] 图2多数据中心的HDFS数据读写系统个数η可选1至200个。
[0039] 通过图2系统,本发明还提供了多数据中心的HDFS数据读方法,下面通过图3进 行描述:
[0040] S301建立全局元数据服务器,用于存储和管理全局的元数据信息;全局元数据服 务器为各HDFS数据中心分配命名空间,各数据中心向全局元数据服务器汇报元数据信息;
[0041] S302全局元数据服务器接收客户端HDFS读数据请求,按预设算法选择满足读取 要求的HDFS数据中心,返回所选数据中心的元数据节点信息;
[0042] 客户端读数据请求包括文件路径、数据块索引、缓冲区大小等信息;
[0043] 预设调度算法根据读HDFS数据请求和各数据中心的数据分布、系统性能、负载情 况等信息,采用数据分布优先、性能优先等策略选择数据中心;
[0044] S303客户端访问HDFS数据中心的元数据节点,元数据节点按照预设调度算法把 数据块与数据节点信息返回给客户端;
[0045] 元数据节点按照预设调度算法包括根据数据块与客户端的距离、分块数量、数据 块分布等信息给出推荐读取顺序,按距离优先、分布公平策略进行选择,也可由本领域技术 人员根据需要开发定制;
[0046] S304客户端与数据节点进行交互,读取数据,读取完成后通知元数据节点,读数据 操作完成。
[0047] 通过图2系统,本发明提供了多数据中心的HDFS数据写方法,下面通过图4进行 描述:
[0048] S401建立全局元数据服务器,用于存储和管理全局的元数据信息;全局元数据服 务器为各数据中心分配命名空间,各数据中心向全局元数据服务器汇报元数据信息;
[0049] S402全局元数据服务器接收客户端读数据请求,按预设算法选择满足写入要求的 HDFS数据中心,返回所选HDFS数据中心的元数据节点信息;
[0050] 客户端写数据请求包括新创建文件路径、写入数据大小、访问权限等信息;
[0051] 全局元数据服务器预设调度算法根据请求信息和各数据中心的数据分布、系统性 能、负载情况等信息选择具体的数据中心,采用数据分布优先、性能优先等策略进行调度, 调度算法可由本领域技术人员根据需要灵活定制;
[0052] S403客户端访问所选HDFS数据中心的元数据节点,元数据节点创建元数据信息, 并按照预设调度算法分配数据节点,并将数据节点信息返回给客户端;
[0053] 元数据节点预设调度算法包括根据数据大小、分块数量、数据块分布等信息,按距 离优先、分布公平等策略进行调度,也可由本领域技术人员根据需要开发定制;
[0054] S404客户端与数据节点进行交互,进行写数据操作,写入完成后通知元数据节点; 客户端写入数据时采用分块写入机制,数据块副本拷贝由数据节点自动完成,所有数据块 均写入成功后通知元数据节点写入完成;
[0055] S405在写入过程完成后,HDFS数据中心的元数据节点将元数据的变化信息同步 至全局元数据服务器。
[0056] 综上所述,本发明解决了随着分散各处的独立中小型数据中心越来越多,而难以 实现各数据中心的存储资源和数据有效共享,以及如何给外层业务提供统一的数据访问接 口等问题,实现了统一管理、统一接口,开放稳定的针对多数据中心的HDFS数据读写架构 及方法。
【权利要求】
1. 一种多数据中心的HDFS数据读写系统,其特征在于,包括一个全局元数据服务器、η 个数据中心、一个客户端,各数据中心均有一个元数据节点和多个数据节点;全局元数据服 务器与客户端和各数据中心元数据节点之间采用广域网链接,各数据中心的元数据节点与 数据节点之间由局域网链接;全局元数据服务器用于存储和管理全局的元数据信息,负责 为各数据中心分配元数据命名空间;各数据中心的元数据节点均包含一个GMS plugin模 块,负责向全局元数据服务器注册并定时汇报数据中心资源使用状态和元数据信息;全局 元数据服务器负责接收客户端HDFS数据读写访问请求,并根据预设调度算法选择满足要 求的数据中心;客户端访问所选数据中心的元数据节点,由该元数据节点进行HDFS数据读 写的调度,客户端在HDFS数据读写完成后,数据中心的元数据节点再将元数据的变化信息 同步至全局元数据服务器。
2. -种多数据中心的HDFS数据读写方法,其特征在于,包括读和写两大步骤: 第一步,HDFS数据读,包括: (1) 建立全局元数据服务器,用于存储和管理全局的元数据信息;全局元数据服务器 为各数据中心分配命名空间,各数据中心向全局元数据服务器汇报元数据信息; (2) 全局元数据服务器接收客户端读数据请求,按预设算法选择满足读取要求的数据 中心,返回所选数据中心的元数据节点信息; (3) 客户端访问数据中心的元数据节点,元数据节点按照预设调度算法把数据块与数 据节点信息返回给客户端; (4) 客户端与数据节点进行交互,读取数据,读取完成后通知元数据节点,读数据操作 完成; 第二步,HDFS数据写,包括: (1) 同HDFS数据读的步骤(1); (2) 全局元数据服务器接收客户端读数据请求,按预设算法选择满足写入要求的数据 中心,返回所选数据中心的元数据节点信息; (3) 客户端访问所选HDFS数据中心的元数据节点,元数据节点创建元数据信息,并按 照预设算法分配数据节点,并将数据节点信息返回给客户端; (4) 客户端与数据节点进行交互,进行写数据操作,写入完成后通知元数据节点;客户 端写入数据时采用分块写入机制,数据块副本拷贝由数据节点自动完成,所有数据块均写 入成功后通知元数据节点写入完成; (5) 在写入过程完成后,数据中心的元数据节点将元数据的变化信息同步至全局元数 据服务器。
3. 如权利要求2所述的多数据中心的HDFS数据读写方法,其特征在于,所述客户端读 数据请求包括文件路径、数据块索引、缓冲区大小之任何一特征;所述客户端写数据请求包 括新创建文件路径、写入数据大小、访问权限之任何一特征。
4. 如权利要求2所述的多数据中心的HDFS数据读写方法,其特征在于,所述全局元数 据服务器预设的数据中心选择算法根据读或写数据请求和各数据中心的数据分布、系统性 能、负载情况之任何一特征,采用数据分布优先、性能优先策略选择数据中心。
5. 如权利要求2所述的多数据中心的HDFS数据读写方法,其特征在于,所述元数据节 点预设调度算法包括根据数据大小、分块数量、数据块与客户端的距离、数据块分布之任何 一特征,按距离优先、分布公平策略进行选择。
【文档编号】H04L29/08GK104113597SQ201410344218
【公开日】2014年10月22日 申请日期:2014年7月18日 优先权日:2014年7月18日
【发明者】董博, 张汉宁, 郑庆华, 贺欢, 张未展 申请人:西安交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1