Flink类加载机制详解

devtools/2025/1/22 15:10:28/

1. 总览

在运行Flink应用时,它会加载各种类,另外我们用户代码也会引入依赖,由于他们依赖版本以及加载顺序等不同,就可能会导致冲突,所以很要必要了解Flink是如何加载类的。

根据加载的来源的不同,我们可以将类分为三种:

  • Java Classpath:Java类路径下,这是Java通用的类路径,包含JDK库和Flink的/lib文件夹中的所有代码(Flink的Apache类和一些依赖)。它们由AppClassLoader加载。
  • Flink Plugin Components:Flink插件组件,插件代码存放在Flink的/plugins文件夹中。Flink的插件机制将在启动时动态加载它们一次。
  • Dynamic User Code:动态用户代码,这些类都包含在动态提交的作业的JAR文件中(通过REST、CLI、web UI)。每个作业由FlinkUserCodeClassLoader动态加载(和卸载)。

根据不同的应用部署模式,类加载过程是不同的。

一般来说,只要先启动Flink进程,再提交作业,作业的类就会动态加载。如果Flink进程与作业/应用(job/application)一起启动,或者应用生成Flink组件(JobManager、Tas

文章来源:https://blog.csdn.net/chanyue123/article/details/145052519
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ppmy.cn/devtools/150606.html

相关文章

LabVIEW智能水肥一体灌溉控制系统

本文详细介绍了一种基于LabVIEW的智能水肥一体灌溉控制系统的设计与实现。该系统采用模糊控制策略,能够自动调节土壤湿度和肥液浓度,满足不同作物在不同生长阶段的需求,有效提高水肥利用效率,对现代精准农业具有重要的实践和推广价…

MATLAB中rescale函数用法

目录 语法 说明 示例 缩放到单位区间 缩放到指定范围 缩放矩阵列和行 rescale函数的功能是数组元素的缩放范围。 语法 R rescale(X) R rescale(X,a,b) R rescale(___,Name,Value) 说明 R rescale(X) 将 X 的条目缩放到区间 [0,1]。输出数组 R 的大小与 X 相同。 R…

ElectronSharp,.Net跨平台的多一种选择

文章目录 背景解决方案小结 背景 最近有个项目是基于Blazor的跨平台项目,要求在Windows、安卓平板和Mac上能跑,而且要求实现视频通话功能,而Web里的视频通话无非就是基于WebRTC技术。经过前期调研,通过套壳MAUI,Windo…

PyCharm 引用其他路径下的文件报错 ModuleNotFound 或报红

PyCharm 中引用其他路径下的文件提示 ModuleNotFound,将被引用目录添加到系统路径: # # 获取当前目录 dir_path os.path.dirname(os.path.realpath(__file__)) # # 获取上级目录 parent_dir_path os.path.abspath(os.path.join(dir_path, os.pardir))…

【进程与线程】程序和进程在内存中的表现

在计算机系统中,程序和进程是两个密切相关但又有本质区别的概念,尤其在内存中的表现上有显著不同: 在这张图中可以直观地看出程序和进程在内存中的结构区别。 基本定义 程序 程序 是一个 静态实体,表示一组写好的指令和数据的…

matlab GUI 打包成exe可执行文件

1、在命令行窗口输入deploytool回车,选择第一个。 2.选择刚刚gui的.mlapp程序(Mortgage.mlapp) 3、右上角Settings(1)中可以更改生成的路径, (2)可以替换exe的图标缩量图,默认就是下图 (3)是指示…

python检测gitlab中某个标签在一个月内添加和移除了多少次

可以通过 Python 脚本和 GitLab API 检测一个标签在一个月内被添加和移除的次数。以下是实现的步骤和示例代码: 步骤 获取 GitLab API 访问令牌:在 GitLab 中生成一个 Personal Access Token。设置时间范围:确定一个月的时间范围。调用 Git…

client-go 的 QPS 和 Burst 限速

1. 什么是 QPS 和 Burst ? 在 kubernetes client-go 中,QPS 和 Burst 是用于控制客户端与 Kubernetes API 交互速率的两个关键参数: QPS (Queries Per Second) 定义:表示每秒允许发送的请求数量,即限速器的平滑速率…