CN116166440A - 一种基于动态管理的flink流批一体数据处理方法 - Google Patents
一种基于动态管理的flink流批一体数据处理方法 Download PDFInfo
- Publication number
- CN116166440A CN116166440A CN202310190838.0A CN202310190838A CN116166440A CN 116166440 A CN116166440 A CN 116166440A CN 202310190838 A CN202310190838 A CN 202310190838A CN 116166440 A CN116166440 A CN 116166440A
- Authority
- CN
- China
- Prior art keywords
- flink
- container
- dynamic
- calculation
- node
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于动态管理的FLINK流批一体数据处理方法,包括以下步骤:S1:通过Flink客户端将Flink代码提交到代码托管平台;S2:提交通过后,通过容器构建工具自动构建镜像;S3:完成构建镜像后,根据不同场景创建相应的任务并启动容器进行运算。简化复杂度能够在一般企业落地实施,降低了使用门槛,对开发者而言不再需要在意复杂的Flink集群的运维工作以及开发环境和集群环境的匹配工作,让工作复杂度大大降低,实现资源共享,即用即申请,提高资源的利用效率,可以为企业节省不必要的资源开销,并且依据本产品的动态计算功能,可以很好地利用有限的资源更加灵活地完成计算任务。
Description
技术领域
本发明涉及Flink集群技术领域,尤其涉及一种基于动态管理的FLINK流批一体数据处理方法。
背景技术
阿里巴巴实时计算团队提出“流批一体”的理念,因此在这个流批一体理念的引导下,现在主流的流批一体计算都是依托Flink框架进行的。
然而,Flink集群维护复杂,存在一些一般企业无法使用的问题,如:
Flink集群日常运维成本高的问题,在数字化转型的工业领域,缺乏相关的专业运维工程师;开发运维相互割裂,开发效率低的问题;在使用k8s等容器云平台进行flink容器管理时,存在集群节点负载不均衡的情况,使得工业数字化领域较为有限的计算资源和内存资源难以稳定高效地完成任务;结合容器化Flink特点考虑容器间通信开销对节点负载均衡的影响,有些针对Flink任务调度的优化工作只停留在任务分配阶段,而不能在运行时动态调整,不够灵活。
因此,亟需一种基于动态管理的FLINK流批一体数据处理方法。
发明内容
本发明的目的是为了解决现有技术中存在的缺陷,而提出的基于动态管理的FLINK流批一体数据处理方法。
为了实现上述目的,本发明采用了如下技术方案:
一种基于动态管理的FLINK流批一体数据处理方法,包括以下步骤:
S1:通过Flink客户端将Flink代码提交到代码托管平台;
S2:提交通过后,通过容器构建工具自动构建镜像;
S3:完成构建镜像后,根据不同场景创建相应的任务并启动容器进行运算;
S4:进行动态计算,在运算结束后通过容器编排工具自动清理所有的Flink组件;
S5:数据完成动态计算后,结果存入数据库进行持久化用于后续的数据服务开发,同时,运算资源在运算完成后自动释放,完成任务动态的创建和销毁。
进一步地,代码托管平台用于实现代码依赖检查、语法检查功能。
容器构建工具用于将用户代码与Flink镜像捆绑在一起,将捆绑后构建的容器放入容器编排工具上运行。
容器编排工具用于进行计算资源分配和动态计算结束后的Flink组件的回收工作。
进一步地,在步骤S3中,容器编排工具为k8s,当Flink容器在K8s容器编排工具上进行运行时,引入Trimaran实时负载感知调度插件,用于为k8s容器服务集群搭建相应的Prometheus监控告警系统对集群的相应资源进行监控。
进一步地,在步骤S3中,任务需要的不同类型的资源的综合利用率,计算方式如下:
其中,mem表示节点中的内存利用率,cpu表示cpu利用率,net表示节点网络带宽的使用率。ω1为内存指标的权重,ω2为CPU指标的权重,ω3为网络带宽指标的权重,三者值依据具体的工业数字化生产中的常见场景设定分别为0.6、0.2、0.2,RU值为容器编排工具集群中各节点的资源利用率的综合指数,其中:
RU值越大,节点中的资源利用率越高,负载越大,将计算节点按RU值从大到小进行降序排列,则排列越靠前的节点,进行调度绑定的优先级越高。
进一步地,在步骤S4中,数据在完成动态计算后的结果存入数据库进行持久化用于后续的数据服务开发,运算资源在运算完成后自动释放,用于实现在Flink任务需要计算的时候动态的创建和销毁。
相比于现有技术,本发明的有益效果在于:
简化复杂度能够在一般企业落地实施,降低了使用门槛,对开发者而言不再需要在意复杂的Flink集群的运维工作以及开发环境和集群环境的匹配工作,让工作复杂度大大降低。
提高人的效率,让开发者更多的精力集中在Flink程序的设计与开发,省去了大量的运维工作时间;
实现资源共享,即用即申请,提高资源的利用效率,可以为企业节省不必要的资源开销,并且依据本产品的动态计算功能,可以很好地利用有限的资源更加灵活地完成计算任务,
借助k8s支持的Trimaran实现了适用于工业数字化生产中常见的流处理场景的资源调度策略在有限的计算资源的情况下,提高资源的利用率。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。
图1为本发明提出的基于动态管理的FLINK流批一体数据处理方法的架构图;
图2为本发明提出的基于动态管理的FLINK流批一体数据处理方法的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
如图1-2所示,一种基于动态管理的FLINK流批一体数据处理方法,包括以下步骤:
S1:通过Flink客户端将Flink代码提交到代码托管平台;
S2:提交通过后,通过容器构建工具自动构建镜像;
S3:完成构建镜像后,根据不同场景创建相应的任务并启动容器进行运算;
S4:进行动态计算,在运算结束后通过容器编排工具自动清理所有的Flink组件;
S5:数据完成动态计算后,结果存入数据库进行持久化用于后续的数据服务开发,同时,运算资源在运算完成后自动释放,完成任务动态的创建和销毁。
在本实施例中,代码托管平台优先选用gitee、容器构建工具例优先选用drone、容器编排工具优先选用k8s。
另外,在本实施例中,代码托管平台用于实现代码依赖检查、语法检查等功能,这部分与传统的代码托管平台如gitlab的功能相一致。
容器构建工具用于将用户代码与Flink镜像捆绑在一起,将捆绑后构建的容器放入容器编排工具如k8s等上运行。
容器编排工具用于进行计算资源分配和动态计算结束后的Flink组件的回收工作。
在本申请的具体实施例中,在步骤S3中,容器编排工具为k8s,当Flink容器在K8s容器编排工具上进行运行时,引入Trimaran实时负载感知调度插件,用于为k8s容器服务集群搭建相应的Prometheus监控告警系统对集群的相应资源进行监控。
在步骤S3中,任务需要的不同类型的资源的综合利用率,计算方式如下:
其中,mem表示节点中的内存利用率,cpu表示cpu利用率,net表示节点网络带宽的使用率。ω1为内存指标的权重,ω2为CPU指标的权重,ω3为网络带宽指标的权重,三者值依据具体的工业数字化生产中的常见场景设定分别为0.6、0.2、0.2,RU值为容器编排工具集群中各节点的资源利用率的综合指数,其中:
RU值越大,节点中的资源利用率越高,负载越大,将计算节点按RU值从大到小进行降序排列,则排列越靠前的节点,进行调度绑定的优先级越高。
在本申请的具体实施例中,在步骤S4中,数据在完成动态计算后的结果存入数据库进行持久化用于后续的数据服务开发,运算资源在运算完成后自动释放,用于实现在Flink任务需要计算的时候动态的创建和销毁。
由上述可知,用户在面临需要使用Flink进行流批一体计算的时候,无需考虑Flink集群的部署及运维工作,只需将Flink代码提交,即可基于后续的动态计算过程进行计算。同时提供相应的前端界面供用户进行可视化的控制,极大地简化了用户的运维工作量。
基于容器编排系统,可以做到对需要利用Flink进行流批一体计算的场景随时分配资源构建容器进行计算,在计算完成时容器资源自动回收。在Flink任务需要计算的时候动态的创建和销毁。
适用于工业数字化生产中常见的流处理场景的资源调度策略:借助k8s支持的Trimaran实现了我们设计的适用于工业数字化生产中常见的流处理场景的资源调度策略在有限的计算资源的情况下,提高资源的利用率。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
Claims (5)
1.一种基于动态管理的FLINK流批一体数据处理方法,其特征在于,包括以下步骤:
S1:通过Flink客户端将Flink代码提交到代码托管平台;
S2:提交通过后,通过容器构建工具自动构建镜像;
S3:完成构建镜像后,根据不同场景创建相应的任务并启动容器进行运算;
S4:进行动态计算,在运算结束后通过容器编排工具自动清理所有的Flink组件;
S5:数据完成动态计算后,结果存入数据库进行持久化用于后续的数据服务开发,同时,运算资源在运算完成后自动释放,完成任务动态的创建和销毁。
2.根据权利要求1所述的基于动态管理的FLINK流批一体数据处理方法,其特征在于,代码托管平台用于实现代码依赖检查、语法检查功能;
容器构建工具用于将用户代码与Flink镜像捆绑在一起,将捆绑后构建的容器放入容器编排工具上运行;
容器编排工具用于进行计算资源分配和动态计算结束后的Flink组件的回收工作。
3.根据权利要求2所述的基于动态管理的FLINK流批一体数据处理方法,其特征在于,在步骤S3中,容器编排工具为k8s,当Flink容器在K8s容器编排工具上进行运行时,引入Trimaran实时负载感知调度插件,用于为k8s容器服务集群搭建相应的Prometheus监控告警系统对集群的相应资源进行监控。
5.根据权利要求4所述的基于动态管理的FLINK流批一体数据处理方法,其特征在于,在步骤S4中,数据在完成动态计算后的结果存入数据库进行持久化用于后续的数据服务开发,运算资源在运算完成后自动释放,用于实现在Flink任务需要计算的时候动态的创建和销毁。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310190838.0A CN116166440A (zh) | 2023-03-01 | 2023-03-01 | 一种基于动态管理的flink流批一体数据处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310190838.0A CN116166440A (zh) | 2023-03-01 | 2023-03-01 | 一种基于动态管理的flink流批一体数据处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116166440A true CN116166440A (zh) | 2023-05-26 |
Family
ID=86414649
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310190838.0A Pending CN116166440A (zh) | 2023-03-01 | 2023-03-01 | 一种基于动态管理的flink流批一体数据处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116166440A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116629805A (zh) * | 2023-06-07 | 2023-08-22 | 浪潮智慧科技有限公司 | 一种分布式流批一体化的水利指标服务方法、设备及介质 |
-
2023
- 2023-03-01 CN CN202310190838.0A patent/CN116166440A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116629805A (zh) * | 2023-06-07 | 2023-08-22 | 浪潮智慧科技有限公司 | 一种分布式流批一体化的水利指标服务方法、设备及介质 |
CN116629805B (zh) * | 2023-06-07 | 2023-12-01 | 浪潮智慧科技有限公司 | 一种分布式流批一体化的水利指标服务方法、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108829494B (zh) | 基于负载预测的容器云平台智能资源优化方法 | |
CN108924198B (zh) | 一种基于边缘计算的数据调度方法、装置及系统 | |
CN109993299A (zh) | 数据训练方法及装置、存储介质、电子装置 | |
CN109740755A (zh) | 一种基于梯度下降法的数据处理方法及相关装置 | |
CN111831355B (zh) | 权重精度配置方法、装置、设备及存储介质 | |
CN111880911A (zh) | 一种任务负载调度方法、装置、设备及可读存储介质 | |
CN115134371A (zh) | 包含边缘网络算力资源的调度方法、系统、设备及介质 | |
CN116166440A (zh) | 一种基于动态管理的flink流批一体数据处理方法 | |
CN111831359A (zh) | 权重精度配置方法、装置、设备及存储介质 | |
CN117271101B (zh) | 一种算子融合方法、装置、电子设备及存储介质 | |
CN110580019A (zh) | 一种面向边缘计算的设备调取方法与装置 | |
CN103617083A (zh) | 存储调度方法和系统、作业调度方法和系统及管理节点 | |
CN111831356B (zh) | 权重精度配置方法、装置、设备及存储介质 | |
CN113238866A (zh) | 一种云制造模式下制造任务的分解方法 | |
CN116932147A (zh) | 流式作业处理方法、装置、电子设备及介质 | |
Swarnakar et al. | A novel improved hybrid model for load balancing in cloud environment | |
CN112598112B (zh) | 一种基于图神经网络的资源调度方法 | |
CN111915102A (zh) | 一种基于负载预测的工作平台工作量预测方法及系统 | |
CN110515595B (zh) | 一种航空电子分布式管理系统的资源建模及管理方法 | |
CN111427687A (zh) | 一种人工智能云平台 | |
Miloradović et al. | Multi-Criteria Optimization of Application Offloading in the Edge-to-Cloud Continuum | |
CN107729150A (zh) | 一种异构集群安监设备最小能耗节点的寻址方法 | |
CN117131486B (zh) | 基于cad软件云化部署下的机械装备协同设计方法及系统 | |
CN113485718B (zh) | 面向边云协同系统中的上下文感知AIoT应用程序部署方法 | |
CN117762632B (zh) | 一种基于算力操作系统的算力管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |