簡體   English   中英

使用Java將大文件讀取到GCP

[英]Read big files to GCP with Java

我正在尋找一種解決方案,如何以有效的方式將多個文件從FTP讀取到Google CloudStorage。 每個文件大小為3-5 GB,文件數量為100-200。

我找到了下一個解決方案:使用GAE實例讀取文件。

還有什么我可以嘗試的想法嗎?

最好的方法是使用gsutil compose將Google Cloud 並行上傳到Cloud Storage。 您可以嘗試以下方法:

gsutil -o GSUtil:parallel_composite_upload_threshold=150M cp bigfile gs://your-bucket

基本上:

  1. gsutil將文件分成多個較小的塊。
  2. 然后,它將所有文件上傳到Cloud Storage。
  3. 它們組成一個文件
  4. 然后刪除所有較小的塊

請記住,這需要在文檔中進行權衡:

使用並行復合上傳會在上傳性能和下載配置之間進行權衡:如果啟用並行復合上傳,您的上傳將運行得更快,但有人需要在gsutil或其他Python應用程序下載對象的每台計算機上安裝編譯的crcmod。 請注意,對於此類上載,無論是否啟用了並行復合上載選項,都需要crcmod進行下載。 對於某些發行版來說,這很容易(例如,它已預先安裝在macOS上),但是在其他情況下,某些用戶發現這很困難。

如果您無法使用gsutil並且無法在FTP服務器上安裝Cloud Storage SDK,則可以在VM中下載文件,然后在此VM中運行Cloud Storage SDK或gsutil。

App Engine Standard不允許寫入磁盤。 因此,您上傳的任何文件都將存儲在內存中,直到將它們上傳到Cloud Storage。 因此,我認為這種情況下不方便。

App Engine Flexible確實允許寫入磁盤。 這是一個臨時磁盤,一旦重新啟動,磁盤中的內容就會被刪除,並且每周都會重新啟動。 但是您不會利用負載平衡器和實例的自動伸縮功能。

在這種情況下,我認為最好的方法是使用可搶占Google Cloud的 VM。 現在,即使此虛擬機最多只能使用一天,但它們的運行價格比普通虛擬機低。 一旦它們將要終止 ,您可以檢查哪些文件已上傳到存儲,並在新的可搶占VM中恢復您的工作負載。 您還可以使用大量並行運行的此類VM,以加快下載和上傳過程。

暫無
暫無

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

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