2016-04-28 3 views
1

私はアプリケーションの名前を変更する瞬間、Kafka演算子のセマンティクスが完全に変更され、アプリケーションコードによって "initialOffset"から読み込まれる可能性があるとします。Apache Apexアプリケーションの名前を変更すると、Kafka演算子の意味が変わるのですか?

"アプリケーション名"の定義にはどのようにセマンティクスが維持されていますか?

アプリケーションコードがデプロイされるたびに、新しいアプリケーションが生成されるか、@ApplicationAnnotation(name = "")インスタンスを使用してこの意味を定義していますか?

答えて

1

-originalAppIdパラメータを使用して以前の状態からアプリケーションを起動し、以前の実行のチェックポイント状態から糸アプリケーションIDを提供することができます。これはkafka入力演算子を含むダグ内のすべての演算子に適用する必要があります。属性dt.attr.APPLICATION_NAMEを使用して、アプリケーションの新しい名前を指定することもできます。

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

2

あなたは常に元のアプリは左オフから継続すべき作業を-originalAppId使用してアプリケーションを起動することができます。 kafka 0.9オペレータを使用していて、同じ名前のアプリケーションを起動する場合、initialOffsetを "application_or_latest"または "application_or_earliest"に設定することができます。これにより、最後に実行されたオフセットからオペレータが継続する必要があります。違いは、-originalAppIdを指定すると、オフセットはチェックポイントからリストアされ、他のオフセットはkafka自体に格納されます。

関連する問題