[发明专利]一种hive文件合并的方法和装置有效
申请号: | 202010725466.3 | 申请日: | 2020-07-24 |
公开(公告)号: | CN112035057B | 公开(公告)日: | 2022-06-21 |
发明(设计)人: | 梅纲;高东升;冯源;胡书能;陈琦 | 申请(专利权)人: | 武汉达梦数据库股份有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06;G06F16/17 |
代理公司: | 深圳市六加知识产权代理有限公司 44372 | 代理人: | 向彬 |
地址: | 430000 湖北省武汉市东湖新技术开*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 hive 文件 合并 方法 装置 | ||
本发明涉及数据仓库领域,特别是涉及一种hive文件合并的方法和装置。主要包括:获取一个hive表的元数据定义的目录下的所有文件作为需合并的文件;按照需合并的文件的总容量大小和预设的大文件最大容量估算合并文件时需要的桶的数量;根据估算所得的桶的数量建立相应数量的桶;将需合并的文件按照每个文件的容量从大到小依次放入空闲容量最大的桶中,直至所有文件都放入桶中;将放入每个桶内的文件分别合并为一个大文件。本发明可以合理分配待合并的小文件合并成一个大文件,过滤无意义的合并,同时减少额外产生的小文件数量,并且通过并行合并的方式提高合并效率。
【技术领域】
本发明涉及数据仓库领域,特别是涉及一种hive文件合并的方法和装置。
【背景技术】
Hive是基于Hadoop架构的一个数据仓库工具,实际生产环境中,每个 hive表下存在很多文件,并且可能存在大量的小文件。在Hadoop中,文件按照固定块大小进行存储,小于一个默认块大小的文件也占据一个块的存储空间,当小文件数量较多时,会占用较多额外的存储空间。另一方面,Hadoop处理大量小文件速度远远小于处理同等大小的大文件的速度,小文件较多时会严重影响处理性能。因此,需要将大量小文件合并为少量大文件进行处理。
目前,Hadoop架构下一般使用CombineFileInputFormat进行小文件合并。但是这种合并方法可能会进行一些不必要的合并,并且合并后可能产生更小的文件。另一方面,这种合并方法一次仅能合并一个hive分区表的一个分区内的文件,必须启动多个map reduce对分区表内各个分区的文件同时合并,导致合并效率较低。
鉴于此,如何克服该现有技术所存在的缺陷,解决现有hive小文件合并方法导致的可能产生不必要的合并,以及合并效率较低的问题,是本技术领域待解决的问题。
【发明内容】
针对现有技术的以上缺陷或改进需求,本发明解决了现有hive小文件合并时无法合理分配待合并的小文件,以及多个分区同时进行合并的效率问题。
本发明实施例采用如下技术方案:
第一方面,本发明提供了一种hive文件合并的方法,具体为:获取一个hive表的元数据定义的目录下的所有文件作为需合并的文件;按照需合并的文件的总容量大小和预设的大文件最大容量估算合并文件时需要的桶的数量;根据估算所得的桶的数量建立相应数量的桶;将需合并的文件按照每个文件的容量从大到小依次放入空闲容量最大的桶中,直至所有文件都放入桶中;将放入每个桶内的文件分别合并为一个大文件。
优选的,将需合并的文件按照每个文件的容量从大到小依次放入空闲容量最大的桶中,具体包括:将需合并的文件按照每个文件的容量从大到小排序,放入文件列表中;将桶按照空闲容量的大小从大到小排序,放入桶列表中;取出桶列表中的第一个桶,取出文件列表中的第一个文件,将取出的文件放入取出的桶中;计算取出的桶的空闲容量,根据空闲容量把取出的桶插入桶列表中合适的排序位置,保持桶列表中的桶按照空闲容量的大小从大到小排序。
优选的,根据空闲容量把取出的桶插入桶列表中合适的排序位置,具体包括:按照桶列表的顺序,将取出的桶的空闲容量依次和桶列表中每个桶的空闲容量比较;查找桶列表中最后一个空闲容量大于取出的桶的空闲容量的桶,将取出的桶插入查找到的桶之后。
优选的,估算合并文件时需要的桶的数量具体包括:获取需合并的文件的总容量大小;根据需合并的文件的总容量大小和预设的大文件最大容量估算合并后的大文件的数量,合并文件时需要的桶的数量与合并后的大文件的数量相同。
优选的,预设的大文件最大容量大于一个系统数据块的容量。
优选的,将放入每个桶内的文件分别合并为一个大文件,具体包括:以map reducejob方式提交桶列表中所有的桶到Hadoop下进行文件合并,每个reduce任务中进行至少一个桶内的文件的合并。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉达梦数据库股份有限公司,未经武汉达梦数据库股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010725466.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:白光干涉系统
- 下一篇:一种基于区块链的供应链管控方法、设备及介质