Flink类加载机制详解

打印 上一主题 下一主题

主题 832|帖子 832|积分 2496

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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

杀鸡焉用牛刀

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表