![](/img/trans.png)
[英]Spark Structured Streaming with secured Kafka throwing : Not authorized to access group exception
[英]Kafka Structured Streaming checkpoint
我正在嘗試從Kafka中進行結構化流式傳輸。 我打算將檢查點存儲在HDFS中。 我讀了一個Cloudera博客,建議不要在HDFS中將檢查點存儲在Spark流中。 結構流檢查點是否存在相同問題? https://blog.cloudera.com/blog/2017/06/offset-management-for-apache-kafka-with-apache-spark-streaming/ 。
在結構化流中,如果我的spark程序在特定時間內關閉,如何從檢查點目錄中獲取最新的偏移量,並在該偏移量之后加載數據。 我將檢查點存儲在目錄中,如下所示。
df.writeStream\
.format("text")\
.option("path", '\files') \
.option("checkpointLocation", 'checkpoints\chkpt') \
.start()
更新:
這是我的結構化流程序,讀取Kafka消息,解壓縮並寫入HDFS。
df = spark \
.readStream \
.format("kafka") \
.option("kafka.bootstrap.servers", KafkaServer) \
.option("subscribe", KafkaTopics) \
.option("failOnDataLoss", "false")\
.load()
Transaction_DF = df.selectExpr("CAST(value AS STRING)")
Transaction_DF.printSchema()
decomp = Transaction_DF.select(zip_extract("value").alias("decompress"))
#zip_extract is a UDF to decompress the stream
query = decomp.writeStream\
.format("text")\
.option("path", \Data_directory_inHDFS) \
.option("checkpointLocation", \pathinDHFS\) \
.start()
query.awaitTermination()
首選將Checkpoint存儲在長期存儲(HDFS,AWS S3等)上。 我想在此補充一點,不應將屬性“ failOnDataLoss”設置為false,因為這不是最佳實踐。 數據丟失是沒人願意承擔的。 休息,您在正確的道路上。
在查詢中,嘗試在將結果以鑲木地板等某種格式寫入某些持久性存儲(如HDFS)時應用檢查點。 對我來說很好。
據我了解,它建議在以下位置維護偏移量管理:Hbase,Kafka,HDFS或Zookeeper。
“值得一提的是,您還可以將偏移量存儲在HDFS之類的存儲系統中。與上述選項相比,將偏移量存儲在HDFS中是一種不太流行的方法,因為與其他系統(如ZooKeeper和HBase)相比,HDFS的延遲更高。”
您可以在Spark文檔中找到如何從現有檢查點重新啟動查詢, 網址為: http : //spark.apache.org/docs/latest/structured-streaming-programming-guide.html#recovering-from-failures-with-checkpointing
在結構化流中,如果我的spark程序在特定時間內關閉,如何從檢查點目錄中獲取最新的偏移量,並在該偏移量之后加載數據。
在您的checkpointdir文件夾下,您會找到一個名為“ offsets”的文件夾。 文件夾“偏移”會保留下一個要從kafka請求的偏移。 打開“偏移量”文件夾下的最新文件(最新批處理文件),下一個預期的偏移量將采用以下格式
{"kafkatopicname":{"2":16810618,"1":16810853,"0":91332989}}
要在該偏移量之后加載數據,請將以下屬性設置為您的火花讀取流
.option("startingOffsets", "{\""+topic+"\":{\"0\":91332989,\"1\":16810853,\"2\":16810618}}")
0,1,2是主題中的分區。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.