[发明专利]计算框架内自动合并文件的方法、系统、设备及介质在审
申请号: | 201910176617.1 | 申请日: | 2019-03-08 |
公开(公告)号: | CN109947712A | 公开(公告)日: | 2019-06-28 |
发明(设计)人: | 白冰 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | G06F16/16 | 分类号: | G06F16/16;G06F16/182 |
代理公司: | 上海弼兴律师事务所 31283 | 代理人: | 薛琦;罗朗 |
地址: | 100086 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 合并文件 对象目录 自动合并 对象文件 目标格式 目标目录 自动获取 小文件 文件处理 文件合并 自动判断 合并 存储 开发 | ||
本发明公开了一种计算框架内自动合并文件的方法、系统、设备及介质。其中,方法包括在计算框架内执行目标任务,目标任务包括目标目录、目标格式;自动获取目标任务的执行结果,执行结果包括对象目录,以及对象目录下的对象文件;判断对象目录下的对象文件是否是待合并文件;若是,则将待合并文件合并生成合并文件,合并文件以目标格式存储在目标目录下。本发明能够自动获取任务的执行结果,并根据执行结果来自动判断是否需要进行文件合并,以及如何进行合并,既将开发者从小文件处理中解放出来,又避免了开发者在小文件处理中出现的操作,实现了计算框架内小文件的自动合并。
技术领域
本发明涉及计算机技术领域,尤其涉及一种计算框架内自动合并文件的方法、系统、设备及介质。
背景技术
在HDFS(Hadoop Distributed File System,Hadoop分布式文件系统)中,小文件是指大小明显小于HDFS中块(block)的大小的文件。在批处理任务中,小文件是一个比较棘手的问题,大量小文件不仅会造成存储集群元数据压力巨大,也会造成处理这些文件的后续作业浪费内存、CPU、带宽等资源或者执行低效。
目前采取的用于合并小文件的方式(例如,Hadoop Archive、Sequence file、CombineFileInputFormat)在于,开发者单独执行一个作业,该作业将所有落盘的数据重新读入进来,再以指定数量的文件写回去,从而达到合并的目的。该种方式给应当专注于业务逻辑与程序自身优化的开发者带来额外的工作量。此外,由于该种方式对开发者的依赖,也存在误操作从而导致数据不可用或者误操作了其他数据的可能。
发明内容
本发明实施例要解决的技术问题是为了克服现有技术中小文件的合并需要开发者另行执行作业的缺陷,提供一种计算框架内自动合并文件的方法、系统、设备及介质。
本发明实施例是通过下述技术方案来解决上述技术问题:
一种计算框架内自动合并文件的方法,其特点在于,所述方法包括:
在计算框架内执行目标任务,所述目标任务包括目标目录、目标格式;
自动获取所述目标任务的执行结果,所述执行结果包括对象目录,以及所述对象目录下的对象文件;
判断所述对象目录下的对象文件是否是待合并文件;
若是,则将所述待合并文件合并生成合并文件,所述合并文件以所述目标格式存储在所述目标目录下。
较佳地,所述判断所述对象目录下的对象文件是否是待合并文件的步骤包括:
获取所述对象目录下的对象文件的总个数和总大小;
根据所述总个数和总大小计算所述对象目录下的对象文件的平均大小;
判断所述平均大小是否大于第一阈值;
若是,则所述对象文件不是待合并文件;
若否,则所述对象目录是待合并目录,所述待合并目录下的对象文件是待合并文件。
较佳地,所述将所述待合并文件合并生成合并文件的步骤包括:
预设第二阈值,所述第二阈值表征合并文件的大小的最大值;
根据所述第二阈值和所述平均大小计算所述合并文件包括的所述待合并文件的最大个数;
根据所述最大个数和所述总个数计算所述合并文件的个数。
较佳地,所述将所述待合并文件合并生成合并文件的合并文件的步骤包括:
将所述待合并文件合并生成合并文件,所述合并文件以所述目标格式存储在中间目录下,其中,所述中间目录不同于所述目标目录;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910176617.1/2.html,转载请声明来源钻瓜专利网。