[发明专利]一种面向SparkSql的HDFS小文件实时合并实现方法有效
申请号: | 201810142899.9 | 申请日: | 2018-02-11 |
公开(公告)号: | CN108256115B | 公开(公告)日: | 2022-02-25 |
发明(设计)人: | 马秉楠;吕雁飞;张鸿;何清林;惠榛 | 申请(专利权)人: | 国家计算机网络与信息安全管理中心 |
主分类号: | G06F16/182 | 分类号: | G06F16/182;G06F16/172;G06F16/14 |
代理公司: | 北京永创新实专利事务所 11121 | 代理人: | 祗志洁 |
地址: | 100029*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 面向 sparksql hdfs 文件 实时 合并 实现 方法 | ||
本发明提供了一种面向SparkSql的HDFS小文件实时合并的实现方法,属于大数据处理技术领域。定期筛选HDFS中待合并的小文件,对得到的待合并小文件,生成合并小文件的Spark任务,并提交至Yarn上执行;对完成小文件合并的结果信息放置于待替换列表中;结合Zookeeper保持SparkSql在使用合并后文件替换被合并文件时维持正常运行;根据SparkSql实时检索数据库表的情况,在Zookeeper中注册和注销相应数据库表的读状态;在文件替换时,通过网络在SparkSql中进行文件元数据缓存增量更新。本发明可以在保持SparkSql正常运行的情况下,实现实时合并HDFS小文件,有效的提高SparkSql的检索效率,在大数据处理领域具有很强的实用性和应用范围,具有很广泛的应用前景。
技术领域
本发明属于大数据处理领域,具体涉及一种面向SparkSql的HDFS(Hadoop分布式文件系统)小文件实时合并的实现方法。
背景技术
随着计算机技术的不断发展和信息化程度的不断提高,数据量迅速增长,面向海量数据存储及应用也随之蓬勃发展。大数据应用越来越广泛,如,在网络安全上,使用大数据技术分析网络攻击行为;在电子商务上,使用大数据技术分析用户购物喜好或最受青睐的商品。大数据技术在建设节约型社会,提高生成效率等方面起到了积极的推动作用。
Spark是专为大规模数据处理而设计的快速通用的计算引擎。在海量数据检索应用中,分布式检索框架SparkSql作为一种优秀的大数据检索方法被广泛的使用。Hive是基于Hadoop的一个数据仓库处理工具,使用类SQL的HiveQL语言实现数据查询,所有Hive的数据都存储在Hadoop兼容的文件系统(例如,Amazon S3、HDFS)中。SparkSql提供了同Hive的HiveQL接口,具有较高的效率及可用性。但是随着数据量的不断增加以及对文件加载延迟的更高要求,HDFS中过多的小文件降低了SparkSql的检索效率和并发处理任务的能力,这个问题直接的影响了业务应用。
使用SparkSql进行检索时,Spark Driver(驱动)会获取被检索文件的元数据并进行缓存,以此来生成Spark Task(任务)分发到集群的各个节点上执行。在实际的工程实践中,为了使加载的数据能够尽快地被SparkSql检索到,往往不会等待加载数据积累很多就进行新文件的生成,这种加载方法使得SparkSql检索的文件容量较小、文件数量过多。这造成的问题是显而易见的:首先,由于检索过程中SparkSql要将所有待检索的文件元数据在Spark Driver进程内存中进行缓存,此时检索文件过多就造成单个SparkSql检索任务占用的内存过大,受限于服务器的物理内存而无法进行过多的并发检索;其次由于文件较小,在进行相同规模数量的检索中会分布式读取更多的文件,在Spark Task调度和文件获取等步骤上有较大的时间开销,造成SparkSql的检索效率较低。
发明内容
为了解决上述SparkSql使用中出现的关键问题,本发明提供了一种面向SparkSql的HDFS小文件实时合并的实现方法,以减少SparkSql检索的目标文件的数量,从而降低SparkSql检索文件的资源开销和时间开销,提高SparkSql检索支持的任务并发数量,有效的提高了SparkSql框架的检索效率和可用性。
本发明提供的一种面向SparkSql的HDFS小文件实时合并的实现方法,包括:
(1)定期筛选HDFS中待合并的小文件,包括:将设置的文件合并策略预先存放在Hivemetastore中;从Hive metastore获取各个数据库表信息和文件合并策略;根据得到的数据库表信息在HDFS中遍历获取相应的文件元数据,根据文件合并策略对获取的文件元数据进行筛选,将符合合并策略的小文件筛选出,并缓存至内存中;
(2)对得到的待合并小文件,生成合并小文件的Spark任务,并提交至Yarn上执行;对完成小文件合并的结果信息放置于待替换列表中;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国家计算机网络与信息安全管理中心,未经国家计算机网络与信息安全管理中心许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810142899.9/2.html,转载请声明来源钻瓜专利网。