了解 EMRFS 一致性檢視如何在 Amazon S3 中追蹤物件 - Amazon EMR

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

了解 EMRFS 一致性檢視如何在 Amazon S3 中追蹤物件

EMRFS 會透過將這些物件的相關資訊新增至 EMRFS 中繼資料,來在 Amazon S3 中建立物件的一致性檢視。EMRFS 會在以下狀況將這些清單新增至中繼資料:

  • 在 Amazon EMR 作業過程由 EMRFS 寫入的物件。

  • 會使用 EMRFS CLI 將物件與 EMRFS 中繼資料進行同步,或將物件匯入 EMRFS 中繼資料。

EMRFS 讀取的物件不會自動新增到中繼資料。當 EMRFS 刪除物件時,清單仍會維持在中繼資料中,且保持已刪除的狀態,直到使用 EMRFS CLI 將該清單清除為止。若要進一步了解 CLI,請參閱 EMRFS CLI 命令參考。如需有關在 EMRFS 中繼資料清除清單的詳細資訊,請參閱 EMRFS 一致檢視中繼資料

對於每個 Amazon S3 操作,EMRFS 會檢查中繼資料是否有一致性檢視中一組物件的相關資訊。如果在這些操作中 EMRFS 發現 Amazon S3 是不一致的,則會根據在 emrfs-site 組態屬性中定義的參數重試操作。在 EMRFS 用完重試數後,它會擲出 ConsistencyException 或記錄例外狀況並繼續工作流程。如需關於重試日誌的詳細資訊,請參閱 重試邏輯。您可以在日誌中找到 ConsistencyExceptions,例如:

  • listStatus:沒有適用於中繼資料項目 /S3_bucket/dir/object 的 Amazon S3 物件

  • getFileStatus:金鑰 dir/file 存在於中繼資料,但不在 Amazon S3 中

如果您直接從 EMRFS 一致性檢視追蹤的 Amazon S3 中刪除物件,EMRFS 會將該物件視為不一致,因為其仍然存在於 Amazon S3 所列的中繼資料。如果您的中繼資料與 EMRFS 在 Amazon S3 中追蹤的物件不同步,您可以使用 EMRFS CLI 的 sync 子命令重設中繼資料以反映 Amazon S3。為了探索中繼資料與 Amazon S3 之間的差異,請使用 diff。最後,EMRFS 只有在中繼資料中參考之物件的一致性檢視,可以是同一個 Amazon S3 路徑中的其他物件 (但未受到追蹤)。EMRFS 列出 Amazon S3 路徑中的物件時,會傳回在中繼資料以及該 Amazon S3 路徑中追蹤的物件超集合。