如何在Flink中加载外部jar

时间:2018-12-18 06:40:52

标签: java apache-flink

当我以独立集群模式将作业提交给Flink时,我发现taskManager每次都会从jobManager中获取jar(即使对于同一个jar),这也需要很长时间。我想知道是否有可能将这些jar保留在每个工作程序节点中,以便它们将在每次运行时自动在本地加载jar。

2 个答案:

答案 0 :(得分:0)

部署集群时,lib文件夹中的任何jar都将对集群中的节点可用。 lib文件夹通常包含flink-dist _ *。jar。

如果每个工作都需要一个库,那么您可以将其放置在那里。只需记住,当您更改库时,这意味着您必须关闭群集并重新部署它,这可能会很痛苦。

答案 1 :(得分:0)

您可以仅使用内部代码/逻辑创建一个最小的jar,并确保您依赖的所有jar在/lib文件夹中可用(根据Arthur的建议)。这将使从JobManager提取jar所需的时间最少。 This Flink documentation说(在某些情况下)应该有可能避免必须加载任何动态jar,但是我从未尝试过这样做。