EMRFSS3 優化的提交協議和多部分上傳 - Amazon EMR

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

EMRFSS3 優化的提交協議和多部分上傳

若要在 EMRFS S3 最佳化的提交協定中使用動態分區覆寫的最佳化功能,必須在 Amazon 中啟用多部分上傳。EMR分段上傳預設為啟用。您可以視需要重新啟用。如需詳細資訊,請參閱 Amazon EMR管理指南中的為 Amazon S3 設定多部分上傳

在動態磁碟分割覆寫期間,EMRFSS3 最佳化的提交通訊協定會使用多部分上傳的類似交易的特性,以確保工作嘗試寫入的檔案只會在工作認可時出現在工作的輸出位置。透過以此方式使用多段上傳,遞交通訊協定將提升作業遞交效能,讓其比預設 SQLHadoopMapReduceCommitProtocol 更佳。使用 EMRFS S3 優化的提交協議時,與傳統的多部分上傳行為有一些關鍵差異需要考慮:

  • 無論檔案大小,分段上傳會一律執行。這與的預設行為不同EMRFS,其中fs.s3n.multipart.uploads.split.size屬性會控制觸發多部分上傳的檔案大小。

  • 分段上傳會在不完整狀態維持較長的期間,直到任務遞交或中止。這與工作完成寫入指定檔案時,多部分上傳完成的EMRFS預設行為不同。

由於這些差異,如果 Spark Executor 在任務執行並將資料寫入 Amazon S3 時JVM當機或遭到終止,或者 Spark Driver 在任務執行期間JVM當機或終止,則不完整的多部分上傳更有可能被遺漏。因此,當您使用 EMRFS S3 最佳化的提交通訊協定時,請務必遵循管理失敗分段上傳的最佳作法。如需詳細資訊,請參閱 Amazon EMR管理指南中的使用 Amazon S3 儲存貯體的最佳實務