本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
EMRFS S3 優化遞交者和分段上傳
若要使用 EMRFS S3 優化遞交者,必須為 Amazon EMR 啟用分段上傳。分段上傳預設為啟用。您可以視需要重新啟用。如需詳細資訊,請參閱《Amazon EMR 管理指南》中的設定適用於 Amazon S3 的分段上傳。
EMRFS S3 最佳化遞交器利用分段上傳類似交易的特性,確保由任務嘗試寫入的檔案只會在任務遞交時顯示於工作的輸出位置。透過此方式使用分段上傳,遞交器可提升預設 FileOutputCommitter 演算法版本 2 的任務遞交效能。使用 EMRFS S3 最佳化遞交器時,應考量傳統分段上傳行為的某些主要差異:
-
無論檔案大小,分段上傳會一律執行。這不同於 EMRFS 的預設行為 (
fs.s3n.multipart.uploads.split.size
屬性會控制分段上傳觸發時的檔案大小)。 -
分段上傳會在不完整狀態維持較長的期間,直到任務遞交或中止。這不同於 EMRFS 的預設行為 (分段上傳會在任務完成寫入特定檔案時完成)。
由於這些差異,如果 Spark Executor JVM 在任務執行和寫入資料至 Amazon S3 時當機或終止,則更可能會留下不完整的分段上傳。因此,在您使用 EMRFS S3 最佳化遞交器時,請務必依照最佳實務來管理失敗的分段上傳。如需詳細資訊,請參閱《Amazon EMR 管理指南》中有關使用 Amazon S3 儲存貯體的最佳實務。