

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

# 了解 EMRFS 一致性檢視如何在 Amazon S3 中追蹤物件
<a name="emrfs-files-tracked"></a>

EMRFS 會透過將這些物件的相關資訊新增至 EMRFS 中繼資料，來在 Amazon S3 中建立物件的一致性檢視。EMRFS 會在以下狀況將這些清單新增至中繼資料：
+  在 Amazon EMR 作業過程由 EMRFS 寫入的物件。
+  會使用 EMRFS CLI 將物件與 EMRFS 中繼資料進行同步，或將物件匯入 EMRFS 中繼資料。

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

對於每個 Amazon S3 操作，EMRFS 會檢查中繼資料是否有一致性檢視中一組物件的相關資訊。如果在這些操作中 EMRFS 發現 Amazon S3 是不一致的，則會根據在 `emrfs-site` 組態屬性中定義的參數重試操作。在 EMRFS 用完重試數後，它會擲出 `ConsistencyException` 或記錄例外狀況並繼續工作流程。如需關於重試日誌的詳細資訊，請參閱 [重試邏輯](emrfs-retry-logic.md)。您可以在日誌中找到 `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 路徑中追蹤的物件超集合。