假设我有一个可执行的jar文件,里面没有任何flink代码,我的工作就是用flink分发它。我已经在代码中的某个地方创建并执行了streamexecutionenvironment,并将jar的代码放在flink操作符(即map函数)中,从而完成了这一步。
昨天,我被要求做一个类似的工作,但很少努力。他们告诉我要找到一种方法来 Package 这个没有flink的jar,使它可以由flink集群执行(不需要像上面那样注入代码和修改jar)。有办法吗?文档指出,要支持从打包的jar执行,程序必须使用streamexecutionenvironment.getexecutionenvironment()获得的环境。没有别的办法了吗?
我现在唯一的猜测就是把jar的入口包起来。把它放在flink操作符中,但不幸的是,我不知道这个jar有
1条答案
按热度按时间ljsrvy3e1#
您可以编写一个map-only程序并将其打包到jar中。在Map中,通过所提供jar的反射执行main。
您的小 Package 器可以放入flink lib中,以供其他jar重用,或者您可以将另一个jar添加到分布式缓存中。
顺便说一句,我还没有完全理解这个用例,或者我觉得很奇怪,因为我不清楚并行应该如何工作。很抱歉,如果答案没有帮助。