[发明专利]Hadoop分布式文件系统针对日志型小文件的存储和处理方法有效
| 申请号: | 201510137574.8 | 申请日: | 2015-03-26 |
| 公开(公告)号: | CN104731921B | 公开(公告)日: | 2018-03-30 |
| 发明(设计)人: | 徐锐;刘斌;台宪青 | 申请(专利权)人: | 江苏物联网研究发展中心;北京科电高技术公司;中国科学院国有资产经营有限责任公司 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30 |
| 代理公司: | 无锡市大为专利商标事务所(普通合伙)32104 | 代理人: | 曹祖良,韩凤 |
| 地址: | 214135 江苏省无锡市新*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | hadoop 分布式 文件系统 针对 日志 文件 存储 处理 方法 | ||
技术领域
本发明涉及计算机HDFS分布式文件系统领域,具体涉及一种HDFS针对日志型小文件存储和处理方法。
背景技术
HDFS是Hadoop Distributed File System的简称,是一个分布式文件存储系统。
随着互联网的应用渗透到人们生活的方方面面,越来越多的设备被加入到互联网中。这些设备时时刻刻都在生产着数据,我们需要处理的数据的量和种类越来越多。Hadoop下的HDFS作为GFS的开源实现,对大文件处理相当出色,但是处理小文件的效率十分低下。具体体现在大量小文件占用NameNode内存资源及DataNode磁盘利用率低。
业界已经尝试了一些HDFS针对小文件的优化方法。但是这些方法都偏重于存储,提供的接口对Hadoop计算框架MapReduce并不透明,使得针对小文件的分析处理变得复杂了。既能高效的存储小文件又能保持与MapReduce框架兼容是一项极具意义且富有挑战的工作。
所谓日志型小文件,是指由数据源(可以是物理的采集设备也可以是数据源抓取、生成程序)产生的,与时序相关的一系列带有相似结构且一般具有相似含义的小型数据块(小文件)。
发明内容
本发明的目的是克服现有技术的不足,提供一种HDFS针对日志型小文件的存储和处理方法,将文件按物理位置就近合并,同时使用Copy-On-Write机制优化小文件的读写。该方法能够有效解决HDFS处理日志型小文件的效率低下,同时提供的存储接口与MapReduce框架兼容。
本发明所采用的技术方案为:HDFS包括一个Hadoop集群,集群中包含一个名字节点NameNode和多个数据节点DataNode,多个客户端通过客户端库访问Hadoop集群存储的文件,本发明将日志型小文件按照物理路径就近合并,客户端读写日志型小文件时先从名字节点NameNode读取合并文件和合并文件索引的元数据Metadata信息,然后根据合并文件索引从合并文件中读写各个日志型小文件数据;客户端读写非日志型小文件时流程保持不变(保持原生HDFS的处理方式)。
名字节点NameNode管理所有HDFS文件的元数据Metadata,包括普通HDFS文件(即,非所述日志型小文件)以及合并文件的元数据Metadata,日志型小文件对名字节点NameNode是透明的,合并文件对客户端程序是透明的。客户端程序库提供与常规HDFS API一致的接口供客户端程序读写日志型小文件。
日志型小文件的合并是按物理路径就近合并的,具体来说,同一目录下(不包含子目录)的日志型小文件被合并为一个文件,称之为合并文件MergeFile。日志型小文件的元数据Metadata被顺序存入一个文件,称之为合并文件索引MergeIndex。合并文件MergeFile与合并文件索引MergeIndex位于原HDFS目录下,采用保留的文件名命名;日志型小文件被合并之后其对应的HDFS文件对象及元数据Metadata结构将从HDFS中删除。MergeFile支持追加、修改、删除操作,追加、修改、删除的原子操作单位都是日志型小文件;MergeFile修改过后,MergeIndex也做出对应改变,文件的追加、修改、删除均通过向合并文件索引中追加文件项记录完成。
客户端读写特定路径的文件时,先尝试从名字节点NameNode读取文件的元数据Metadata信息,如果读取成功则说明该文件是普通HDFS文件,按照HDFS原生处理流程处理,如果读取失败则说明该文件或者是一个日志型小文件或者不存在,此时需要获取该文件路径父目录下的MergeIndex,并搜索待读写的文件名。如果搜索成功则说明该路径指向一个被合并的文件,读写操作转入MergeFile的处理流程,如果搜索失败则说明该路径不存在。
客户端程序读取日志型小文件时客户端程序库返回一个与HDFS原生API兼容的文件输入流对象,任何针对该对象的读操作都将重定向至目标文件在MergeFile中的对应数据块。该文件流对象确保客户程序不会读取到目标文件数据之外的任何数据。
客户端程序写入日志型小文件时,若目标文件已存在于MergeFile,客户端库建立一份HDFS文件格式的目标文件数据的副本,返回一个与该副本文件关联的文件输出流对象,对目标文件的写操作重定向至副本文件。输出流对象被关闭时文件副本被合并回MergeFile。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江苏物联网研究发展中心;北京科电高技术公司;中国科学院国有资产经营有限责任公司,未经江苏物联网研究发展中心;北京科电高技术公司;中国科学院国有资产经营有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510137574.8/2.html,转载请声明来源钻瓜专利网。





