当打包一个flink作业(例如使用一些flink连接器和一些第三方库(用于处理)时,哪些依赖项应该在jobs jar中结束,以便可以在flink集群中使用(“flink run[jarfile]”)启动它?做一个胖jar是理想的方法吗?如果用scala编写作业,jar中是否包含scala默认库?我没有找到任何文件,说明如何 Package 一份工作的flink一旦写好。
kmbjn2e31#
是的,胖jar是打包flink工作的标准方法。flink发行版中包含的所有内容都不能包含在内(例如,java和scale默认库,flink核心,…)。只有一些未包含的flink库(加上用户定义的外部依赖项)必须包含在fatjar中。您可以遵循flink文档中的指南:https://ci.apache.org/projects/flink/flink-docs-release-1.0/apis/cluster_execution.html#linking-不包含在二进制分布中的模块这可能也有帮助:https://ci.apache.org/projects/flink/flink-docs-release-1.0/apis/common/index.html#program-打包和分布式执行
1条答案
按热度按时间kmbjn2e31#
是的,胖jar是打包flink工作的标准方法。flink发行版中包含的所有内容都不能包含在内(例如,java和scale默认库,flink核心,…)。只有一些未包含的flink库(加上用户定义的外部依赖项)必须包含在fatjar中。
您可以遵循flink文档中的指南:https://ci.apache.org/projects/flink/flink-docs-release-1.0/apis/cluster_execution.html#linking-不包含在二进制分布中的模块
这可能也有帮助:https://ci.apache.org/projects/flink/flink-docs-release-1.0/apis/common/index.html#program-打包和分布式执行