[发明专利]用于处理HDFS中的文件存储的方法和系统在审
申请号: | 201410302839.0 | 申请日: | 2014-06-27 |
公开(公告)号: | CN105205082A | 公开(公告)日: | 2015-12-30 |
发明(设计)人: | 庄威;刘亮;曲俊媚;尹文君;戈弋 | 申请(专利权)人: | 国际商业机器公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京市中咨律师事务所 11247 | 代理人: | 于静;张亚非 |
地址: | 美国*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 处理 hdfs 中的 文件 存储 方法 系统 | ||
技术领域
本发明涉及文件存储,更具体地,涉及用于处理HDFS中的文件存储的方法和系统。
背景技术
Hadoop分布式文件系统(HDFS,HadoopDistributedFileSystem)是目前使用极为广泛的分布式文件系统。HDFS有着高容错性(fault-tolerant)的特点,并且设计用来部署在低廉硬件上;同时,它能支持高吞吐量,适合大规模数据集应用。
一个HDFS集群由一个名字节点(NameNode)和一定数目的数据节点(DataNode)组成。名字节点是一个中心服务器,负责管理文件系统的命名空间(NameSpace)以及客户端对文件的访问。集群中的数据节点一般是一个节点一个机器,负责管理它所在节点上的存储。
在HDFS内部,将一个文件分割成一个或多个块,这些块被存储在一组数据节点中。名字节点用来操作文件命名空间的文件或目录操作,如打开、关闭、重命名等,同时确定块与数据节点的映射。数据节点则负责来自文件系统客户的读写请求,执行块的创建、删除、来自名字节点的块复制指令等。
在HDFS中,任何块、文件或者目录在内存中均以对象的形式存储,每个对象约占150字节,如果有10,000,000个小文件,每个文件占用一个块,则名字节点大约需要2G空间。如果存储1亿个文件,则名字节点需要20G空间。这样,名字节点的内存容量会严重制约集群的扩展。
其次,HDFS最初是为流式访问大文件开发的。处理大量小文件速度远远小于处理同等大小的大文件的速度。如果访问大量小文件,需要不断地从一个数据节点跳到另一个数据节点,访问大量小文件的速度远远小于访问几个大文件,严重影响性能。并且,任务的启动将耗费大量时间,甚至大部分时间都耗费在启动任务和释放任务上。
发明内容
针对上述问题,希望提供一种能够增强HDFS对小文件的处理能力的解决方案。
根据本发明的一个方面,提供了一种用于处理文件存储的方法,包括:接收一个文件存储请求;确定所请求存储的文件的文件大小;响应于确定该文件为小文件,将所述文件存储请求发送给HBase,以便将所述文件存储到HBase中;响应于确定该文件为大文件,将所述文件存储请求发送给HDFS,以便将所述文件存储到HDFS中,并将与所述文件相关联的信息保存在一个记录中。
根据本发明的另一个方面,提供了一种用于处理文件存储的系统,包括:请求接收模块,被配置为接收一个文件存储请求;以及,管理模块,被配置为确定所请求存储的文件的文件大小,所述管理模块进一步被配置为:响应于确定该文件为小文件,将所述文件存储请求发送给HBase,以便将所述文件存储到HBase中;以及,响应于确定该文件为大文件,将所述文件存储请求发送给HDFS,以便将所述文件存储到HDFS中,并将与所述文件相关联的信息保存在一个记录中。
通过本发明的实施例的方法和系统,可以有效地增强HDFS对小文件的处理能力。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。
图2显示了根据本发明的一个实施例的用于处理文件存储的方法的流程图。
图3显示了根据本发明的一个实施例的对于按照图2所示的方法存储的文件进行读取的过程的流程图。
图4显示了根据本发明的一个实施例的HBase的结构的示意图。
图5显示了根据本发明的一个实施例的用于处理文件存储的系统的方框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410302839.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种挖掘时序数据故障模式的系统及方法
- 下一篇:文件增量升级方法及系统