CN116644047A - 基于Spark的文件大小自适应处理方法和系统 - Google Patents

基于Spark的文件大小自适应处理方法和系统 Download PDF

Info

Publication number
CN116644047A
CN116644047A CN202211254340.8A CN202211254340A CN116644047A CN 116644047 A CN116644047 A CN 116644047A CN 202211254340 A CN202211254340 A CN 202211254340A CN 116644047 A CN116644047 A CN 116644047A
Authority
CN
China
Prior art keywords
output
input
file
files
history
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211254340.8A
Other languages
English (en)
Inventor
邹京辰
邓琛
丁家文
成文
赵子颖
黄毓铭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianyi Shilian Technology Co ltd
Original Assignee
Tianyi Digital Life Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tianyi Digital Life Technology Co Ltd filed Critical Tianyi Digital Life Technology Co Ltd
Priority to CN202211254340.8A priority Critical patent/CN116644047A/zh
Publication of CN116644047A publication Critical patent/CN116644047A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了基于Spark的文件大小自适应处理方法和系统,其中方法包括:对历史输入文件和历史输出文件的列表进行扫描,从而获取所述历史输入文件和所述历史输出文件的大小;基于所述历史输入文件和所述历史输出文件的大小来确定平均输入‑输出转化比;对当前输入文件的列表进行扫描,从而获取所述当前输入文件的大小;基于所述平均输入‑输出转化比、以及所述当前输入文件的大小,来确定当前输出文件的大小;基于所述当前输出文件的大小来确定分区参数;以及使用所述分区参数来自适应地控制所述文件的大小。

Description

基于Spark的文件大小自适应处理方法和系统
技术领域
本发明涉及大数据处理领域,更具体地,涉及针对Spark任务通过调整分区参数来控制文件大小的方法和系统。
背景技术
随着互联网和5G技术的不断发展,大数据应用的发展势头十分迅猛,在电信、电商、传媒、交通等方面都有着积极而广泛的应用,例如可以应用于处理视联网领域中的海量数据,诸如视频监控数据等等。Hadoop是一个由Apache基金会所开发的分布式系统基础架构,这种离线的高吞吐、低响应框架已不再能够满足部分需求,人们对大数据计算的效率和延时性要求也随之提高。Spark基于内存、分布式的大数据计算引擎也随之应运而生,其作为一种专为大规模数据处理而设计的快速通用的计算引擎,处理速度要比Hadoop快100倍以上。
但Spark在提供快速而便利的同时,因动态分区、不合理的分区数量等情况,会出现大量小文件和单文件过大的问题。其中,小文件会导致磁盘寻址时间过长,同时由于Spark频繁创建任务来进行数据读取,从而导致任务效率低下;而大文件则会导致Spark程序在处理这块数据时从磁盘传输数据的时间会明显大于定位这个块开始位置所需的时间,同时对于无法分块的大文件(例如:snappy压缩格式文件)还无法发挥Spark分布式并行处理的优势,且会因为数据量过大而导致程序内存溢出,不但影响效率而且程序易运行失败。
发明内容
提供本发明内容以便以简化形式介绍将在以下具体实施方式中进一步的描述一些概念。本发明内容并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
为解决上述问题,本发明提出了一种基于Spark的文件大小自适应处理方法和系统,通过对当前输入数据以及结合历史输入数据和输出数据的分析,预生成Spark的分区输出参数,使得Spark任务输出文件的大小控制在一定的范围内,从而使得输出文件大小实现自适应,解决小文件过多、单文件过大的问题。
根据本发明的一个方面,提供了一种基于Spark的文件大小自适应处理方法,包括:
对历史输入文件和历史输出文件的列表进行扫描,从而获取所述历史输入文件和所述历史输出文件的大小;
基于所述历史输入文件和所述历史输出文件的大小来确定平均输入-输出转化比;
对当前输入文件的列表进行扫描,从而获取所述当前输入文件的大小;
基于所述平均输入-输出转化比、以及所述当前输入文件的大小,来确定当前输出文件的大小;
基于所述当前输出文件的大小来确定分区参数;以及
使用所述分区参数来自适应地控制所述文件的大小。
根据本发明的一个实施例,基于所述历史输入文件和所述历史输出文件的大小来确定平均输入-输出转化比包括:
对所述历史输入文件和所述历史输出文件的大小分别进行求和;
基于所述历史输入文件的大小之和、以及所述历史输出文件的大小之和来确定输入-输出转化比;以及
对所述输入-输出转化比求平均以确定平均输入-输出转化比。
根据本发明的另一实施例,基于所述历史输入文件和所述历史输出文件的大小来确定平均输入-输出转化比包括:
设置历史阈值数目;
在所述历史输入文件和所述历史输出文件的数目大于所述历史阈值数目的情况下,基于最近的所述历史阈值数目个所述历史输入文件和所述历史输出文件的大小来确定平均输入-输出转化比;或者
在所述历史输入文件和所述历史输出文件的数目小于或等于所述历史阈值数目的情况下,基于所有的所述历史输入文件和所述历史输出文件的大小来确定平均输入-输出转化比。
根据本发明的又一实施例,基于所述当前输出文件的大小来确定分区参数包括根据以下公式计算所述分区参数:
所述分区参数=所述当前输出文件的大小/单文件大小+1
其中,所述单文件大小是预先设置的,并且“/”表示除法取整。
根据本发明的又一实施例,其中使用所述分区参数来自适应地控制所述文件的大小包括:
将所述分区参数传入Spark任务,并且将所述分区参数作用于所述Spark任务输出时的repartition算子,从而控制所述Spark任务输出的所述文件的大小。
根据本发明的又一实施例,所述方法进一步包括:
在没有扫描到所述历史输入文件和所述历史输出文件的情况下,设置默认的分区参数。
根据本发明的另一方面,提供了一种基于Spark的文件大小自适应处理系统,包括:
存储器,所述存储器被配置成存储输入文件和输出文件;
至少一个处理器,所述至少一个处理器被耦合到所述存储器并被配置成:
对历史输入文件和历史输出文件的列表进行扫描,从而获取所述历史输入文件和所述历史输出文件的大小;
基于所述历史输入文件和所述历史输出文件的大小来确定平均输入-输出转化比;
对当前输入文件的列表进行扫描,从而获取所述当前输入文件的大小;
基于所述平均输入-输出转化比、以及所述当前输入文件的大小,来确定当前输出文件的大小;
基于所述当前输出文件的大小来确定分区参数;以及
使用所述分区参数来自适应地控制所述文件的大小。
根据本发明的一个实施例,基于所述历史输入文件和所述历史输出文件的大小来确定平均输入-输出转化比包括:
设置历史阈值数目;
在所述历史输入文件和所述历史输出文件的数目大于所述历史阈值数目的情况下,基于最近的所述历史阈值数目个所述历史输入文件和所述历史输出文件的大小来确定平均输入-输出转化比;或者
在所述历史输入文件和所述历史输出文件的数目小于或等于所述历史阈值数目的情况下,基于所有的所述历史输入文件和所述历史输出文件的大小来确定平均输入-输出转化比。
根据本发明的另一实施例,基于所述当前输出文件的大小来确定分区参数包括根据以下公式计算所述分区参数:
所述分区参数=所述当前输出文件的大小/单文件大小+1
其中,所述单文件大小是预先设置的,并且“/”表示除法取整。
根据本发明的又一实施例,所述至少一个处理器被进一步配置成:
在没有扫描到所述历史输入文件和所述历史输出文件的情况下,设置默认的分区参数。
通过阅读下面的详细描述并参考相关联的附图,这些及其他特点和优点将变得显而易见。应该理解,前面的概括说明和下面的详细描述只是说明性的,不会对所要求保护的各方面形成限制。
附图说明
为了能详细地理解本发明的上述特征所用的方式,可以参照各实施例来对以上简要概述的内容进行更具体的描述,其中一些方面在附图中示出。然而应该注意,附图仅示出了本发明的某些典型方面,故不应被认为限定其范围,因为该描述可以允许有其它等同有效的方面。
图1是根据本发明的一个实施例的基于Spark的文件大小自适应处理方法的流程图。
图2是根据本发明的一个实施例的基于Spark的HDFS文件大小自适应的方法的示例流程图。
图3是根据本发明的一个实施例的分区参数生成示意图。
图4是根据本发明的一个实施例的分区效果图。
图5是根据本发明的一个实施例的基于Spark的文件大小自适应处理系统的示例架构图。
具体实施方式
下面结合附图详细描述本发明,本发明的特点将在以下的具体描述中得到进一步的显现。以下实施例的详细描述和附图用于示例性地说明本发明的原理,但不能用来限制本发明的范围,即本发明不限于所描述的实施例。
在本发明的描述中,需要说明的是,除非另有说明,“多个”的含义是两个以上;术语“上”、“下”、“左”、“右”、“内”、“外”等指示的方位或位置关系仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”等仅用于描述目的,而不能理解为指示或暗示相对重要性。“垂直”并不是严格意义上的垂直,而是在误差允许范围之内。“平行”并不是严格意义上的平行,而是在误差允许范围之内。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
在本发明实施例的描述中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
针对于Spark任务出现的小文件过多或者单文件过大问题,现有方案往往是通过新启动任务进行二次合并/拆分处理,但在针对输入数据源量级过大的情况下,易带来额外的开销。而本发明提供一种基于Spark的文件大小自适应的方法,合理控制Spark输出的文件数量和大小,从而降低Spark任务的开销,合理利用Spark的分布式、多线程的性质,从而提高Spark任务的效率。
图1是根据本发明的一个实施例的基于Spark的文件大小自适应处理方法100的流程图。如图1中所示,方法100开始于步骤102,可以对历史输入文件和历史输出文件的列表进行扫描,从而获取历史输入文件和历史输出文件的大小信息。
然后,方法前进至步骤104,可以基于所获取的历史输入文件和历史输出文件的大小来确定平均输入-输出转化比。
作为一个示例,可以分别对历史输入文件和历史输出文件的大小进行求和,并且基于所获得的历史输入文件的大小之和、以及历史输出文件的大小之和来确定输入-输出转化比。通过该方法分别对Spark任务的多个历史输入、输出文件的大小信息进行计算,获得多个相应的输入-输出转化比,再对这些输入-输出转化比求平均以确定平均输入-输出转化比。例如,具体地,可以对历史输入、输出文件的大小信息进行汇聚,通过下式来计算该Spark任务的输入-输出转化比:
输入-输出转化比=SUM(历史输入文件大小)/SUM(历史输出文件大小)*100%
其中,SUM()表示对括号内的各项进行求和。然后对这些输入-输出转化比求平均,得到该Spark任务的平均输入-输出转化比。
在进一步非限制性实施例中,可以设置历史阈值数目。在历史输入文件和历史输出文件的数目大于该历史阈值数目的情况下,基于最近的历史阈值数目个历史输入文件和历史输出文件的大小来确定平均输入-输出转化比。具体地,对最近的历史阈值数目个历史输入、输出文件的大小信息进行汇聚,获得历史阈值数目个相应的输入-输出转化比,再对这些输入-输出转化比求平均以确定平均输入-输出转化比。或者,在历史输入文件和历史输出文件的数目小于或等于历史阈值数目的情况下,可以基于所有的历史输入文件和历史输出文件的大小来确定平均输入-输出转化比。具体地,对所有的历史输入、输出文件的大小信息进行汇聚,获得多个相应的输入-输出转化比,再对这些输入-输出转化比求平均以确定平均输入-输出转化比。
接着,在步骤106,可以对当前输入文件的列表进行扫描,从而获取当前输入文件的大小。
随后,在步骤108,可以基于在步骤104处所确定的平均输入-输出转化比、以及在步骤106处所获取的当前输入文件的大小,来确定当前输出文件的大小。作为一个示例,可以通过下式来预测当前输出文件的大小:
当前输出文件的大小=当前输入文件的大小/平均输入-输出转化比
在步骤110,可以基于在步骤108处所获得的当前输出文件的大小来确定分区参数。作为一个示例,可以根据以下公式来生成该Spark任务的分区参数:
分区参数=当前输出文件的大小/单文件大小+1
其中,单文件大小可以是预先设置的,例如单文件大小可以默认为128MB,但可以领会,单文件大小也可以调整为其他值;另外“/”表示除法取整。
最后,在步骤112,可以使用该分区参数来自适应地控制文件的大小。作为一个示例,运行Spark任务时,可以将在步骤110处所获得的分区参数传入Spark任务,并且将该分区参数作用于Spark任务输出时的repartition算子(repartition算子是Spark中用于重新设置分区数的算子),从而控制Spark任务输出的文件的大小和数量,实现自适应的效果。
可以领会,作为一个非限制性实施例,当在步骤102处没有扫描到任何历史输入文件和历史输出文件时,可以设置默认的分区参数。例如,如果在步骤102处没有扫描成功,即代表任务首次运行,不存在任何历史输入、输出文件,则可以跳过步骤104-步骤110,直接生成默认的分区参数。
以下将结合图2以基于Spark的Hadoop分布式文件系统(HDFS)为例来进一步阐述本发明的文件大小自适应处理方法的一个具体实施例。但可以领会,尽管图2描述的是一种分布式文件大小自适应处理方法,但本发明的方法不限于处理分布式文件,也可根据实际需要应用于处理其他文件系统。图2是根据本发明的一个实施例的基于Spark的HDFS文件大小自适应的方法200的示例流程图。Hadoop分布式文件系统(HDFS)是指被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统(Distributed File System)。HDFS有着高容错性的特点,而且它能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。本发明通过Spark任务的历史输入、输出大小,结合当前任务的输入,预生成分区参数,从而实现Spark任务输出HDFS文件大小的自适应,有效提升后续Spark任务的运行效率和稳定性。
方法200开始于步骤202,可以获取Spark任务配置的历史的输入、输出文件列表信息,其中,该Spark任务的历史输入、输出文件列表可以是预先配置的。
在步骤204,判断历史的输入、输出文件列表是否存在。如不存在,则代表该任务首次运行,跳转到步骤206;如存在,则跳转到步骤204。
在步骤206,生成Spark任务默认的分区参数,并且跳转到步骤218。作为一个非限制性示例,Spark任务默认分区参数可以设置为200。但可以领会,在实际使用过程中也可以根据数据输出的情况来随意设置任意的默认分区参数。例如,在第一次运行时,数据量较小,就可以手动地设置较小的默认分区参数。在使用默认分区参数来执行Spark任务后,会因为有生成输入、输出文件信息而达到链路闭环,执行正常的步骤流程(即步骤208-步骤218)。
在步骤208,可以通过HDFS命令或者API,获取历史输入、输出文件列表的大小信息,文件大小的单位可以为字节(Byte)。
在步骤210,对于单次的历史,可以对历史输入、输出文件大小分别求和,通过SUM(输入大小)/SUM(输出大小)*100%来计算出输入-输出转化比。作为一个非限制性示例,对于多次历史,则选取最近7次(不足7次取实际历史次数),对所选取的若干次历史的输入-输出转化比求平均,得出平均输入-输出转化比。可以领会,也可以根据实际需要,选取其他次数的历史输入、输出文件大小的输入-输出转化比。
在步骤212,可以通过HDFS命令或者API,获取当前任务输入文件列表的大小信息,并且对当前输入文件大小求和汇总。
在步骤214,可以基于在步骤210处所得到的平均输入-输出转化比、以及在步骤212处所获得的当前输入文件大小,根据下式来预算当前输出文件大小:
预计的当前输出文件大小=当前输入文件大小/平均输入-输出转化比
在步骤216,可以通过下式来计算分区个数:
分区个数=预计的当前输出文件大小/(1024*1024*128)+1
其中,1024*1024*128指将如参考图1中的默认的单文件大小128MB转换到Byte;“/”表示除法取整,加1是为了防止分区参数为0,最终得出的分区个数即为Spark任务的分区参数。
在步骤218,可以将分区参数传入Spark任务,并且将该分区参数作用于Spark任务输出时的repartition算子,最终使得Spark任务输出HDFS文件大小达到自适应。
图3是根据本发明的一个实施例的分区参数生成示意图。可见,本发明可以基于同一Spark任务历史的输入、输出文件列表,得出平均输入-输出转化比478.566%。结合该较佳的平均输入-输出转化比、以及当前Spark任务的输入文件列表(输入文件大小为105.43GB),可以预测当前的输出文件大小(22.0303GB)。为保证输出的单文件接近于预设文件输出大小(默认为128MB),从而生成较佳的分区参数177。
图4是根据本发明的一个实施例的分区效果图。如图4所示,在将图3中所获得的分区参数117作用于Spark任务输出时的repartition算子的情况下,输出的实际文件大小都接近于128MB。由此可见,通过本发明的基于Spark的HDFS文件大小自适应的方法所得的分区参数,可以使得Spark任务输出文件的大小控制在一定的范围内,从而使得输出文件大小实现自适应,解决小文件过大、单文件过大的问题。
图5是根据本发明的一个实施例的基于Spark的文件大小自适应处理系统500的示例架构图。如图5中所示,基于Spark的文件大小自适应处理系统500可以包括存储器502和一个或多个处理器504。
存储器502可被配置成存储输入文件和输出文件,包括历史输入文件和历史输出文件、以及当前输入文件和输出文件。
处理器504可被耦合到存储器502并被配置成执行如图1所述的基于Spark的文件大小自适应处理方法100,具体如下:对历史输入文件和历史输出文件的列表进行扫描,从而获取历史输入文件和历史输出文件的大小;基于历史输入文件和历史输出文件的大小来确定平均输入-输出转化比;对当前输入文件的列表进行扫描,从而获取当前输入文件的大小;基于平均输入-输出转化比、以及当前输入文件的大小,来确定当前输出文件的大小;基于当前输出文件的大小来确定分区参数;以及使用分区参数来自适应地控制文件的大小。
作为一个示例,基于历史输入文件和历史输出文件的大小来确定平均输入-输出转化比可以包括:设置历史阈值数目;在历史输入文件和历史输出文件的数目大于历史阈值数目的情况下,基于最近的历史阈值数目个历史输入文件和历史输出文件的大小来确定平均输入-输出转化比;或者在历史输入文件和历史输出文件的数目小于或等于历史阈值数目的情况下,基于所有的历史输入文件和历史输出文件的大小来确定平均输入-输出转化比。
作为又一示例,基于当前输出文件的大小来确定分区参数可以包括根据以下公式计算分区参数:
分区参数=当前输出文件的大小/单文件大小+1
其中,单文件大小可以是预先设置的,并且“/”表示除法取整。
作为进一步非限制性实施例,该至少一个处理器504可被进一步配置成在没有扫描到历史输入文件和历史输出文件的情况下,直接设置默认的分区参数。
以上描述了本发明的基于Spark的文件大小自适应处理方法和系统,与现有技术中的方案相比,本发明至少具有以下优点:
针对于Spark任务出现的小文件过多或者单文件过大的问题,现有技术往往是采用较为静态的设置、或者开启新的处理任务。但是,静态设置不易于长久的发展,而且需要定时更新处理。另外,开启新的任务也需要消耗一部分额外的计算资源和管理资源,并未采取从源头根治的手段。而本发明基于对当前Spark任务输入数据以及结合历史输入数据和输出数据的分析,预生成Spark的分区参数,使得该分区参数能在一定范围内动态变化,适应当前的场景,可以在不影响当前Spark任务逻辑的情况下,使得输出文件大小实现自适应,在一定范围内解决了小文件过多、单文件过大的问题。
本发明通过对Spark任务的输出文件大小进行自适应,合理地控制文件的大小和数量,从而避免输出的小文件过多或单文件过大,解决了因小文件过多导致的计算资源开销过大、集群namenode压力过大等问题,并且解决了因单文件过大导致的Spark分布式、多线程优势利用效率低下、内存溢出等问题,有效提升了Spark任务运行效率和程序稳定性,减少了集群namenode负载,符合当前节约资源、高效的发展方向,在视频监控等大数据处理领域有很强的实用性和应用范围。
以上所已经描述的内容包括所要求保护主题的各方面的示例。当然,出于描绘所要求保护主题的目的而描述每一个可以想到的组件或方法的组合是不可能的,但本领域内的普通技术人员应该认识到,所要求保护主题的许多进一步的组合和排列都是可能的。从而,所公开的主题旨在涵盖落入所附权利要求书的精神和范围内的所有这样的变更、修改和变化。

Claims (10)

1.一种基于Spark的文件大小自适应处理方法,包括:
对历史输入文件和历史输出文件的列表进行扫描,从而获取所述历史输入文件和所述历史输出文件的大小;
基于所述历史输入文件和所述历史输出文件的大小来确定平均输入-输出转化比;
对当前输入文件的列表进行扫描,从而获取所述当前输入文件的大小;
基于所述平均输入-输出转化比、以及所述当前输入文件的大小,来确定当前输出文件的大小;
基于所述当前输出文件的大小来确定分区参数;以及
使用所述分区参数来自适应地控制所述文件的大小。
2.如权利要求1所述的方法,其特征在于,基于所述历史输入文件和所述历史输出文件的大小来确定平均输入-输出转化比包括:
对所述历史输入文件和所述历史输出文件的大小分别进行求和;
基于所述历史输入文件的大小之和、以及所述历史输出文件的大小之和来确定输入-输出转化比;以及
对所述输入-输出转化比求平均以确定平均输入-输出转化比。
3.如权利要求1所述的方法,其特征在于,基于所述历史输入文件和所述历史输出文件的大小来确定平均输入-输出转化比包括:
设置历史阈值数目;
在所述历史输入文件和所述历史输出文件的数目大于所述历史阈值数目的情况下,基于最近的所述历史阈值数目个所述历史输入文件和所述历史输出文件的大小来确定平均输入-输出转化比;或者
在所述历史输入文件和所述历史输出文件的数目小于或等于所述历史阈值数目的情况下,基于所有的所述历史输入文件和所述历史输出文件的大小来确定平均输入-输出转化比。
4.如权利要求1所述的方法,其特征在于,基于所述当前输出文件的大小来确定分区参数包括根据以下公式计算所述分区参数:
所述分区参数=所述当前输出文件的大小/单文件大小+1
其中,所述单文件大小是预先设置的,并且“/”表示除法取整。
5.如权利要求1所述的方法,其特征在于,其中使用所述分区参数来自适应地控制所述文件的大小包括:
将所述分区参数传入Spark任务,并且将所述分区参数作用于所述Spark任务输出时的repartition算子,从而控制所述Spark任务输出的所述文件的大小。
6.如权利要求1所述的方法,其特征在于,所述方法进一步包括:
在没有扫描到所述历史输入文件和所述历史输出文件的情况下,设置默认的分区参数。
7.一种基于Spark的文件大小自适应处理系统,包括:
存储器,所述存储器被配置成存储输入文件和输出文件;
至少一个处理器,所述至少一个处理器被耦合到所述存储器并被配置成:
对历史输入文件和历史输出文件的列表进行扫描,从而获取所述历史输入文件和所述历史输出文件的大小;
基于所述历史输入文件和所述历史输出文件的大小来确定平均输入-输出转化比;
对当前输入文件的列表进行扫描,从而获取所述当前输入文件的大小;
基于所述平均输入-输出转化比、以及所述当前输入文件的大小,来确定当前输出文件的大小;
基于所述当前输出文件的大小来确定分区参数;以及
使用所述分区参数来自适应地控制所述文件的大小。
8.如权利要求7所述的系统,其特征在于,基于所述历史输入文件和所述历史输出文件的大小来确定平均输入-输出转化比包括:
设置历史阈值数目;
在所述历史输入文件和所述历史输出文件的数目大于所述历史阈值数目的情况下,基于最近的所述历史阈值数目个所述历史输入文件和所述历史输出文件的大小来确定平均输入-输出转化比;或者
在所述历史输入文件和所述历史输出文件的数目小于或等于所述历史阈值数目的情况下,基于所有的所述历史输入文件和所述历史输出文件的大小来确定平均输入-输出转化比。
9.如权利要求7所述的系统,其特征在于,基于所述当前输出文件的大小来确定分区参数包括根据以下公式计算所述分区参数:
所述分区参数=所述当前输出文件的大小/单文件大小+1
其中,所述单文件大小是预先设置的,并且“/”表示除法取整。
10.如权利要求7所述的系统,其特征在于,所述至少一个处理器被进一步配置成:
在没有扫描到所述历史输入文件和所述历史输出文件的情况下,设置默认的分区参数。
CN202211254340.8A 2022-10-13 2022-10-13 基于Spark的文件大小自适应处理方法和系统 Pending CN116644047A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211254340.8A CN116644047A (zh) 2022-10-13 2022-10-13 基于Spark的文件大小自适应处理方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211254340.8A CN116644047A (zh) 2022-10-13 2022-10-13 基于Spark的文件大小自适应处理方法和系统

Publications (1)

Publication Number Publication Date
CN116644047A true CN116644047A (zh) 2023-08-25

Family

ID=87623480

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211254340.8A Pending CN116644047A (zh) 2022-10-13 2022-10-13 基于Spark的文件大小自适应处理方法和系统

Country Status (1)

Country Link
CN (1) CN116644047A (zh)

Similar Documents

Publication Publication Date Title
JP6457447B2 (ja) データセンターのネットワークトラフィックスケジューリング方法及び装置
CN110990138B (zh) 资源调度方法、装置、服务器及存储介质
CN109936473B (zh) 基于深度学习预测的分布计算系统及其运行方法
US20120016994A1 (en) Distributed system
CN111026553B (zh) 离线混部作业的资源调度方法及服务器系统
CN110198339B (zh) 一种基于QoE感知的边缘计算任务调度方法
CN110677305A (zh) 一种云计算环境下的自动伸缩方法和系统
CN111131486B (zh) 执行节点的负载调节方法、装置、服务器及存储介质
CN109936471B (zh) 一种多集群的资源分配方法和装置
CN115211092B (zh) 一种消息拉取方法、装置以及计算机存储介质
CN114840323A (zh) 任务处理方法、装置、系统、电子设备以及存储介质
CN115794262A (zh) 任务处理方法、装置、设备、存储介质以及程序产品
CN111858040A (zh) 一种资源调度方法和装置
CN110096339B (zh) 一种基于系统负载实现的扩缩容配置推荐系统及方法
CN112214303A (zh) Kubernetes集群自动缩放系统
US11048555B2 (en) Method, apparatus, and computer program product for optimizing execution of commands in a distributed system
CN116644047A (zh) 基于Spark的文件大小自适应处理方法和系统
CN116382892B (zh) 一种基于多云融合以及云服务的负载均衡方法及装置
WO2023211546A1 (en) Intelligent dynamic scaling based on internal and external indicators
CN112770358B (zh) 基于业务数据的多速率模式数据发送控制方法及装置
Meng et al. A dynamic performance adjustment algorithm based on negative feedback mechanism of power internet of things
CN109508433B (zh) 基于匹配算法性能调整的负载波动应对方法和系统
CN114546631A (zh) 任务调度方法、控制方法、核心、电子设备、可读介质
CN101883281A (zh) 一种远程显示系统的静态图像编码方法及系统
CN114443262A (zh) 计算资源管理方法、装置、设备及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20240327

Address after: Unit 1, Building 1, China Telecom Zhejiang Innovation Park, No. 8 Xiqin Street, Wuchang Street, Yuhang District, Hangzhou City, Zhejiang Province, 311100

Applicant after: Tianyi Shilian Technology Co.,Ltd.

Country or region after: China

Address before: Room 1423, No. 1256 and 1258, Wanrong Road, Jing'an District, Shanghai 200072

Applicant before: Tianyi Digital Life Technology Co.,Ltd.

Country or region before: China

TA01 Transfer of patent application right