2016-10-13 4 views
1

私はSpark Streaming kafka統合ガイドをKafka 010バージョンに基づく最新のドキュメントページで読んでいました。私が見ることができるという点で、グループIDを使用したSpark Streaming Direct Streamアプローチ

http://spark.apache.org/docs/latest/streaming-kafka-0-10-integration.html#creating-a-direct-stream

カフカのparamsの一つは、私は、我々はDirectStreamのアプローチを使用する場合、パラメータの一つとしてgroup.idを渡すために持っていけないと思った"group.id" -> "example"

です。私はこのドキュメントを混乱させる。 group.idとSpark Streaming Direct Streamのアプローチの関係は何ですか?

答えて

0

group.idは、各カフカパーティションをグループ内の1つのノードに正確に割り当てることができるように、一連のコンシューマプロセスをグループにグループ化するために使用されるカフカコンシューマ構成です。

Kafka Consumer Configurationでは、カフカベースのオフセット管理(Spark Streamingは直接アプローチでは使用しません)を使用しない限り、このパラメータはオプションです。したがって、オプションのパラメータにする必要があります。

また、Spark Kafka Direct DStreamのソースコードを見ると、sparkはクライアントが設定しない他のKafkaパラメータを追加しません。従ってgroup.idは、指定されていなければ、デフォルトで空の文字列になります。

一般に、同じカフカトピックの複数のコンシューマ(スパークストリーミングジョブ、akkaアプリケーションなど)があり、そのすべてが同じになることを望まない場合は、コンシューマグループIDが必要ですグループ(あなたがグループidをそれらのすべてに渡さない場合は、それらのグループになります)。ですから、各消費者グループに独自のグループIDを付けるのがよい方法です。カフカ周辺の運用ツールを使用する場合は、適切な名前を付けておくと、各消費者グループについても表示されます。

+0

ダイレクトストリームアプローチではコンシューマーグループが存在しないため、私の理解では 'group.id'はダイレクトストリームでは必要ないので、私の質問はダイレクトストリームアプローチに固有です。 – Shankar

+0

私の理解によれば、カフカのすべての消費者は消費者団体の一員でなければなりません。特定のグループIDを指定することができます。カフカの消費者グループは、グループ内の消費者にトピックのパーティションを配布する基本的な部分です。トピックの各オフセットは、グループごとおよびパーティションごとに維持されます。 –

+0

しかし、Spark StreamingのdirectStreamアプローチでは、カフカパーティションとRDDパーティションの間に1対1のマッピングがあるため、コンシューマグループロジックはありません。これを確認してくださいhttp://spark.apache.org/docs/latest/streaming-kafka-0-8-integration.html#approach-2-direct-approach-no-receivers – Shankar

関連する問題