每个 Flink 程序都依赖于一组 Flink 库.
Flink 本身由一组类和运行需要的依赖组成. 所有类和依赖的组合形成了 Flink 运行时的核心, 并且当一个 Flink 程序运行时必须存在.
这些核心类和依赖被打包成 flink-dist.jar.
为了在默认情况下避免过多的依赖关系和类在 classpath 中, Flink 核心依赖不包含任何连接器或库 (CEP, SQL, ML, etc.). 我们应该尽可能保持核心依赖 "苗条" 去保持默认 classpath 较小, 避免依赖冲突.
用户应用程序依赖关系都是连接器, 格式, 或一个特定的用户应用程序的需要的库.
用户应用程序通常是打包成一个 jar 包, 它包含应用程序代码和所需的连接器和库依赖.
用户应用程序依赖关系明确不包括 FlinkDataSet/ DataStream APIs 和运行时依赖, 因为这些已经是 Flink 核心依赖关系的一部分.
来源: http://www.bubuko.com/infodetail-2714568.html