1.美图
2.概述
默认情况下,Flink启动JVM进程时,会使用系统环境变量里的PATH路径。当然,如果要使用自定义的Java 版本,可以指定JAVA_HOME 环境变量,或是Flink配置文件里的env.java.home 参数。Flink的JVM进程在启动时,也可以配置自定义的JVM 选项(例如 gc 参数),配置的参数为env.java.opts
,或者``env.java.opts.jobmanager
,以及 env.java.opts.taskmanager
.
如果执行的Flink任务使用的是外部依赖(而不是系统本地依赖),则一般不会有Classloading(类加载)的问题。在执行一个Flink应用时,此Flink程序jar包中所有的classes都必须通过一个classloader载入。Flink会将每个job的classes注册到一个独立的user-code classloader中,以确保执行的job的依赖不会与Flink的runtime依赖、或者其他job的依赖产生冲突。User-code class loaders 在job停掉的时候,会被清除。Flink系统的class loader会载入 lib 目录下所有的jar 包文件,而user-code classloaders 亦是源于Flink系统的classloader。
默认情况下,Flink首先在child classloader(也就是user-code classloader)中查询user-code classes,然后