createDirectStream を使用して Spark Streaming を実装しました。私の Kafka プロデューサーは、2 つのパーティションを持つトピックに毎秒複数のメッセージを送信しています。
Spark ストリーミング側では、毎秒カフカ メッセージを読み取り、5 秒のウィンドウ サイズと頻度でそれらをウィンドウ処理しています。
Kafka メッセージは適切に処理されています。正しい計算と出力が表示されています。
しかし、Spark Web UI の [ストリーミング] セクションでは、ウィンドウごとのイベント数がゼロとして表示されます。この画像を見てください:
Spark Stream にフィードされている Kafka メッセージの数を表示するべきではないのに、なぜゼロと表示されているのか不思議です。
更新しました:
groupByKeyAndWindow() api を使用すると、この問題が発生するようです。コードからこの API の使用法をコメントアウトすると、Spark Streaming UI は Kafka イベントの入力サイズを正しく報告し始めました。
これはなぜですか?これは Spark Streaming の欠陥でしょうか?
Cloudera CDH: 5.5.1、Spark: 1.5.0、Kafka: KAFKA-0.8.2.0-1.kafka1.4.0.p0.56 を使用しています。