数据处理方法、装置、电子设备、存储介质及程序产品制造方法及图纸

技术编号:28472368 阅读:20 留言:0更新日期:2021-05-15 21:40
本公开实施例公开了一种数据处理方法、装置、电子设备、存储介质及程序产品,方法包括:确定数据产生端在数据写阶段产生的数据分区中的数据量;将数据量大于或等于第一预设阈值的数据分区确定为目标分区;生成多个任务标识,并建立多个任务标识与目标分区中数据之间的映射关系;将多个任务标识分别分配给不同的数据处理任务,以便在数据读阶段由数据处理任务根据映射关系从目标分区读取所对应的数据。该技术方案可以通过启动多个数据处理任务并行对该目标分区中的数据进行处理的方式,解决Shuffle阶段由于某个数据分区中发生数据倾斜而导致对应的大数据处理作业效率低下的问题,提升了大数据处理作业的处理效率。提升了大数据处理作业的处理效率。提升了大数据处理作业的处理效率。

【技术实现步骤摘要】
数据处理方法、装置、电子设备、存储介质及程序产品


[0001]本公开实施例涉及计算机
,具体涉及一种数据处理方法、装置、电子设备、存储介质及程序产品。

技术介绍

[0002]Spark是一种基于内存计算的分布式大数据并行处理平台,它集批处理、实时流处理、交互式查询与图计算于一体,避免了各种运算场景下需要部署不同集群所带来的资源浪费。
[0003]Spark提出的分布式回弹数据集(Resilient Distributed Dataset,RDD)使得大数据的计算过程最大可能的在内存中进行。在执行逻辑上,Spark按照用户程序的逻辑从前向后生成RDD,每个RDD都会有自己的依赖。当用户的程序需要最终的输出结果时,Spark就会从最后一个RDD递归向前寻找,并且按照其中存在的Shuffle Dependency来划分Stage,而Stage之间的数据交互需要Shuffle来完成。在划分完Stage之后,Spark就会从前向后提交Stage,先提交没有缺失依赖的Stage,依次向后。这种调度逻辑使得数据自动流向需要计算的位置,并且让计算中间结果最大可能的保存在内存中。
[0004]而为了保证Stage之间的分割和本身框架的容错性,在划分每个阶段的Shuffle Dependency时,Spark会将前驱Stage产生的中间结果存储到磁盘中,然后开始分配下一个Stage的任务,之后再由Stage的数据读取任务去远程读取磁盘上的数据,然后进行计算。
[0005]但是,在进行shuffle的时候,必须将在前驱Stage的各个节点上产生的相同Key数据拉取到下一Stage的某个节点上的一个task来进行处理。如果某个key对应的数据量特别大的话,则会发生数据倾斜。比如大部分 key对应10条数据,但个别key却对应了100万条数据,那么大部分task 会只分配到10条数据,而个别task可能会分配了100万数据。整个spark 作业的运行进度是由运行时间最长的那个task决定的。因此出现数据倾斜的时候,spark作业看起来会运行得非常缓慢,甚至可能因为某个task处理的数据量过大导致内存溢出。因此,如何解决Spark的Shuffle阶段数据倾斜的问题是当前需要解决的技术问题之一。

技术实现思路

[0006]本公开实施例提供一种数据处理方法、装置、电子设备、存储介质及程序产品。
[0007]第一方面,本公开实施例中提供了一种数据处理方法,包括:
[0008]确定数据产生端在数据写阶段产生的数据分区中的数据量;
[0009]将所述数据量大于或等于第一预设阈值的所述数据分区确定为目标分区;
[0010]生成多个任务标识,并建立所述多个任务标识与所述目标分区中数据之间的映射关系;其中,所述映射关系中每条数据对应一个任务标识,一个任务标识对应一条数据或者多条数据;
[0011]将多个所述任务标识分别分配给不同的数据处理任务,以便在数据读阶段由所述
数据处理任务根据所述映射关系从所述目标分区读取所对应的数据。
[0012]进一步地,确定数据产生端在数据写阶段产生的数据分区中的数据量,包括:
[0013]从所述数据产生端获取在数据写阶段所产生的所述数据分区的数据量。
[0014]进一步地,生成多个任务标识,并建立所述多个任务标识与所述目标分区中数据之间的映射关系,包括:
[0015]根据所述目标分区的所述数据量确定处理所述目标分区中的数据所需要的所述数据处理任务的目标数量;
[0016]根据所述目标数量生成多个所述任务标识,一个所述数据处理任务对应一个所述任务标识。
[0017]进一步地,将多个所述任务标识分别分配给不同的数据处理任务,以便在数据读阶段由所述数据处理任务根据所述映射关系从所述目标分区读取所对应的数据,包括:
[0018]针对所述目标分区,启动目标数量个所述数据处理任务;
[0019]响应于所述数据处理任务的数据信息请求,将所述映射关系以及分配给所述数据处理任务的所述任务标识发送给所述数据处理任务。
[0020]进一步地,生成多个任务标识,并建立所述多个任务标识与所述目标分区中数据之间的映射关系,还包括:
[0021]将所述映射关系发送给所述数据产生端。
[0022]进一步地,将所述数据量大于或等于第一预设阈值的所述数据分区确定为目标分区,包括:
[0023]在所述数据分区的数据量大于或等于所述第一预设阈值时,确定在下一阶段对所述数据分区中的数据所要执行的数据处理类型;
[0024]在所述数据处理类型满足预设条件时,将所述数据分区确定为所述目标分区。
[0025]进一步地,所述预设条件包括所述数据处理类型为无需对同一键值的全量数据进行数据处理的类型。
[0026]进一步地,在所述数据处理类型满足预设条件时,将所述数据分区确定为所述目标分区,包括:
[0027]在所述数据处理类型为数据的分类处理时,将所述数据分区确定为所述目标分区。
[0028]第二方面,本公开实施例中提供了一种数据处理方法,包括:
[0029]将一个或多个数据产生任务产生的数据进行划分,得到多个数据分区;
[0030]统计划分后每个所述数据分区的数据量;
[0031]将所述数据分区的数据量提供给数据管理端。
[0032]进一步地,将所述数据分区的数据量提供给数据管理端,包括:
[0033]存储所述数据分区的数据量;
[0034]响应于所述数据管理端的请求,将所述数据分区的数据量发送给所述数据管理端。
[0035]进一步地,所述方法还包括:
[0036]接收所述数据管理端发送的映射关系;所述映射关系包括目标分区中的数据与任务标识之间的对应关系;其中,所述映射关系中针对同一所述目标分区中的数据包括多个
不同的所述任务标识。
[0037]进一步地,所述方法还包括:
[0038]接收数据处理任务的数据读取请求;其中,所述数据读取请求包括所要读取的所述目标分区中数据对应的所述任务标识;
[0039]根据所述映射关系将所述目标分区中对应于所述任务标识的数据的读取信息发送给所述数据处理任务。
[0040]第三方面,本公开实施例中提供了一种数据处理方法,包括:
[0041]接收数据管理端发送的数据读取信息;
[0042]向数据产生端发送数据读取请求;其中,所述数据读取请求包括所述数据读取信息;所述数据读取信息包括所要读取的目标分区中的数据对应的任务标识;
[0043]接收所述数据产生端发送的所要读取的目标分区中的数据对应的任务标识的数据信息;
[0044]根据所述数据信息获取所要读取的数据。
[0045]第四方面,本公开实施例中提供了一种数据处理方法,包括:
[0046]数据产生端将一个或多个数据产生任务在数据写阶段产生的数据进行划分,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理方法,包括:确定数据产生端在数据写阶段产生的数据分区中的数据量;将所述数据量大于或等于第一预设阈值的所述数据分区确定为目标分区;生成多个任务标识,并建立所述多个任务标识与所述目标分区中数据之间的映射关系;其中,所述映射关系中每条数据对应一个任务标识,一个任务标识对应一条数据或者多条数据;将多个所述任务标识分别分配给不同的数据处理任务,以便在数据读阶段由所述数据处理任务根据所述映射关系从所述目标分区读取所对应的数据。2.一种数据处理方法,包括:将一个或多个数据产生任务产生的数据进行划分,得到多个数据分区;统计划分后每个所述数据分区的数据量;将所述数据分区的数据量提供给数据管理端。3.一种数据处理方法,包括:接收数据管理端发送的数据读取信息;向数据产生端发送数据读取请求;其中,所述数据读取请求包括所述数据读取信息;所述数据读取信息包括所要读取的目标分区中的数据对应的任务标识;接收所述数据产生端发送的所要读取的目标分区中的数据对应的任务标识的数据信息;根据所述数据信息获取所要读取的数据。4.一种数据处理方法,包括:数据产生端将一个或多个数据产生任务在数据写阶段产生的数据进行划分,并确定划分后对应于不同数据处理任务的数据分区的数据量;其中,所述数据分区的数据量为对应于一个所述数据处理任务的所有数据量;所述数据产生端将所述数据分区的数据量提供给数据管理端;所述数据管理端将所述数据量大于或等于第一预设阈值的所述数据分区确定为目标分区,并生成多个任务标识,以及建立所述多个任务标识与所述目标分区中数据之间的映射关系;其中,所述映射关系中每条数据对应一个任务标识,一个任务标识对应一条数据或者多条数据;所述数据管理端将多个所述任务标识分别分配给不同的数据处理任务,以便在数据读阶段由所述数据处理任务根据所述映射关系从所述目标分区读取所对应的数据。5.一种数据处理装置,包括:第一确定模块,被配置为确定数据产生端在数据写阶段产生的数据分区中的数据量;第二确定模块,被配置为将所述数据量大于或等于第一预设阈值的所述数据分区确定为目标分区;生成模块,被配置为生...

【专利技术属性】
技术研发人员:ꢀ七四专利代理机构
申请(专利权)人:拉卡拉支付股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1