本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
一致性檢視
警告
在 2023 年 6 月 1 日,EMRFS一致性檢視將達到未來 Amazon EMR版本的標準支援結束。EMRFS 一致性檢視將繼續適用於現有的版本。
隨著 Amazon S3 於 2020 年 12 月 1 日發布強大的 read-after-write一致性,您不再需要將EMRFS一致性檢視 (EMRFS CV) 與 Amazon EMR叢集搭配使用。EMRFS CV 是一項選用功能,可讓 Amazon EMR叢集檢查 Amazon S3 物件的清單和 read-after-write一致性。當您建立叢集並開啟 EMRFS CV 時,Amazon EMR會建立 Amazon DynamoDB 資料庫來存放物件中繼資料,用於追蹤 S3 物件的清單和 read-after-write一致性。您現在可以關閉 EMRFS CV 並刪除其使用的 DynamoDB 資料庫,以免產生額外費用。下列程序說明如何檢查 CV 功能、將其關閉以及刪除此功能使用的 DynamoDB 資料庫。
檢查您是否使用 EMRFS CV 功能
-
導覽至組態標籤。如果您的叢集具有下列組態,則會使用 EMRFS CV。
Classification=emrfs-site,Property=fs.s3.consistent,Value=true
-
或者,使用 AWS CLI 描述您的叢集與
describe-cluster
API。如果輸出包含fs.s3.consistent: true
,您的叢集會使用 EMRFS CV。
若要關閉 Amazon EMR叢集上的 EMRFS CV
若要關閉 EMRFS CV 功能,請使用下列三個選項之一。您應在測試環境中測試這些選項,然後再將這些選項套用於生產環境。
-
停止現有的叢集,並啟動沒有 EMRFS CV 選項的新叢集。
-
停止叢集之前,確保您已備份資料並通知使用者。
-
若要停止叢集,請遵循終止叢集中的指示進行操作。
-
如果您使用 Amazon EMR主控台建立新叢集,請導覽至進階選項 。在編輯軟體設定區段中,取消選取開啟 EMRFS CV 的選項。如果EMRFS一致檢視的核取方塊可用,請保持未核取狀態。
-
如果您使用 AWS CLI 建立具有
create-cluster
API的新叢集,請勿使用--emrfs
選項,這會開啟 EMRFS CV。 -
如果您使用 SDK或 AWS CloudFormation 建立新的叢集,請勿使用設定一致檢視 中列出的任何組態。
-
-
若要複製叢集並移除 EMRFS CV
-
在 Amazon EMR主控台中,選擇使用 EMRFS CV 的叢集。
-
在叢集詳細資訊頁面頂端,選擇複製。
-
選擇上一步,然後導覽至步驟 1:軟體和步驟。
-
在 編輯軟體設定 中,移除 EMRFS CV。在編輯組態中,刪除
emrfs-site
分類中的下列組態。如果您要JSON從 S3 儲存貯體載入,則必須修改 S3 物件。[ {"classification": "emrfs-site", "properties": { "fs.s3.consistent.retryPeriodSeconds":"10", "fs.s3.consistent":"true", "fs.s3.consistent.retryCount":"5", "fs.s3.consistent.metadata.tableName":"EmrFSMetadata" } } ]
-
-
從使用執行個體群組的叢集中移除 EMRFS CV
-
使用下列命令來檢查單一EMR叢集是否使用與 EMRFS CV 相關聯的 DynamoDB 資料表,或者是否多個叢集共用資料表。資料表名稱在
fs.s3.consistent.metadata.tableName
中指定,如設定一致性檢視中所述。EMRFS CV 使用的預設資料表名稱為EmrFSMetadata
。aws emr describe-cluster --cluster-id j-XXXXX | grep fs.s3.consistent.metadata.tableName
-
如果您的叢集未與其他叢集共用 DynamoDB 資料庫,請使用下列命令來重新設定叢集並停用 EMRFS CV。如需詳細資訊,請參閱重新設定執行中叢集中的執行個體群組。
aws emr modify-instance-groups --cli-input-json file://disable-emrfs-1.json
此命令會開啟您要修改的檔案。使用下列組態修改檔案。
{ "ClusterId": "j-xxxx", "InstanceGroups": [ { "InstanceGroupId": "ig-xxxx", "Configurations": [ { "Classification": "emrfs-site", "Properties": { "fs.s3.consistent": "false" }, "Configurations": [] } ] } ] }
-
如果您的叢集與另一個叢集共用 DynamoDB 資料表,當沒有叢集修改共用 S3 位置中的任何物件時,請一次關閉所有叢集的 EMRFS CV。
-
刪除與 EMRFS CV 相關聯的 Amazon DynamoDB 資源
從 Amazon EMR叢集移除 EMRFS CV 後,請刪除與 EMRFS CV 相關聯的 DynamoDB 資源。在此之前,您會持續產生與 EMRFS CV 相關聯的 DynamoDB 費用。
-
檢查 DynamoDB 資料表的 CloudWatch 指標,並確認資料表未由任何叢集使用。
-
刪除 DynamoDB 資料表。
aws dynamodb delete-table --table-name
<your-table-name>
刪除與 EMRFS CV 相關聯的 Amazon SQS 資源
-
如果您已設定叢集將不一致通知推送至 Amazon SQS,您可以刪除所有SQS佇列。
-
尋找 中指定的 Amazon SQS佇列名稱
fs.s3.consistent.notification.SQS.queueName
,如設定一致檢視 中所述。預設佇列名稱格式為EMRFS-Inconsistency-
。<j-cluster ID>
aws sqs list-queues | grep ‘EMRFS-Inconsistency’ aws sqs delete-queue –queue-url
<your-queue-url>
若要停止使用 EMRFS CLI
-
EMRFS CLI 管理 EMRFS CV 產生的中繼資料。當 EMRFS CV 的標準支援在未來版本的 Amazon 中達到其結尾時EMR,對 的支援EMRFSCLI也會達到其結尾。