CN114817241A - 基于Flink引擎计算节点动态扩展的任务评价方法和装置 - Google Patents
基于Flink引擎计算节点动态扩展的任务评价方法和装置 Download PDFInfo
- Publication number
- CN114817241A CN114817241A CN202210306938.0A CN202210306938A CN114817241A CN 114817241 A CN114817241 A CN 114817241A CN 202210306938 A CN202210306938 A CN 202210306938A CN 114817241 A CN114817241 A CN 114817241A
- Authority
- CN
- China
- Prior art keywords
- task
- operator
- data
- node
- result
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/03—Credit; Loans; Processing thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Software Systems (AREA)
- General Business, Economics & Management (AREA)
- Technology Law (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Strategic Management (AREA)
- Computational Linguistics (AREA)
- Marketing (AREA)
- Economics (AREA)
- Development Economics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提出了一种基于Flink引擎计算节点动态扩展的任务评价方法,包括:接收客户端发送的任务;接收客户端在出现数据热点时发送的节点扩展指令,根据节点扩展指令修改任务的执行图的拓扑结构,并通知目标算子任务的上游算子任务增加结果分区和变更虚拟哈希映射表和虚拟路由表,其中,目标算子任务为出现数据热点的算子任务;通过任务管理器启动新增计算节点,初始化新增计算节点的输入网关和结果分区;通知目标算子任务的下游算子任务增加输入通道;通过任务管理器根据修改后的任务的执行图的拓扑结构,对用户数据进行处理,得到任务评价结果。本申请解决了Flink引擎处理数据时的数据倾斜的问题,提高了系统的数据计算速度,满足任务实时场景需求。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及基于Flink引擎计算节点动态扩展的任务评价方法和装置。
背景技术
随着大数据技术的快速发展,在数据处理领域中企业对计算引擎处理数据的速度以及稳定性要求随之提升。Flink作为新一代的流处理引擎,已经成为实时计算领域的主流。同时随着互联网的发展,征信数据呈指数级增长,对于一个百万级用户的征信系统,每天需要处理PB级别的实时数据。但在使用Flink引擎处理征信数据时,随着系统用户的增长以及不同种类数据的增加,Flink使用哈希分区策略处理征信数据时,有时会出现大量数据被分配到一个节点中处理,导致该节点出现数据热点情况,从而使得数据计算速度降低,吞吐量下降,无法满足任务的实时场景需求。
发明内容
本申请旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本申请的第一个目的在于提出一种基于Flink引擎计算节点动态扩展的任务评价方法,通过在出现数据热点时动态扩展计算节点,从而不影响系统的正确运行,同时没有影响到原有计算节点之间的拓扑关系,避免了重新消费数据的可能,根本上解决了Flink引擎处理数据时的数据倾斜的问题,提高了系统的数据计算速度,满足任务实时场景需求。
本申请的第二个目的在于提出一种基于Flink引擎计算节点动态扩展的任务评价装置。
本申请的第三个目的在于提出一种非临时性计算机可读存储介质。
为达上述目的,本申请第一方面实施例提出了一种基于Flink引擎计算节点动态扩展的任务评价方法,包括:接收客户端发送的任务,其中,任务是客户端根据用户数据生成的;接收客户端在出现数据热点时发送的节点扩展指令,根据节点扩展指令修改任务的执行图的拓扑结构,并通知目标算子任务的上游算子任务增加结果分区和变更虚拟哈希映射表和虚拟路由表,其中,目标算子任务为出现数据热点的算子任务;通过任务管理器启动新增计算节点,初始化新增计算节点的输入网关和结果分区,其中,新增计算节点的输入网关与上游算子任务增加的结果分区连接;通知目标算子任务的下游算子任务增加输入通道,其中,下游算子任务增加的输入通道与新增计算节点的结果分区连接;通过任务管理器根据修改后的任务的执行图的拓扑结构,对用户数据进行处理,得到任务评价结果。
可选地,在本申请的一个实施例中,用户数据包括:用户的基本信息、消费数据、贷款数据、收入数据、社交信息中的一种或者多种。
可选地,在本申请的一个实施例中,通过任务管理器根据修改后的任务的执行图的拓扑结构,对用户数据进行处理,得到任务评价结果,包括:
通过任务管理器将经过上游算子任务处理的用户数据通过结果分区传输至目标算子任务的输入网关,其中,上游算子任务增加的结果分区与新增计算节点的输入网关连接;
将目标算子任务的输入网关接收的用户数据分至目标算子任务的N个原有计算节点和新增计算节点进行处理,将经过目标算子任务处理的用户数据通过结果分区传输至下游算子任务的输入网关,其中,新增计算节点的结果分区与下游算子任务增加的输入通道连接;
将下游算子任务的输入网关接收的用户数据分至下游算子任务的M个计算节点进行处理,将经过下游算子任务处理的用户数据传输至下一个算子任务继续处理;
其中,N、M为正整数。
可选地,在本申请的一个实施例中,根据修改后的任务的执行图的拓扑结构,对用户数据进行处理,得到任务评价结果,还包括:
通过初始算子任务拉取用户数据,并根据修改后的任务的执行图的拓扑结构传输至下一个算子任务进行处理;
通过输出算子任务将处理完成的用户数据输出,得到任务评价结果。
可选地,在本申请的一个实施例中,变更虚拟哈希映射表和虚拟路由表,包括:
通过上游算子任务在虚拟哈希映射表中新增新建结果分区的映射,将上游算子任务的结果分区对应的虚拟哈希值均分一半给新建结果分区;
根据虚拟哈希映射表,将新建结果分区对应的所有虚拟哈希值在虚拟路由表中全部映射为新建结果分区。
为达上述目的,本申请第二方面实施例提出了一种基于Flink引擎计算节点动态扩展的任务评价装置,包括:作业管理器,用于接收客户端发送的任务,并接收客户端在出现数据热点时发送的节点扩展指令,根据节点扩展指令修改任务的执行图的拓扑结构,并通知目标算子任务的上游算子任务增加结果分区和变更虚拟哈希映射表和虚拟路由表,其中,目标算子任务为出现数据热点的算子任务;通知任务管理器启动新增计算节点;通知目标算子任务的下游算子任务增加输入通道,其中,下游算子任务增加的输入通道对象与新增计算节点的结果分区连接;通过任务管理器根据修改后的任务的执行图的拓扑结构,对用户数据进行处理,得到任务评价结果;
任务管理器,用于接收作业管理器发送的指令,启动新增计算节点,初始化新增计算节点的输入网关和结果分区,其中,新增计算节点的输入网关与上游算子任务增加的结果分区连接;还用于根据修改后的任务的执行图的拓扑结构,对用户数据进行处理,得到任务评价结果;
客户端,用于构建任务,将任务发送至作业管理器,并在出现数据热点时发送的节点扩展指令至作业管理器。
为了实现上述目的,本申请第三方面实施例提出了一种非临时性计算机可读存储介质,当所述存储介质中的指令由处理器被执行时,能够执行一种基于Flink引擎计算节点动态扩展的任务评价方法。
本申请实施例的基于Flink引擎计算节点动态扩展的任务评价方法、基于Flink引擎计算节点动态扩展的任务评价装置和非临时性计算机可读存储介质,通过在出现数据热点时动态扩展计算节点,从而不影响系统的正确运行,同时没有影响到原有计算节点之间的拓扑关系,避免了重新消费数据的可能,根本上解决了Flink引擎处理数据时的数据倾斜的问题,提高了系统的数据计算速度,满足任务实时场景需求。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请实施例一所提供的一种基于Flink引擎计算节点动态扩展的任务评价方法的流程图;
图2为本申请实施例的基于Flink引擎计算节点动态扩展的任务评价方法的节点动态扩展示意图;
图3为本申请实施例的任务物理执行图;
图4为本申请实施例的基于Flink引擎计算节点动态扩展的任务评价方法的节点扩增后任务物理执行图;
图5为本申请实施例的基于Flink引擎计算节点动态扩展的任务评价方法的一致性哈希算法圆环示意图;
图6为本申请实施例的基于Flink引擎计算节点动态扩展的任务评价方法的虚拟哈希映射表变更过程示意图;
图7为本申请实施例的基于Flink引擎计算节点动态扩展的任务评价方法的虚拟路由表变更过程示意图;
图8为本申请实施例二所提供的一种基于Flink引擎计算节点动态扩展的任务评价装置的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
在使用Flink处理数据时,如果某些节点数据分区采取的是按照用户id进行的哈希策略,那么有概率会出现大量的数据会发送给一个子任务节点计算,这时候某些节点的子任务节点会出现数据热点的情况。解决数据热点一般有两种方案:
(1)人工重新设置节点并行度。该方法直接停掉程序,根据数据哈希特征重新设置合理的任务并行度来避免出现数据热点情况。对于处理有界数据、明确数据哈希特征等场景下具有良好的稳定性效果。
(2)随机前缀法。该方法首先通过对同一个哈希关键字前缀添加不同随机数,降低单计算节点的承受能力,然后删除该键的前缀,通过全局聚合获取最终的结果。该方法处理灵活,在众多场景下取得较好的性能效果。
现有方案的缺点:对于方案(1),这种解决方法不能应用于流计算领域,首先由于流计算应用是长时间应用,如果直接停掉程序,会导致程序暂时的不可用性,这对于有高可用性需求的业务是非常致命的;其次在重新设置合理的并行度之后,程序只是暂时解决了数据热点问题,随着用户量的继续增长,可能又会出现数据热点问题,这时候又可能需要停掉程序,再次设置合理的并行度,可见,这种手工设置的并行度没有本质解决数据热点节点的可扩展问题。对于方案(2),首先随机数的添加导致之后的全局聚合需要额外的读取代价(需要维护随机数和关键字之间的关系),其次,无法维护有状态的计算节点的状态。
本申请提出一种Flink引擎计算节点动态扩展方法,采取一致性采取动态的思想,提前建立好虚拟节点(虚拟节点并不存在,只是一种标记),然后在节点中维护好虚拟节点与实际的物理节点(这里指的是Flink中的slot逻辑资源,并不是物理机器)之间的映射关系,映射算法采用的是均分算法。对于数据倾斜的节点直接划分一半的虚拟节点给新增的节点。由于虚拟节点的个数是2^32个,所以在理论上,节点可以自适应地无限扩展,根本上解决流计算系统计算节点能力不足问题。
本申请提出的一种Flink引擎计算节点动态扩展方法,一方面通过采取动态扩展计算节点模式的优点,保证了程序的稳定性,同时避免了由人工干预带来的并行度设置不准的问题。另一方面,一致性哈希分区策略极大降低了分区后相同key值数据的分散程度,既快速地避免了程序发生数据倾斜的问题,同时由于拓扑结构的改变而不影响程序的正确性。
下面参考附图描述本申请实施例的基于Flink引擎计算节点动态扩展的任务评价方法和装置。
图1为本申请实施例一所提供的一种基于Flink引擎计算节点动态扩展的任务评价方法的流程图。
如图1所示,该基于Flink引擎计算节点动态扩展的任务评价方法,包括以下步骤:
步骤101,接收客户端发送的任务,其中,任务是客户端根据用户数据生成的;
步骤102,接收客户端在出现数据热点时发送的节点扩展指令,根据节点扩展指令修改任务的执行图的拓扑结构,并通知目标算子任务的上游算子任务增加结果分区和变更虚拟哈希映射表和虚拟路由表,其中,目标算子任务为出现数据热点的算子任务;
步骤103,通过任务管理器启动新增计算节点,初始化新增计算节点的输入网关和结果分区,其中,新增计算节点的输入网关与上游算子任务增加的结果分区连接;
步骤104,通知目标算子任务的下游算子任务增加输入通道,其中,下游算子任务增加的输入通道与新增计算节点的结果分区连接;
步骤105,通过任务管理器根据修改后的任务的执行图的拓扑结构,对用户数据进行处理,得到任务评价结果。
本申请实施例的基于Flink引擎计算节点动态扩展的任务评价方法,通过接收客户端发送的任务,其中,任务是客户端根据用户数据生成的;接收客户端在出现数据热点时发送的节点扩展指令,根据节点扩展指令修改任务的执行图的拓扑结构,并通知目标算子任务的上游算子任务增加结果分区和变更虚拟哈希映射表和虚拟路由表,其中,目标算子任务为出现数据热点的算子任务;通过任务管理器启动新增计算节点,初始化新增计算节点的输入网关和结果分区,其中,新增计算节点的输入网关与上游算子任务增加的结果分区连接;通知目标算子任务的下游算子任务增加输入通道,其中,下游算子任务增加的输入通道与新增计算节点的结果分区连接;通过任务管理器根据修改后的任务的执行图的拓扑结构,对用户数据进行处理,得到任务评价结果。由此,能够通过在出现数据热点时动态扩展计算节点,从而不影响系统的正确运行,同时没有影响到原有计算节点之间的拓扑关系,避免了重新消费数据的可能,根本上解决了Flink引擎处理数据时的数据倾斜的问题,提高了系统的数据计算速度,满足任务实时场景需求。
进一步地,在本申请实施例中,用户数据包括:用户的基本信息、消费数据、贷款数据、收入数据、社交信息中的一种或者多种。
用户数据可以为征信领域信用评估场景中的征信数据,在进行信用任务评估之前,先获取用户数据,然后可以利用大数据处理框架(Flink、Spark等处理工具)对数据进行预处理。
进一步地,在本申请实施例中,通过任务管理器根据修改后的任务的执行图的拓扑结构,对用户数据进行处理,得到任务评价结果,包括:
通过任务管理器将经过上游算子任务处理的用户数据通过结果分区传输至目标算子任务的输入网关,其中,上游算子任务增加的结果分区与新增计算节点的输入网关连接;
将目标算子任务的输入网关接收的用户数据分至目标算子任务的N个原有计算节点和新增计算节点进行处理,将经过目标算子任务处理的用户数据通过结果分区传输至下游算子任务的输入网关,其中,新增计算节点的结果分区与下游算子任务增加的输入通道连接;
将下游算子任务的输入网关接收的用户数据分至下游算子任务的M个计算节点进行处理,将经过下游算子任务处理的用户数据传输至下一个算子任务继续处理;
其中,N、M为正整数。
进一步地,在本申请实施例中,根据修改后的任务的执行图的拓扑结构,对用户数据进行处理,得到任务评价结果,还包括:
通过初始算子任务拉取用户数据,并根据修改后的任务的执行图的拓扑结构传输至下一个算子任务进行处理;
通过输出算子任务将处理完成的用户数据输出,得到任务评价结果。
进一步地,在本申请实施例中,变更虚拟哈希映射表和虚拟路由表,包括:
通过上游算子任务在虚拟哈希映射表中新增新建结果分区的映射,将上游算子任务的结果分区对应的虚拟哈希值均分一半给新建结果分区;
根据虚拟哈希映射表,将新建结果分区对应的所有虚拟哈希值在虚拟路由表中全部映射为新建结果分区。
为了在某个计算节点出现数据热点时能够快速地将其拥有的虚拟节点分配给新的节点,使用哈希映射表数据结构为每个计算节点保存了其拥有的虚拟节点;由于虚拟节点数目巨大,为了减少映射表所占内存,映射表仅仅为每个计算节点保存其所拥有的虚拟节点编号的最小值和最大值,同时保证每个计算节点所拥有的虚拟节点都是连续的。
对于需要进行哈希分区的节点设计一个虚拟哈希映射表,映射表的键是计算节点真实的结果分区对象,映射表的值是0到232-1之间的虚拟哈希值列表。该虚拟哈希映射表是用来查找一个真实的结果分区拥有多少虚拟的哈希值。初始化该映射表时,按照下游节点并行度确定结果分区对象的个数,然后把圆环按对象个数平均分割至每个结果分区对象。
为了能够将数据由虚拟节点快速路由到真实的物理计算节点中,路由表为每个虚拟节点标记其所属的物理计算节点,同样因为虚拟节点数量的原因,这里不适合将虚拟节点和计算节点设计为一对一的关系,此表将设计为与映射表相反的数据结构—即将映射表的键值对互换。在查找对应的虚拟节点时,只需要重写哈希映射表的键比较方法,如果当前的虚拟节点属于某个键的范围内,那就可以确定具体的值,时间复杂度较低。
针对上述需要进行哈希分区的节点再设计一个虚拟路由表,路由表的键是0到232-1之间的虚拟哈希值,值是计算节点真实的结果分区对象。该路由表是用来当一个数据进行哈希运算后,最终根据虚拟的哈希结果查找到所属的真实结果分区对象。按照虚拟映射表来初始化路由表。
图2为本申请实施例的基于Flink引擎计算节点动态扩展的任务评价方法的节点动态扩展示意图。
如图2所示,客户端负责提交任务,同时任务进行过程中,用户在Flink的web界面观察到某个节点出现数据热点时,可以在客户端发送一条增加并行度的指令;JobManager在收到指令后,解析指令,更改相应任务的执行图的拓扑结构,并发送新增结果分区、新增计算节点和新增连接通道的指令到TaskManager;TaskManager收到指令后,增加结果分区、启动新增计算节点和增加输入通道,然后变更虚拟哈希映射表和虚拟路由表。
图3为本申请实施例的任务物理执行图。
如图3所示,开始时,每个Source算子任务接收用户数据,然后根据下游的Keyed目标算子并行度生成两个结果分区对象,并按照哈希策略将数据路由到相应的结果分区对象中;Keyed算子任务使用对应的输入通道获取上游算子处理的用户数据,处理用户数据后将数据继续输出到其结果分区中,最终Sink算子任务接收Keyed任务算子处理的数据,输出用户结果。
图4为本申请实施例的基于Flink引擎计算节点动态扩展的任务评价方法的节点扩增后任务物理执行图。
如图4所示,在目标Keyed算子任务出现数据热点时,根据作业管理器的指令,上游Source算子任务变更了虚拟哈希映射表和虚拟路由表,新增结果分区;目标Keyed算子新增了计算节点及其对应的输入通道和结果分区;下游Sink算子新增了输入通道,其中,虚线框中为新增的节点和数据结构,新增的节点和数据结构并没有影响原来的数据结构和节点。
图5为本申请实施例的基于Flink引擎计算节点动态扩展的任务评价方法的一致性哈希算法圆环示意图。
如图5所示,设定有一个环状的地址空间,环上的每个点是一个从0到232-1之间的整数值,这些数值代表着计算节点连接下游节点的虚拟分区哈希值。
图6为本申请实施例的基于Flink引擎计算节点动态扩展的任务评价方法的虚拟哈希映射表变更过程示意图。
如图6所示,初始化时虚拟哈希映射表有3个结果分区partition1、partition2、partition3,分别对应的虚拟哈希列表是[0,1,2,…,2^16]、[2^16+1,…,2^24]、[2^24+1,…,2^32-1],当partition3对应的下游节点出现数据热点时,此时当前节点会新建一个真实的结果分区partition4,然后会将partition3对应的虚拟哈希值均分一半给partition4,最终partition3对应的虚拟哈希列表是[2^24+1,…,2^31],partition4对应的虚拟哈希列表是[2^31+1,…,2^32-1]。
图7为本申请实施例的基于Flink引擎计算节点动态扩展的任务评价方法的虚拟路由表变更过程示意图。
如图7所示,根据虚拟哈希映射表的变更对虚拟路由表进行变更,具体为:将新建结果分区partition4对应的虚拟哈希值在虚拟路由表中全部指向为结果分区partition4。
图8为本申请实施例二所提供的一种基于Flink引擎计算节点动态扩展的任务评价装置的结构示意图。
如图8所示,该基于Flink引擎计算节点动态扩展的任务评价装置,包括:作业管理器,用于接收客户端发送的任务,并接收客户端在出现数据热点时发送的节点扩展指令,根据节点扩展指令修改任务的执行图的拓扑结构,并通知目标算子任务的上游算子任务增加结果分区和变更虚拟哈希映射表和虚拟路由表,其中,目标算子任务为出现数据热点的算子任务;通知任务管理器启动新增计算节点;通知目标算子任务的下游算子任务增加输入通道,其中,下游算子任务增加的输入通道对象与新增计算节点的结果分区连接;通过任务管理器根据修改后的任务的执行图的拓扑结构,对用户数据进行处理,得到任务评价结果;
任务管理器,用于接收作业管理器发送的指令,启动新增计算节点,初始化新增计算节点的输入网关和结果分区,其中,新增计算节点的输入网关与上游算子任务增加的结果分区连接;还用于根据修改后的任务的执行图的拓扑结构,对用户数据进行处理,得到任务评价结果;
客户端,用于构建任务,将任务发送至作业管理器,并在出现数据热点时发送的节点扩展指令至作业管理器。
本申请实施例的基于Flink引擎计算节点动态扩展的任务评价装置,包括作业管理器,用于接收客户端发送的任务,并接收客户端在出现数据热点时发送的节点扩展指令,根据节点扩展指令修改任务的执行图的拓扑结构,并通知目标算子任务的上游算子任务增加结果分区和变更虚拟哈希映射表和虚拟路由表,其中,目标算子任务为出现数据热点的算子任务;通知任务管理器启动新增计算节点;通知目标算子任务的下游算子任务增加输入通道,其中,下游算子任务增加的输入通道对象与新增计算节点的结果分区连接;通过任务管理器根据修改后的任务的执行图的拓扑结构,对用户数据进行处理,得到任务评价结果;任务管理器,用于接收作业管理器发送的指令,启动新增计算节点,初始化新增计算节点的输入网关和结果分区,其中,新增计算节点的输入网关与上游算子任务增加的结果分区连接;还用于根据修改后的任务的执行图的拓扑结构,对用户数据进行处理,得到任务评价结果;客户端,用于构建任务,将任务发送至作业管理器,并在出现数据热点时发送的节点扩展指令至作业管理器。由此,能够通过在出现数据热点时动态扩展计算节点,从而不影响系统的正确运行,同时没有影响到原有计算节点之间的拓扑关系,避免了重新消费数据的可能,根本上解决了Flink引擎处理数据时的数据倾斜的问题,提高了系统的数据计算速度,满足任务实时场景需求。
为了实现上述实施例,本申请还提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例的基于Flink引擎计算节点动态扩展的任务评价方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (7)
1.一种基于Flink引擎计算节点动态扩展的任务评价方法,其特征在于,应用于作业管理器,所述方法包括:
接收客户端发送的任务,其中,所述任务是所述客户端根据用户数据生成的;
接收所述客户端在出现数据热点时发送的节点扩展指令,根据所述节点扩展指令修改所述任务的执行图的拓扑结构,并通知目标算子任务的上游算子任务增加结果分区和变更虚拟哈希映射表和虚拟路由表,其中,所述目标算子任务为出现所述数据热点的算子任务;
通过任务管理器启动新增计算节点,初始化所述新增计算节点的输入网关和结果分区,其中,所述新增计算节点的输入网关与所述上游算子任务增加的结果分区连接;
通知所述目标算子任务的下游算子任务增加输入通道,其中,所述下游算子任务增加的输入通道与所述新增计算节点的结果分区连接;
通过所述任务管理器根据修改后的所述任务的执行图的拓扑结构,对用户数据进行处理,得到任务评价结果。
2.如权利要求1所述的方法,其特征在于,所述用户数据包括:用户的基本信息、消费数据、贷款数据、收入数据、社交信息中的一种或者多种。
3.如权利要求1或2所述的方法,其特征在于,所述通过所述任务管理器根据修改后的所述任务的执行图的拓扑结构,对用户数据进行处理,得到任务评价结果,包括:
通过所述任务管理器将经过上游算子任务处理的用户数据通过结果分区传输至目标算子任务的输入网关,其中,所述上游算子任务增加的结果分区与所述新增计算节点的输入网关连接;
将所述目标算子任务的输入网关接收的用户数据分至目标算子任务的N个原有计算节点和新增计算节点进行处理,将经过目标算子任务处理的用户数据通过结果分区传输至下游算子任务的输入网关,其中,所述新增计算节点的结果分区与所述下游算子任务增加的输入通道连接;
将所述下游算子任务的输入网关接收的用户数据分至下游算子任务的M个计算节点进行处理,将经过下游算子任务处理的用户数据传输至下一个算子任务继续处理;
其中,N、M为正整数。
4.如权利要求3所述的方法,其特征在于,所述根据修改后的所述任务的执行图的拓扑结构,对用户数据进行处理,得到任务评价结果,还包括:
通过初始算子任务拉取用户数据,并根据修改后的所述任务的执行图的拓扑结构传输至下一个算子任务进行处理;
通过输出算子任务将处理完成的用户数据输出,得到任务评价结果。
5.如权利要求1所述的方法,其特征在于,所述变更虚拟哈希映射表和虚拟路由表,包括:
通过上游算子任务在虚拟哈希映射表中新增新建结果分区的映射,将上游算子任务的结果分区对应的虚拟哈希值均分一半给所述新建结果分区;
根据虚拟哈希映射表,将所述新建结果分区对应的所有虚拟哈希值在虚拟路由表中全部映射为所述新建结果分区。
6.一种基于Flink引擎计算节点动态扩展的任务评价装置,其特征在于,包括:
作业管理器,用于接收客户端发送的任务,并接收客户端在出现数据热点时发送的节点扩展指令,根据所述节点扩展指令修改所述任务的执行图的拓扑结构,并通知目标算子任务的上游算子任务增加结果分区和变更虚拟哈希映射表和虚拟路由表,其中,所述目标算子任务为出现所述数据热点的算子任务;通知任务管理器启动新增计算节点;通知所述目标算子任务的下游算子任务增加输入通道,其中,所述下游算子任务增加的输入通道对象与所述新增计算节点的结果分区连接;通过所述任务管理器根据修改后的所述任务的执行图的拓扑结构,对用户数据进行处理,得到任务评价结果;
任务管理器,用于接收作业管理器发送的指令,启动新增计算节点,初始化所述新增计算节点的输入网关和结果分区,其中,所述新增计算节点的输入网关与所述上游算子任务增加的结果分区连接;还用于根据修改后的所述任务的执行图的拓扑结构,对用户数据进行处理,得到任务评价结果;
客户端,用于构建任务,将所述任务发送至作业管理器,并在出现数据热点时发送的节点扩展指令至作业管理器。
7.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-5中任一所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210306938.0A CN114817241A (zh) | 2022-03-25 | 2022-03-25 | 基于Flink引擎计算节点动态扩展的任务评价方法和装置 |
PCT/CN2022/087209 WO2023178766A1 (zh) | 2022-03-25 | 2022-04-15 | 基于Flink引擎计算节点动态扩展的任务评价方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210306938.0A CN114817241A (zh) | 2022-03-25 | 2022-03-25 | 基于Flink引擎计算节点动态扩展的任务评价方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114817241A true CN114817241A (zh) | 2022-07-29 |
Family
ID=82530399
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210306938.0A Pending CN114817241A (zh) | 2022-03-25 | 2022-03-25 | 基于Flink引擎计算节点动态扩展的任务评价方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114817241A (zh) |
WO (1) | WO2023178766A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115794064A (zh) * | 2022-10-25 | 2023-03-14 | 中电金信软件有限公司 | 任务处理流程的配置方法、装置、电子设备及存储介质 |
CN116319381A (zh) * | 2023-05-25 | 2023-06-23 | 中国地质大学(北京) | 一种通信和资源感知的数据流分组方法及系统 |
WO2024045016A1 (zh) * | 2022-08-31 | 2024-03-07 | 华为技术有限公司 | 一种节点的配置方法、装置以及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10691709B2 (en) * | 2015-10-28 | 2020-06-23 | Open Text Sa Ulc | System and method for subset searching and associated search operators |
CN111897634A (zh) * | 2020-07-06 | 2020-11-06 | 浙江大华技术股份有限公司 | 算子的运行方法及装置、存储介质、电子装置 |
CN113391907A (zh) * | 2021-06-25 | 2021-09-14 | 中债金科信息技术有限公司 | 一种任务的放置方法、装置、设备和介质 |
CN113626192A (zh) * | 2021-08-10 | 2021-11-09 | 支付宝(杭州)信息技术有限公司 | 用于对算子节点进行扩缩容调整的方法、装置及系统 |
-
2022
- 2022-03-25 CN CN202210306938.0A patent/CN114817241A/zh active Pending
- 2022-04-15 WO PCT/CN2022/087209 patent/WO2023178766A1/zh unknown
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024045016A1 (zh) * | 2022-08-31 | 2024-03-07 | 华为技术有限公司 | 一种节点的配置方法、装置以及系统 |
CN115794064A (zh) * | 2022-10-25 | 2023-03-14 | 中电金信软件有限公司 | 任务处理流程的配置方法、装置、电子设备及存储介质 |
CN115794064B (zh) * | 2022-10-25 | 2024-02-06 | 中电金信软件有限公司 | 任务处理流程的配置方法、装置、电子设备及存储介质 |
CN116319381A (zh) * | 2023-05-25 | 2023-06-23 | 中国地质大学(北京) | 一种通信和资源感知的数据流分组方法及系统 |
CN116319381B (zh) * | 2023-05-25 | 2023-07-25 | 中国地质大学(北京) | 一种通信和资源感知的数据流分组方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2023178766A1 (zh) | 2023-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114817241A (zh) | 基于Flink引擎计算节点动态扩展的任务评价方法和装置 | |
US7266649B2 (en) | Storage apparatus and area allocation method | |
US9110884B2 (en) | Message publishing and subscribing method and apparatus | |
CN112565325B (zh) | 镜像文件管理方法、装置及系统、计算机设备、存储介质 | |
CN109299190B (zh) | 分布式存储系统中处理对象的元数据的方法及装置 | |
US11188462B2 (en) | Method, device, and computer program product for managing address mapping in storage system | |
WO2015110062A1 (zh) | 一种分布式数据存储方法、装置和系统 | |
CN107733957B (zh) | 分布式服务配置系统及版本号分配方法 | |
CN113949707A (zh) | 基于OpenResty和K8S的容器云服务发现和负载均衡方法 | |
CN111338806B (zh) | 一种业务控制方法及装置 | |
EP3958122A1 (en) | Memory management method, apparatus, and system | |
CN115033722B (zh) | 一种加速图数据库数据查询的方法、系统、装置和介质 | |
Tang et al. | Optimizing inter-server communication for online social networks | |
US10642817B2 (en) | Index table update method, and device | |
US11886225B2 (en) | Message processing method and apparatus in distributed system | |
EP3745284A1 (en) | Model parameter fusion method and apparatus | |
US20240205292A1 (en) | Data processing method and apparatus, computer device, and computer-readable storage medium | |
US11108854B2 (en) | Peer-to-peer network for internet of things resource allocation operation | |
CN113010570B (zh) | 电网设备矢量数据查询方法、装置、计算机设备和介质 | |
CN114461149B (zh) | 一种基于K8s的分布式数据存储方法及装置 | |
CN110971647A (zh) | 一种大数据系统的节点迁移方法 | |
US10990429B2 (en) | Rule-based reallocation of hosted compute resources | |
WO2021188303A1 (en) | Location-aware routing for east-west data traffic | |
Yoshihisa et al. | A low-load stream processing scheme for IoT environments | |
CN115834532B (zh) | Ad域用户到存储系统的映射方法、装置、设备及介质 |
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 |