取消
顯示的結果
而不是尋找
你的意思是:

火花結構化流:數據寫adls太慢了。

UmaMahesh1
尊敬的貢獻者三世

我有點新火花結構化流東西所以問所有相關的問題如果我錯過了什麼。

我有一個筆記本,消耗的事件並將這些記錄寫入adls卡夫卡的話題。主題是json序列化我隻是寫值列作為json字符串為adls沒有壓扁。(我以後會做壓扁的部分在一個單獨的筆記本提供模式)。

對每一批作家,我設置觸發器availableNow = true。maxOffsetsPerTrigger被設置為5000。而消費數據,我也添加一個current_timestamp列來確定每個事件時被消耗。我將每天運行筆記本一次我不想虛報資源。

availableNow以來真正的流程所有可用的數據自上次檢查點在微批次,我的期望是,會有大塊的近5000條記錄用adls寫的。但是我發現一個隨機數的條目從1到1000被寫在5 - 15分鍾的時間間隔,我能夠識別使用current_timestamp添加在閱讀的話題。

例如20-11-2022 10:30:00:000 - 10記錄

20-11-2022 10:35:00:000 - 1記錄

20-11-2022 10:45:00:000 ..... - 250記錄

因為這種奇怪的處理,如果在1天主題生產商生產大約2000事件,需要約45分鍾到1小時消耗和數據加載到adls。

誰能解釋這是為什麼。運行一個管道工作1小時負荷1000條記錄肯定似乎是一個過度。

注:這與集群作為集群本身是一個非常高的性能在生產環境中。

5回複5

Hubert_Dudek1
尊敬的貢獻者三世

我將

  • 刪除maxOffsetsPerTrigger,
  • 分析火花UI
  • 使用顯示()如何讀取流(不寫δ)或者等待的問題可以寫與讀或寫或卡夫卡本身
  • 流洗牌分區設置為核心的數量

spark.conf.set (“spark.sql.shuffle。分區”,sc.DefaultParallelism)

在流添加.option (“minPartitions”, sc.DefaultParallelism)

UmaMahesh1
尊敬的貢獻者三世

我應該刪除maxOffsetsPerTrigger什麼特別的原因嗎?

而且,當我使用同樣的支流卡夫卡主題在不同環境中(non-prod),使用相同的筆記本,隻需要1分鍾左右。:grinning_face_with_sweat:沒有事件傳輸問題太non-prod和刺激。

也許我會回來一旦我看看第三和第四選項. .

謝謝。

Hubert_Dudek1
尊敬的貢獻者三世

隻是為了測試

werners1
尊敬的貢獻者三世

我猜這是因為這個話題是如何分區的。關於availableNow檢查文檔:

速度限製最大數量的補償處理每觸發間隔。指定的偏移量的總數將會按比例跨越topicPartitions不同的體積。

https://spark.apache.org/docs/3.1.3/structured-streaming-kafka-integration.html

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map