一种Hadoop分布式文件系统及其管理方法

文档序号:8299032阅读:351来源:国知局
一种Hadoop分布式文件系统及其管理方法
【技术领域】
[0001]本申请涉及Hadoop 分布式文件系统(HDFS,Hadoop Distributed File System),更具体地,涉及一种跨机房的Hadoop分布式文件系统及相应的管理方法。
【背景技术】
[0002]Hadoop是Internet上对搜索关键字进行内容分类的工具。Hadoop由ApacheSoftware Foundat1n公司于2005年秋天作为Lucene的子项目Nutch的一部分正式引入。Hadoop分布式文件系统被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统。HDFS是一个高度容错性(fault-tolerant)的系统,适合部署在廉价(low-cost)的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集(large data set)上的应用。
[0003]HDFS用于存储超大的文件,文件内容被分解成多个块(block),每个block默认为64M。为了提供高可靠性,一个block的内容会被复制成多份,存储在不同的物理机器上。一个HDFS集群是由一个名字节点(NameNode)和多个数据节点(DataNodes)组成。NameNode是一个中心服务器,负责管理文件系统的名字空间(namespace)以及客户端对文件的访问,是所有HDFS元数据的仲裁者和管理者。DataNode用于存储块副本,并提供对块副本的读取等操作。
[0004]HDFS会创建一个如图1所示的网络拓扑结构,根据拓扑结构来选择存放副本的DataNode。图中,根节点I代表整个HDFS集群,第一层节点Rl?R4代表机架,叶子节点Hl?H12代表DataNode。随着HDFS集群规模的不断扩大,一个机房内物理机器的数量无法满足集群规模的需要,此时需要把一个文件的块副本存储在多个机房内。但目前HDFS创建的网络拓扑结构无法获得任何机房信息,不能取得令人满意的性能。
[0005]申请内容
[0006]本申请要解决的技术问题是提供一种Hadoop分布式文件系统及其管理方法,能够基于机房信息有效管理文件,提高系统性能。
[0007]为了解决上述问题,本申请提供了一种Hadoop分布式文件系统跨机房的管理方法,包括:
[0008]Hadoop分布式文件系统创建树形网络拓扑结构,在代表集群的根节点和代表机架的第二层节点之间设置代表机房的第一层节点;
[0009]创建一跨机房文件时,指定多个机房来存放该文件的块副本,并为其中的每一机房配置存放的副本数;
[0010]在所述多个机房存放所述块副本时,对其中的每一机房,按照为该机房配置的所述副本数,选择相同数目的数据节点存放所述块副本。
[0011 ] 较佳地,上述方法还包括:
[0012]对所述跨机房文件的块副本进行维护时,先确定存放有所述块副本的所有机房和其中每一机房的实际存放数;对每一机房,如实际存放数不等于为该机房配置的所述副本数,则在该机房内对所述块副本进行复制或删除以使实际存放数等于配置的所述副本数。
[0013]较佳地,
[0014]指定多个机房来存放该文件的块副本时,优先指定用户所在的机房;
[0015]对所述块副本进行复制时,优先将同一个机房内存放有所述块副本的数据节点作为源。
[0016]较佳地,上述方法还包括:
[0017]接收到用户读取块副本的指令,选择读取的所述块副本时,优先选择用户所在数据节点存放的所述块副本,其次选择用户所在机架存放的所述块副本,再次选择用户所在机房存放的所述块副本,最后选择其他机房存放的所述块副本。
[0018]较佳地,上述方法还包括:
[0019]使用平衡工具平衡Hadoop分布式文件系统集群数据节点的磁盘利用率时,只在一个机房内的各数据节点之间进行平衡。
[0020]较佳地,
[0021]所述指定多个机房来存放该文件的块副本,包括:
[0022]配置该文件的文件路径与多个机房的对应关系,使用所述文件路径对应的多个机房存放该文件的块副本。
[0023]相应地,本申请提供的跨机房的Hadoop分布式文件系统,包括:
[0024]拓扑管理模块,用于创建Hadoop分布式文件系统HDFS的树形网络拓扑结构,在代表集群的根节点和代表机架的第二层节点之间增加代表机房的第一层节点;
[0025]副本配置模块,用于在创建跨机房文件时,指定多个机房来存放该文件的块副本,并为其中的每一机房配置存放的副本数;
[0026]副本存放模块,用于在多个机房存放跨机房文件的副本块时,对其中的每一机房,按照为该机房配置的副本数,选择相同数目的数据节点存放所述块副本。
[0027]较佳地,上述系统还包括:
[0028]副本维护模块,用于对所述跨机房文件的块副本进行维护时,先确定存放有所述块副本的所有机房和其中每一机房的实际存放数;对每一机房,如实际存放数不等于为该机房配置的所述副本数,则在该机房内对所述块副本进行复制或删除以使实际存放数等于配置的所述副本数。
[0029]较佳地,
[0030]所述副本配置模块指定多个机房来存放该文件的块副本时,优先指定用户所在的机房;
[0031]所述副本维护模块对所述块副本进行复制时,优先将同一个机房内存放有所述块副本的数据节点作为源。
[0032]较佳地,上述系统还包括:
[0033]数据读取模块,用于在接收到用户读取块副本的指令,对块副本进行读取时,优先选择用户所在数据节点的块副本,其次选择用户所在机架的块副本,再次选择用户所在机房的块副本,最后选拔其他机房的块副本。
[0034]较佳地,上述系统还包括:
[0035]性能优化模块,用于在使用平衡工具平衡Hadoop分布式文件系统集群的数据节点的磁盘利用率时,只在一个机房内的各数据节点之间进行平衡。
[0036]较佳地,
[0037]所述副本配置模块指定多个机房来存放该文件的块副本,包括:配置该文件的文件路径对应的多个机房,使用所述文件路径对应的多个机房存放该文件的块副本。
[0038]采用上述Hadoop分布式文件系统及其管理方法,能够识别机房信息,在进行块副本存放、读取、维护等操作时,可根据机房的信息采用合理的策略,节约跨机房的带宽资源,提闻系统性能。
【附图说明】
[0039]图1是现有HDFS网络拓扑结构图;
[0040]图2是本申请实施例一 HDFS跨机房的管理方法的流程图;
[0041]图3是本申请实施例一包含机房信息的HDFS网络拓扑结构图;
[0042]图4是本申请实施例一 Hadoop分布式文件系统的模块图;
[0043]图5是本申请实施例二对跨机房文件的块副本进行维护的流程图。
【具体实施方式】
[0044]为使本申请的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
[0045]在本申请一个典型的配置中,HDFS系统的各个节点包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
[0046]内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。
[0047]计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1