

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

# 設定一致性檢視
<a name="emrfs-configure-consistent-view"></a>

您可以透過使用 `emrfs-site` 屬性的組態屬性來提供其他設定，以設定這些設定來進行一致性檢視使用。例如，您可以透過將下列引數提供給 CLI `--emrfs` 選項，使用 emrfs-site 組態分類 (Amazon EMR 發行版本 4.x 及更新版本)，或引導操作在主節點上設定 emrfs-site.xml 檔案，以選擇不同的預設 DynamoDB 輸送量：

**Example 在叢集啟動時變更預設中繼資料的讀取和寫入值**  

```
aws emr create-cluster --release-label emr-7.12.0 --instance-type m5.xlarge \
--emrfs Consistent=true,Args=[fs.s3.consistent.metadata.read.capacity=600,\
fs.s3.consistent.metadata.write.capacity=300] --ec2-attributes KeyName=myKey
```

或者，您可以使用下列組態檔案，並將它儲存在本機或 Amazon S3：

```
[
    {
      "Classification": "emrfs-site",
      "Properties": {
        "fs.s3.consistent.metadata.read.capacity": "600",
        "fs.s3.consistent.metadata.write.capacity": "300"
      }
    }
 ]
```

使用透過以下語法而建立的組態：

```
aws emr create-cluster --release-label emr-7.12.0 --applications Name=Hive \
--instance-type m5.xlarge --instance-count 2 --configurations file://./myConfig.json
```

**注意**  
包含 Linux 行接續字元 (\$1) 是為了提高可讀性。它們可以在 Linux 命令中移除或使用。對於 Windows，請將其移除或取代為插入符號 (^)。

您可以使用組態或 AWS CLI `--emrfs`引數設定下列選項。如需有關那些引數的更多資訊，請參閱 [AWS CLI 命令參考](https://docs.aws.amazon.com/cli/latest/reference/)。


**一致性檢視的 `emrfs-site.xml` 內容**  

| 屬性  | 預設值 | Description  | 
| --- | --- | --- | 
| fs.s3.consistent | false |  設為 **true** 時，此屬性會設定 EMRFS 使用 DynamoDB 以提供一致性。  | 
| fs.s3.consistent.retryPolicyType | exponential | 此屬性會在重試一致性問題時識別要使用的政策。選項包括：指數、固定或無。 | 
| fs.s3.consistent.retryPeriodSeconds | 1 | 此屬性會設定在一致性重試次數之間的等待時間長度。 | 
| fs.s3.consistent.retryCount | 10 | 此屬性會設定在偵測到不一致時的重試次數上限。 | 
| fs.s3.consistent.throwExceptionOnInconsistency | true | 此屬性會決定是否擲出或記錄一致性例外狀況。設為 true 時，即會擲出 ConsistencyException。 | 
| fs.s3.consistent.metadata.autoCreate | true | 設為 true 時，此屬性會啟用中繼資料資料表的自動建立。 | 
| fs.s3.consistent.metadata.etag.verification.enabled | true | 在 Amazon EMR 5.29.0 中，預設會啟用此屬性。啟用時，EMRFS 會使用 S3 ETags 來驗證正在讀取的物件是否為最新的可用版本。此功能適用於更新後讀取的使用案例，其中在 S3 上的檔案被覆寫，同時保有相同名稱。此 ETag 驗證功能目前不適用於 S3 Select。 | 
| fs.s3.consistent.metadata.tableName | EmrFSMetadata | 此屬性會指定在 DynamoDB 中的中繼資料資料表名稱。 | 
| fs.s3.consistent.metadata.read.capacity | 500 | 此屬性會指定在中繼資料資料表建立時 DynamoDB 要佈建的讀取容量。 | 
| fs.s3.consistent.metadata.write.capacity | 100 | 此屬性會指定在中繼資料資料表建立時 DynamoDB 要佈建的寫入容量。 | 
| fs.s3.consistent.fastList | true | 設為 true 時，此屬性會使用多個執行緒列出目錄 (依需要)。必須啟用一致性才能使用此屬性。 | 
| fs.s3.consistent.fastList.prefetchMetadata | false | 設為 true 時，此屬性可讓中繼資料預先擷取包含超過 20,000 個項目的目錄。 | 
| fs.s3.consistent.notification.CloudWatch | false | 設為 true 時，會針對因 Amazon S3 最終一致性問題而失敗的 FileSystem API 呼叫啟用 CloudWatch 指標。 | 
| fs.s3.consistent.notification.SQS | false | 設為 true 時，最終一致性通知會推送至 Amazon SQS 佇列。 | 
| fs.s3.consistent.notification.SQS.queueName | EMRFS-Inconsistency-<jobFlowId> | 變更此屬性可讓您為有關 Amazon S3 最終一致性問題的訊息指定自己的 SQS 佇列名稱。 | 
| fs.s3.consistent.notification.SQS.customMsg | none | 此屬性可讓您指定在有關 Amazon S3 最終一致性問題之 SQS 訊息中所含的自訂訊息。如果未針對此屬性指定值，訊息中的對應欄位則為空。 | 
| fs.s3.consistent.dynamodb.endpoint | none | 此屬性可讓您指定自訂的 DynamoDB 端點以供一致性檢視中繼資料使用。 | 
| fs.s3.useRequesterPaysHeader | false | 設定為 true 時，此屬性允許 Amazon S3 向啟用了請求付款人選項的儲存貯體發出請求。 | 