Apache flink flink流媒体中如何动态序列化参数
我有一个参数Apache flink flink流媒体中如何动态序列化参数,apache-flink,flink-streaming,Apache Flink,Flink Streaming,我有一个参数params要在flink streaming中序列化 class P extend Serializable {...} val params = new P(...) val env = StreamExecutionEnvironment.getExecutionEnvironment env.addSource(new MySource(params)) .map(new MyMap(params)) .addSink(new MySink(params)) e
params
要在flink streaming中序列化
class P extend Serializable {...}
val params = new P(...)
val env = StreamExecutionEnvironment.getExecutionEnvironment
env.addSource(new MySource(params))
.map(new MyMap(params))
.addSink(new MySink(params))
env.setParallelism(1)
env.execute("My Job")
但是,在驱动程序节点中,params会发生变化,我需要在作业运行期间将
params
更新到executor。基于flink流媒体作业的不停止是否可能?简而言之,答案是否定的。因为您的UDF将需要在每次新记录出现时对参数进行[反]序列化,这将降低执行速度
但是,您可以通过扩展并在中调用流操作符来实现自己的流操作符。我在这里举了一个例子:“
然后决定何时读取新参数的运算符。例如,只需创建一个新的线程,该线程计划为每10分钟一次。参数文件必须放置在操作员将要运行的所有节点上