Flink 添加 / 部署 Jar 包可根据 Jar 包的声明周期、作用范围选择不同的附属方式,从实际应用上来看,可以分成以下几种场景:
- 普遍使用的框架或基础设施级别的 Jar 包,例如 Kafka、Hive、Hudi 等 Connector 的Jar 包,应该部署到
${FLINK_HOME}/lib
目录下,这样所有应用均可使用。但要记住:这需要重启应用或启动新的 Yarn Session 才会生效 - 使用 Flink SQL Client 时,如果 Jar 包已经部署到
${FLINK_HOME}/lib
目录下,是会被自动加载的,但同样要启动新的 Yarn Session 才会生效!如果是临时性的 Jar 包,或者是应用/Session级别特定的 Jar 包,不适合启动任何程序都要加载,则可以通过-j 1.jar -j 2.jar
的形式,在启动 SQL Client 时加载 - 当然,使用
ADD JAR '/path/hello.jar';
同样也是一个不错的选择!