簡體   English   中英

Spark Streaming Kafka偏移量管理

[英]Spark Streaming kafka offset manage

我一直在從事火花流工作,這些工作通過kafka進行消費並產生數據。 我使用directDstream,所以我必須自己管理偏移量,我們使用redis來讀寫偏移量。現在有一個問題,當我啟動客戶端時,我的客戶端需要從redis獲取偏移量,而不是kafka中存在的偏移量本身如何顯示我編寫我的代碼?現在我已在下面編寫我的代碼:

   kafka_stream = KafkaUtils.createDirectStream(
    ssc,
    topics=[config.CONSUME_TOPIC, ],
    kafkaParams={"bootstrap.servers": config.CONSUME_BROKERS,
                 "auto.offset.reset": "largest"},
    fromOffsets=read_offset_range(config.OFFSET_KEY))

但我認為fromOffsets是啟動流式傳輸客戶端時(而不是在運行時)的值(來自redis)。感謝您的幫助。

如果我對您的理解正確,則需要手動設置偏移量。 這是我的方法:

from pyspark.streaming import StreamingContext
from pyspark.streaming.kafka import KafkaUtils
from pyspark.streaming.kafka import TopicAndPartition

stream = StreamingContext(sc, 120) # 120 second window

kafkaParams = {"metadata.broker.list":"1:667,2:6667,3:6667"}
kafkaParams["auto.offset.reset"] = "smallest"
kafkaParams["enable.auto.commit"] = "false"

topic = "xyz"
topicPartion = TopicAndPartition(topic, 0)
fromOffset = {topicPartion: long(PUT NUMERIC OFFSET HERE)}

kafka_stream = KafkaUtils.createDirectStream(stream, [topic], kafkaParams, fromOffsets = fromOffset)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM