

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

# 啟用 Hive EMRFS S3 優化的遞交程式
<a name="hive-optimized-committer"></a>

Hive EMRFS S3 優化的遞交程式是使用 EMRFS 時 EMR Hive 為插入查詢寫入檔案的替代方法。遞交程式消除了在 Amazon S3 上執行的清單和重新命名操作，並提高了應用程式的效能。從 EMR 5.34 和 EMR 6.5 開始，此功能可用。

## 啟用遞交程式
<a name="enabling-hive-committer"></a>

如果您希望讓 EMR Hive 使用 `HiveEMRFSOptimizedCommitter` 作為所有 Hive 受管和外部資料表的預設值遞交資料，則請在 EMR 6.5.0 或 EMR 5.34.0 叢集中使用下列 `hive-site` 組態。

```
[
   {
      "classification": "hive-site",
      "properties": {
         "hive.blobstore.use.output-committer": "true"
      }
   }
]
```

**注意**  
在 `hive.exec.parallel` 設定為 `true` 時，請勿開啟此功能。

## 限制
<a name="hive-committer-limitations"></a>

以下基本限制適用於 標籤：
+ 不支援 Hive 自動合併小型檔案。即使啟用了優化的遞交程式，也會使用預設 Hive 遞交邏輯。
+ 不支援 Hive ACID 資料表。即使啟用了優化的遞交程式，也會使用預設 Hive 遞交邏輯。
+ 寫入檔案的檔案命名術語從 Hive 的 `<task_id>_<attempt_id>_<copy_n>` 變更為 `<task_id>_<attempt_id>_<copy_n>_<query_id>`。例如，名為 

  `s3://warehouse/table/partition=1/000000_0` 的檔案將變更為 `s3://warehouse/table/partition=1/000000_0-hadoop_20210714130459_ba7c23ec-5695-4947-9d98-8a40ef759222-1`。此處 `query_id` 是使用者名稱、時間戳記和 UUID 的組合。
+ 自訂分割區在不同的檔案系統 (HDFS、S3) 上時，將自動停用此功能。啟用後將使用預設 Hive 遞交邏輯。