[发明专利]一种数据获取方法和分布式文件系统在审
申请号: | 201110248594.4 | 申请日: | 2011-08-26 |
公开(公告)号: | CN102955808A | 公开(公告)日: | 2013-03-06 |
发明(设计)人: | 史晓峰;蔡斌;张文郁;宫振飞;崔小丰;韩欣;肖桂菊;邱翔虎;崔晓春 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 广州三环专利代理有限公司 44202 | 代理人: | 郝传鑫;熊永强 |
地址: | 518057 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据 获取 方法 分布式 文件系统 | ||
技术领域
本发明涉及一种分布式数据处理领域,尤其涉及一种数据获取方法和分布式文件系统。
背景技术
Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)是一种适合运行在通用硬件(commodity hardware)上的分布式文件系统。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。对外部客户机而言,HDFS 就像一个传统的分级文件系统。可以创建、删除、移动或重命名文件,等等。HDFS的架构是基于一组特定的节点构建的,这些节点包括NameNode(仅一个),其在HDFS 内部提供元数据服务;DataNode,其为 HDFS 提供存储块。
其中,NameNode 是一个通常在HDFS 实例中的单独机器上运行的软件。它负责管理文件系统名称空间和控制外部客户机的访问。NameNode 决定是否将文件映射到 DataNode 上的复制块上。对于最常见的 3 个复制块,第一个复制块存储在同一机架的不同节点上,最后一个复制块存储在不同机架的某个节点上。 NameNode在一个文件中存储所有关于文件系统名称空间的信息。这个文件和一个包含所有事务的记录文件将存储在 NameNode 的本地文件系统上。
由于仅存在一个 NameNode,在基于C/S(客户/服务器)架构的设计中只有一台Namenode机器就造成了Namenode的单点问题,这成为了HDFS 的一个缺点。
发明内容
本发明实施例所要解决的技术问题在于,提供一种数据获取方法和分布式文件系统。可解决HDFS中的单点问题,提高HDFS集群任务的并发处理能力。
为了解决上述技术问题,本发明实施例提供了一种分布式文件系统中的数据获取方法,所述方法包括:
获取待访问文件的文件目录,并获取预定义的根节点的节点值;
根据所述根节点的节点值的散列值获取所述根节点的区块信息,所述区块中存储有文件,或/和文件夹中的文件列表及所述文件列表中的文件对应的节点值;
当所述根节点的节点值对应所述区块中的文件时,根据所述区块中存储的块列表和块列表位置信息获取数据文件;
当所述根节点的节点值对应所述区块中的文件夹时,根据所述文件目录从所述区块中存储的文件列表和所述文件列表中的文件对应的节点值中获取下一级节点的节点值,再根据所述下一级节点的节点值获取所述下一级节点的区块信息,直至最终获取数据文件。
其中,所述根据所述根节点的节点值的散列值获取所述根节点的区块信息包括:
根据所述根节点的节点值的散列值确定存储所述节点值对应的节点信息的服务器;
根据所述根节点的节点值在所述服务器中获取所述节点值对应的节点信息;
根据所述节点值对应的节点信息获取所述根节点的区块信息。
所述根节点或其他节点的区块信息中包括多个区块的信息。
所述方法还包括:在所述分布式系统中划分多个数据区域,节点值通过散列算法与所述数据区域对应;
所述根据所述根节点的节点值的散列值确定存储所述节点值对应的节点信息的服务器相应为,所述根据所述根节点的节点值的散列值确定存储所述节点值对应的节点信息的数据区域所在的服务器。
所述方法还包括:缓存所述数据文件的各级节点值。
相应的,本发明实施例还提供了一种分布式文件系统,包括:
目录获取单元,用于获取待访问文件的文件目录,并获取预定义的根节点的节点值;
区块获取单元,用于根据所述根节点的节点值的散列值获取所述根节点的区块信息,所述区块中存储有文件,或/和文件夹中的文件列表及所述文件列表中的文件对应的节点值;
文件获取单元,用于当所述根节点的节点值对应所述区块中的文件时,根据所述区块中存储的块列表和块列表位置信息获取数据文件;当所述根节点的节点值对应所述区块中的文件夹时,根据所述文件目录从所述区块中存储的文件列表和所述文件列表中的文件对应的节点值中获取下一级节点的节点值,再根据所述下一级节点的节点值获取所述下一级节点的区块信息,直至最终获取数据文件。
其中,所述区块获取单元包括:
服务器定位子单元,用于根据所述根节点的节点值的散列值确定存储所述节点值对应的节点信息的服务器;
节点信息获取子单元,用于根据所述根节点的节点值在所述服务器中获取所述节点值对应的节点信息;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110248594.4/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置