![](/img/trans.png)
[英]How to consume correctly from Kafka topic with Java Spark structured streaming
[英]Spark Structured Streaming foreach Sink custom writer is not able to read data from Kafka topic
我有 spark 結構化流媒體作業可以從 kafka 主題中讀取它。 但是,在訂閱主題時,該作業不會使用 foreach 編寫器將數據寫入控制台或將其轉儲到數據庫。
我有類DBWriter extends ForeachWriter<Row>
仍然永遠不會調用此類的open, process, close
方法。
如果您需要更多信息,請告訴我。
已按照Spark Kafka 集成指南中的說明進行操作。 仍然無法正常工作。
Spark 版本 2.3.1 卡夫卡 0.10.0
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql-kafka-0-10_2.11</artifactId>
<version>2.3.1</version>
</dependency>
我的代碼是:
spark.readStream().format("kafka").option.option("kafka.bootstrap.servers", "YOUR.HOST:PORT1,YOUR.HOST:PORT2")
.option("subscribe", "TOPIC1")
.option("startingOffsets", "latest") // read data from the end of the stream
.load()
和
Dataset<Row> selectDf = dataframe.select(dataframe.col("key")
.cast("string"),org.apache.spark.sql.functions.from_json(dataframe.col("value")
.cast("string"), schema).alias("data"));
selectDf.writeStream()
.trigger(Trigger.ProcessingTime(1000))
.foreach(new DBWriterSink())
.option("checkpointLocation","/tmp/chp_path/")
輸入數據具有以下格式:
數據采用 json 格式:
{"input_source_data":
{ "key1":"value1",
"key2": "value2"
}
}
實際問題是由於 kafka 配置設置不正確。 主題訂閱不成功,握手失敗。 正確更正kafka屬性后。 能夠讀取數據,它正在額外設置這些屬性。 刪除后,它開始工作。 能夠閱讀消息並查看正在調用的 ForEachWriter。
properties.put("security.protocol", "SSL");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.