当我重命名Apache Apex应用程序时,Kafka运算符是否会发生语义更改?

时间:2016-04-28 15:54:43

标签: apache-kafka apache-apex

我认为在我们重命名应用程序的那一刻,Kafka运算符的语义将完全改变并且可能最终从" initialOffset"通过应用程序代码?

如何为"应用程序名称"的定义维护语义? ?

应用程序代码的每次部署是否都会导致新的应用程序,或者只是使用@ApplicationAnnotation(name ="")实例来定义这个含义?

2 个答案:

答案 0 :(得分:2)

您始终可以使用-originalAppId启动应用程序,操作员应从原始应用程序停止的位置继续运行。如果您使用kafka 0.9运算符并且启动具有相同名称的应用程序,则可以将initialOffset设置为“application_or_latest”或“application_or_earliest”,因此运算符应该从上次运行中处理的偏移量继续。不同之处在于,如果指定-originalAppId,则从检查点恢复偏移,而另一个在kafka本身中存储偏移。

答案 1 :(得分:1)

您可以使用-originalAppId参数从之前的状态启动应用程序,并从之前运行的检查点状态提供纱线应用程序ID,它应该适用于dag中的所有运算符,包括kafka输入运算符。您还可以使用属性dt.attr.APPLICATION_NAME为应用程序提供新名称。

例如: launch pi-demo-3.4.0-incubating-SNAPSHOT.apa -originalAppId application_1459879799578_8727 -Ddt.attr.APPLICATION_NAME="pidemo v201"