【发布时间】:2021-05-04 23:45:20
【问题描述】:
我正在尝试使用保存点停止我的工作,然后使用相同的保存点再次启动它。就我而言,我更新了我的工作,并用新的 jar 为它创建了新版本。这是我的代码示例;
class Reader(bla bla) {
def read() = {
val ds = readFromKafka()
transform(ds)
}
def transform(ds: DataStream[]) = {
ds.map()
}
}
object MyJob {
def run () = {
val data = new Reader().read()
data.keyBy(id).process(new MyStateFunc).uid("my-uid") // then write to kafka
}
}
在这种情况下,我确实使用保存点停止了作业,然后使用具有相同 jar 的相同保存点启动它。然后,我像这样向我的阅读器添加一个过滤器;
class Reader(bla bla) {
def read() = {
val ds = readFromKafka()
transform(ds)
}
def transform(ds: DataStream[]) = {
ds.map().filter() // FILTER ADDED HERE
}
}
我用保存点停止了我的工作,它有效。然后我尝试使用相同的保存点部署具有新版本(新过滤方法)的作业,它无法匹配操作员并且作业未部署。为什么?
【问题讨论】:
标签: apache-flink flink-streaming