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

最好的AWS S3 Bucket配置自動加載程序支持冰川和未來的用例

kpendergast
貢獻者

標題狀態我想聽別人如何設置一個AWS s3 bucket源數據與汽車裝載機在支援能力一段時間後歸檔文件到冰川的對象。

我們目前有大約2000萬個json文件(avg文件大小為400 kb) s3存儲桶中,他們讓寫鬥的根源。每天280 k添加新文件。我需要把舊文件加載的自動加載到冰川存檔目錄。

我們試著把他們的桶新桶,但運行內存使用datasync aws和有限製增加門票開放近2周的支持。這感覺麻煩的東西應該是相當直接的。

通過添加到根目錄在這種情況下會導致問題自動加載程序試圖讀取文件和我們被aws訪問冰川對象收取。

我能想到的另一個選擇是有新的文件寫入一個目錄和冰川的存檔文件寫入到一個單獨的目錄的子目錄。它看起來像這樣:

. . / new_data /

. . /歸檔/

自動加載程序將指出隻有“new_data /”,隻會看到這些文件。檢查點需要重置,但我認為我們會實現我們的目標。此外,這種方法太簡單或目錄應該更多的上下文添加例如“/ new_data / use_case_name /”來支持其他數據可能被添加在將來的某個日期、以其他用例?

提前謝謝!

2回答2

Prabakar
尊敬的貢獻者三世
尊敬的貢獻者三世

@Ken發展與汽車設置磚裝載機,請遵循下麵的文件。

https://docs.m.eheci.com/spark/latest/structured-streaming/auto-loader.html

不支持從冰川抓取數據。然而,您可以嚐試下列配置集群中之一,它可能幫助。

  • 設置ignoreMissingFiles配置流讀取之前的筆記本嗎?
spark.conf.set (“spark.sql.files。ignoreMissingFiles”、“真正的”)

我們應該能夠忽略存檔文件。

  • 設置badRecordsPath選項readStream(我們建議設置第一個)
val df =火花。readStream .option (“badRecordsPath”、“/ tmp / badRecordsPath”) .format (“cloudFiles”)。.load ()

感謝信息。我們每天都自動加載程序運行很好所有的文件都在三角洲。我的問題是更多的aws方麵沒有明確的采購數據的最佳實踐從s3冰川不動他們的文件轉移到另一個桶裏。s3與三角洲和其他文件在工作區中是完全分離的。

我認為這兩個目錄的方法將工作,但沒有一個簡單的方法來測試這種方法。

刪除自動加載器讀取的文件從源是必須的一樣工作花費的時間比例來運行文件的數量增長。我也從閱讀構建模式在s3中的文件源桶。在場的2000萬個文件就需要大量的計算資源比如果有幾百萬。每一個json文件包含260個字段在非常深的層次。我很快被更改的文件,需要桶簡化為自動加載器讀取新的數據寫入和aws幾天後進入冰川對象作為備份,以防我們需要他們了。

Baidu
map