2017-12-01 4 views
3

私はKafkaストリーミングアプリケーションを作成しました。私はKafkaクラスタに展開したいと思います。だから私は、jarファイルを構築し、コマンドを使用して、それを実行します。カフカストリーミングアプリケーションをKafkaクラスタに展開する方法

java -jar KafkaProcessing-1.0-SNAPSHOT-jar-with-dependencies.jar testTopic kafka1:9092,kafka2:9092 zookeeper1:2181,zookeeper2:2181 output 

それは正しく動作しますが、ジョブが、私は上記のコマンドを実行マシン上で実行されています! BOOTSTRAP-SERVERSと指定すると、自動的にホストマシンではなくクラスタでコンピューティングが実行されると思いました。

私の質問は、カフカストリーミングジョブをカフカクラスターに提出する方法です。 クラスタにアプリケーションを展開するには、​​とflink runのコマンドを提供するSparkとFlinkのようにします。

答えて

1

Kafkaストリームは、Spark/Flinkのようなクラスタオーケストレーションは必要ありません。開始と停止が可能な通常のアプリケーションで、開始すると拡大縮小されます。ダウン。内部的には、他のカフカの消費者と同様に、データ処理を調整するためにカフカを使用しています。

Kubernetes、Docker Swarmなどのプラットフォームをお持ちの場合は、アプリをDockerにパックして、そのプラットフォームを使用してKafka Streamsアプリを実行できます。

+0

カフカストリーミングは並列処理エンジンではありませんか? – soheil

+0

これは、並列でデータを処理することができますが、インスタンス内のスレッド数を増やすことはできますが、同じコードを実行します。詳細な説明については、https://stackoverflow.com/questions/39985048/kafka-streaming-concurrencyを参照してください。 –

+1

詳細については、https://www.confluent.io/blog/elastic-scaling-in-kafka-streams/を参照してください。弾性スケーリング。つまり、アプリケーションの複数のインスタンスを実行するだけです。 5倍の処理能力が必要ですか? 5つのインスタンスを実行します。 10倍が必要ですか? 10のインスタンスを実行します。等々。 Spark、Flink、StormのKafka Streamsのメリットの1つは、ライブ操作中(停止時間なし)で並列処理を変更できることです。アプリケーションの実行中にインスタンスを追加/削除して処理能力を追加/削除できます。 –

1

私の組織では、kafkaストリームアプリケーションを使用しています。私たちはサーバーに展開するこのオプションを検討しました。この施設は単に提供されていません。カフカストリームアプリケーションは、実行している場所であればどこでも実行できます。ジョブの提出オプションはまだありません。

+0

どのように私たちは並列性のレベルを設定することができます。それは並行して実行するように設計されていますか? – soheil

+0

現在、異なるマシンが並行して動作し、ストリームを実行しています。あなたはおそらくそのように下に行くこともできます。 –

+0

FlinkやStormのような他のストリーム処理エンジンを意味していますか? – soheil

関連する問題