假设我有一个可执行的jar文件,里面没有任何flink代码,我的工作是让它与flink一起分发。我已经在代码中的某个地方创建并执行了StreamExecutionEnvironment,并将可以分发的jar代码放在flink运算符(即映射函数)中,从而做到了这一点。
昨天,我被要求做一项类似的工作,但只需很少的努力。他们告诉我要找到一种方法来包装这个无flink的jar,这样它就可以被flink集群执行(不需要像我上面那样注入代码和修改jar )。有没有办法做到这一点?jar声明,为了支持从打包的jar执行,程序必须使用由StreamExecutionEnvironment.getExecutionEnvironment()".获得的环境没有别的办法了吗?
我现在唯一的猜测是包装jar的入口点。将它放在flink运算符中,但不幸的是,我不知道这个jar是否可以
发布于 2020-06-02 22:00:32
您可以编写一个只有map的程序并将其打包到jar中。在map中,您通过反射所提供的jar来执行main。
您的小包装器可以放入Flink lib中,以供其他jar重用,或者您可以将其他jar添加到distributed cache中。
顺便说一句,我还没有完全理解这个用例,或者我觉得很奇怪,因为我不清楚并行是如何工作的。如果答案不起作用,我很抱歉。
https://stackoverflow.com/questions/62149282
复制相似问题