

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

# Apache Hive
<a name="emr-hive"></a>

Hive 是一款在 Hadoop 叢集上執行的開源資料倉儲暨分析套件。Hive 指令碼使用的是一種稱為 Hive QL (查詢語言) 的語言，與 SQL 語言類似，會擷取出程式設計模型，且可支援一般的資料倉儲互動。使用 Hive，即可避免要用要低階的電腦語言 (如 Java) 根據有向無環圖 (DAG) 或 MapReduce 程式撰寫 Tez 任務的複雜作業。

Hive 可納入序列化格式，藉此擴大 SQL 範例。也可以建立與您的資料相符的表格結構描述，以自訂查詢處理作業，而無需接觸資料本身。SQL 僅支援原始的資料類型 (如日期、數字、字串等)，而 Hive 表格值為結構化的元素，例如 JSON 物件、任何由使用者定義的資料類型，或是以 Java 寫成的函數等。

如需關於 Hive 的詳細資訊，請參閱 [http://hive.apache.org/](http://hive.apache.org/)。

以下表格列出了 Amazon EMR 7.x 系列最新版本中包含的 Hive 版本，以及 Amazon EMR 隨 Hive 一起安裝的元件。

如需此版本中與 Hive 一起安裝的元件版本，請參閱[發行版本 7.12.0 元件版本。](emr-7120-release.md)


**emr-7.12.0 的 Hive 版本資訊**  

| Amazon EMR 發行標籤 | Hive 版本 | 與 Hive 一起搭配安裝的元件 | 
| --- | --- | --- | 
| emr-7.12.0 | Hive 3.1.3-amzn-21 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-hdfs-zkfc, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn, tez-on-worker, zookeeper-client, zookeeper-server | 

下表列出 Amazon EMR 6.x 系列最新版本中包含的 Hive 版本，以及 Amazon EMR 隨 Hive 一起安裝的元件。

如需此版本中與 Hive 一起搭配安裝的元件版本，請參閱[發行版本 6.15.0 元件版本](emr-6150-release.md)。


**emr-6.15.0 的 Hive 版本資訊**  

| Amazon EMR 發行標籤 | Hive 版本 | 與 Hive 一起搭配安裝的元件 | 
| --- | --- | --- | 
| emr-6.15.0 | Hive 3.1.3-amzn-8 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn, tez-on-worker, zookeeper-client, zookeeper-server | 

下表列出 Amazon EMR 5.x 系列最新版本中包含的 Hive 版本，以及 Amazon EMR 隨 Hive 一起安裝的元件。

如需此版本中與 Hive 一起安裝的元件版本，請參閱[發行版本 5.36.2 元件版本。](emr-5362-release.md)


**emr-5.36.2 的 Hive 版本資訊**  

| Amazon EMR 發行標籤 | Hive 版本 | 與 Hive 一起搭配安裝的元件 | 
| --- | --- | --- | 
| emr-5.36.2 | Hive 2.3.9-amzn-2 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn | 

自 Amazon EMR 5.18.0 開始，您可以使用 Amazon EMR 成品儲存庫建置作業程式碼，並將其用於確切的程式庫和相依版本，以搭配特定 Amazon EMR 發行版本使用。如需詳細資訊，請參閱[使用 Amazon EMR 成品儲存庫檢查相依性](emr-artifact-repository.md)。

**Topics**
+ [Amazon EMR 上 Hive 的差異和考量](emr-hive-differences.md)
+ [設定 Hive 的外部中繼存放區](emr-metastore-external-hive.md)
+ [使用 Hive JDBC 驅動器](HiveJDBCDriver.md)
+ [提升 Hive 效能](emr-hive-s3-performance.md)
+ [使用 Hive Live Long and Process (LLAP)](emr-hive-llap.md)
+ [Hive 中的加密](hive-encryption.md)
+ [Hive 版本歷史記錄](Hive-release-history.md)

# Amazon EMR 上 Hive 的差異和考量
<a name="emr-hive-differences"></a>

## Amazon EMR 上的 Apache Hive 與 Apache Hive 之間的差異
<a name="emr-hive-apache-diff"></a>

本章節描述了 Amazon EMR 上的 Hive 與 [http://svn.apache.org/viewvc/hive/branches/](http://svn.apache.org/viewvc/hive/branches/) 所提供之預設 Hive 版本之間的差異。

### Hive 授權
<a name="emr-hive-authorization"></a>

 Amazon EMR 支援 HDFS 的 [Hive 授權](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Authorization)，但針對 EMRFS 和 Amazon S3 則不支援。Amazon EMR 叢集會在預設停用授權的情況下執行。

### Amazon S3 的 Hive 檔案合併行為
<a name="emr-hive-filemerge"></a>

如果 `hive.merge.mapfiles` 是 true，Apache Hive 會在僅限映射任務結束時合併小檔案，而且只會在任務的平均輸出大小小於 `hive.merge.smallfiles.avgsize` 設定時觸發合併。如果最終輸出路徑是在 HDFS 中，Amazon EMR Hive 也會有完全相同的行為。如果輸出路徑是在 Amazon S3 中，則會忽略 `hive.merge.smallfiles.avgsize` 參數。在此情況下，如果 `hive.merge.mapfiles` 設為 `true`，則合併任務一律會觸發。

### ACID 交易和 Amazon S3
<a name="emr-hive-acid"></a>

Amazon EMR 6.1.0 及更高版本支援 Hive ACID (不可部分完成性、一致性、隔離性、耐用性) 交易，因此它符合資料庫的 ACID 屬性。憑藉此功能，您可以在 Hive 受管資料表中使用 Amazon Simple Storage Service (Amazon S3) 中的資料來執行 INSERT、UPDATE、DELETE 和 MERGE 操作。

### Hive Live Long and Process (LLAP)
<a name="emr-hive-LLAP"></a>

Amazon EMR 5.0 版的 Hive 2.1.0 不支援預設 Apache Hive 2.0 版中新增的 [LLAP 功能](https://cwiki.apache.org/confluence/display/Hive/LLAP)。

Amazon EMR 6.0.0 及更高版本支援 Hive 的 Live Long and Process (LLAP) 功能。如需詳細資訊，請參閱[使用 Hive LLAP](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-hive-llap.html)。

## Amazon EMR 發行版本 4.x 和 5.x 之間 Hive 的差異
<a name="emr-hive-diff"></a>

本章節涵蓋您將 Amazon EMR 4.x 版之 Hive 1.0.0 版 Hive 實作遷移至 Amazon EMR 5.x 版之 Hive 2.x 時應考量的差異。

### 運作的差異和考量
<a name="emr-hive-diffs-ops"></a>
+ **新增 [ACID (不可部分完成性、一致性、隔離性、耐用性) 交易的支援](https://cwiki.apache.org/confluence/display/Hive/Hive+Transactions)：**Amazon EMR 4.x 上的 Hive 1.0.0 與預設 Apache Hive 之間的這項差異已消除。
+ **已消除直接寫入 Amazon S3：**Amazon EMR 上的 Hive 1.0.0 與預設 Apache Hive 之間的這項差異已消除。Amazon EMR 5.x 版的 Hive 2.1.0 現在會建立、讀取和寫入存放於 Amazon S3 的暫時檔案。因此，您不再需要於叢集的本機 HDFS 檔案系統中建立暫存資料夾，做為讀取和寫入相同表格的解決方法。如果您使用版本控制的儲存貯體，則務必依下述管理這些暫存檔案。
+ **使用 Amazon S3 版本控制儲存貯體時管理暫時檔案：**當您執行 Hive 查詢，若所產生資料的目的地是 Amazon S3，則會建立許多暫時檔案和目錄。這是稍早所述的新行為。如果您使用版本控制的 S3 儲存貯體，這些暫時檔案會使 Amazon S3 變得雜亂，且未將它們刪除便會產生成本。請調整您的生命週期規則，讓 `/_tmp` 字首的資料在經過一段短時間後刪除，例如 5 天。如需詳細資訊，請參閱[指定生命週期組態](https://docs.aws.amazon.com/AmazonS3/latest/userguide/how-to-set-lifecycle-configuration-intro.html)。
+ **Log4j 已更新為 log4j 2：**如果您使用 log4j，則可能因為此升級而需要變更記錄組態。請參閱 [Apache log4j 2](http://logging.apache.org/log4j/2.x/) 了解詳細資訊。

### 效能的差異和考量
<a name="emr-hive-diffs-perf"></a>
+ **使用 Tez 的效能差異：**在 Amazon EMR 5.x 版中，Hive 的預設執行引擎是 Tez 而非 MapReduce。Tez 可為大多數工作流程提供更高的效能。
+ **具有許多分割區的表格：**產生大量動態分割區的查詢可能會失敗，而從具有許多分割區的表格選擇的查詢所需的執行時間可能比預期更久。例如，從 100,000 個分割區選擇可能要花 10 分鐘或更久。

## Amazon EMR 上 Hive 的其他功能
<a name="emr-hive-additional-features"></a>

Amazon EMR 使用支援 Hive 與其他 AWS 服務整合的新功能擴展 Hive，例如能夠讀取和寫入 Amazon Simple Storage Service (Amazon S3) 和 DynamoDB。

### Hive 中的變數
<a name="emr-hive-variables"></a>

 您可以使用貨幣符號和大括號在指令碼中包含變數。

```
add jar ${LIB}/jsonserde.jar
```

 您在命令列上使用 `-d` 參數將這些變數的值傳遞至 Hive，如以下範例所示：

```
-d LIB=s3://elasticmapreduce/samples/hive-ads/lib
```

 您也可以將值傳遞至執行 Hive 指令碼的步驟。

**使用主控台將變數值傳遞至 Hive 步驟**

1. 在 https：//[https://console.aws.amazon.com/emr](https://console.aws.amazon.com/emr/) 開啟 Amazon EMR 主控台。

1. 選擇 **Create Cluster** (建立叢集)。

1. 在 **Steps (步驟)** 區段，針對 **Add Step (新增步驟)**，從清單中選擇 **Hive Program (Hive 程式)** 和 **Configure and add (設定和新增)**。

1.  在 **Add Step (新增步驟)** 對話方塊中，使用下表做為指引指定參數，然後選擇 **Add (新增)**。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/emr/latest/ReleaseGuide/emr-hive-differences.html)

1. 選取必要的值，並選擇 **Create cluster (建立叢集)**。

**使用 將變數值傳遞至 Hive 步驟 AWS CLI**

若要使用 將變數值傳遞至 Hive 步驟 AWS CLI，請使用 `--steps` 參數並包含引數清單。
+ 
**注意**  
包含 Linux 行接續字元 (\$1) 是為了提高可讀性。它們可以在 Linux 命令中移除或使用。對於 Windows，請將其移除或取代為插入符號 (^)。

  ```
  aws emr create-cluster --name "Test cluster" --release-label emr-7.12.0 \
  --applications Name=Hive Name=Pig --use-default-roles --ec2-attributes KeyName=myKey --instance-type m5.xlarge --instance-count 3 \
  --steps Type=Hive,Name="Hive Program",ActionOnFailure=CONTINUE,Args=[-f,s3://elasticmapreduce/samples/hive-ads/libs/response-time-stats.q,-d,INPUT=s3://elasticmapreduce/samples/hive-ads/tables,-d,OUTPUT=s3://amzn-s3-demo-bucket/hive-ads/output/,-d,SAMPLE=s3://elasticmapreduce/samples/hive-ads/]
  ```

  如需在 中使用 Amazon EMR 命令的詳細資訊 AWS CLI，請參閱 [https://docs.aws.amazon.com/cli/latest/reference/emr](https://docs.aws.amazon.com/cli/latest/reference/emr)。

**使用 Java 軟體開發套件將變數值傳遞至 Hive 步驟**
+ 以下範例示範如何使用軟體開發套件將變數傳遞至步驟。如需詳細資訊，請參閱《適用於 Java 的 AWS SDK API 參考》**中的[類別 StepFactory](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/elasticmapreduce/util/StepFactory.html)。

  ```
  StepFactory stepFactory = new StepFactory();
  
     StepConfig runHive = new StepConfig()
       .withName("Run Hive Script")
       .withActionOnFailure("TERMINATE_JOB_FLOW")
       .withHadoopJarStep(stepFactory.newRunHiveScriptStep(“s3://amzn-s3-demo-bucket/script.q”,
        Lists.newArrayList(“-d”,”LIB= s3://elasticmapreduce/samples/hive-ads/lib”));
  ```

### 納入部分 DynamoDB 結構描述的 Amazon EMR Hive 查詢
<a name="emr-hive-partial-schema"></a>

Amazon EMR Hive 可在查詢 DynamoDB 資料表時提供最大的彈性，讓您指定欄子集來篩選資料，而不需在查詢中包含所有資料欄。當您擁有疏鬆的資料庫結構描述，而想要依據少數幾欄篩選記錄 (例如篩選時間戳記) 時，這種部分結構描述查詢的技術就會非常有效。

 下列範例說明如何使用 Hive 查詢：
+ 建立 DynamoDB 資料表。
+ 選取 DynamoDB 中項目 (列) 的子集，並進一步縮小資料範圍至特定資料欄。
+ 將得到的資料複製到 Amazon S3。

```
DROP TABLE dynamodb; 
DROP TABLE s3;

CREATE EXTERNAL TABLE dynamodb(hashKey STRING, recordTimeStamp BIGINT, fullColumn map<String, String>)
    STORED BY 'org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler' 
    TBLPROPERTIES ( 
     "dynamodb.table.name" = "myTable",
     "dynamodb.throughput.read.percent" = ".1000", 
     "dynamodb.column.mapping" = "hashKey:HashKey,recordTimeStamp:RangeKey"); 

CREATE EXTERNAL TABLE s3(map<String, String>)
     ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' 
     LOCATION 's3://bucketname/path/subpath/';

INSERT OVERWRITE TABLE s3 SELECT item fullColumn FROM dynamodb WHERE recordTimeStamp < "2012-01-01";
```

下表顯示從 DynamoDB 選取任意項目組合的查詢語法。


| 查詢範例 | 結果描述 | 
| --- | --- | 
| SELECT \$1 FROM table\$1name; | 從特定資料表選取所有項目 (列)，並包含所有欄中適用於這些項目的資料。 | 
| SELECT \$1 FROM table\$1name WHERE field\$1name =value; | 從特定資料表選取某些項目 (列)，並包含所有欄中適用於這些項目的資料。 | 
| SELECT column1\$1name, column2\$1name, column3\$1name FROM table\$1name; | 從特定資料表選取所有項目 (列)，並包含某些欄中適用於這些項目的資料。 | 
| SELECT column1\$1name, column2\$1name, column3\$1name FROM table\$1name WHERE field\$1name =value; | 從特定資料表選取某些項目 (列)，並包含某些欄中適用於這些項目的資料。 | 

### 在不同 AWS 區域中的 DynamoDB 資料表之間複製資料
<a name="emr-hive-cross-region-ddb-copy"></a>

Amazon EMR Hive 會提供可對每個 DynamoDB 資料表設定的 `dynamodb.region` 屬性。當兩個資料表上的 `dynamodb.region` 設定不同時，您在資料表之間複製的任何資料都會自動出現在指定的區域之間。

 以下範例說明如何使用設定 `dynamodb.region` 屬性的 Hive 指令碼建立 DynamoDB 資料表：

**注意**  
個別資料表區域的屬性會覆寫全域 Hive 屬性。

```
CREATE EXTERNAL TABLE dynamodb(hashKey STRING, recordTimeStamp BIGINT, map<String, String> fullColumn)
    STORED BY 'org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler' 
    TBLPROPERTIES ( 
     "dynamodb.table.name" = "myTable",
     "dynamodb.region" = "eu-west-1", 
     "dynamodb.throughput.read.percent" = ".1000", 
     "dynamodb.column.mapping" = "hashKey:HashKey,recordTimeStamp:RangeKey");
```

### 設定每個資料表的 DynamoDB 輸送量值
<a name="emr-hive-set-ddb-throughput"></a>

Amazon EMR Hive 可讓您在資料表定義中設定個別資料表的 DynamoDB readThroughputPercent 和 writeThroughputPercent 設定。下列 Amazon EMR Hive 指令碼說明如何設定輸送量值。如需 DynamoDB 輸送量值的詳細資訊，請參閱[指定資料表的讀取和寫入需求](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithDDTables.html#ProvisionedThroughput)。

```
CREATE EXTERNAL TABLE dynamodb(hashKey STRING, recordTimeStamp BIGINT, map<String, String> fullColumn)
    STORED BY 'org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler' 
    TBLPROPERTIES ( 
     "dynamodb.table.name" = "myTable",
     "dynamodb.throughput.read.percent" = ".4",
     "dynamodb.throughput.write.percent" = "1.0",
     "dynamodb.column.mapping" = "hashKey:HashKey,recordTimeStamp:RangeKey");
```

# 設定 Hive 的外部中繼存放區
<a name="emr-metastore-external-hive"></a>

在預設情況下，Hive 會記錄在主節點的檔案系統上 MySQL 資料庫中的中繼存放區資訊。中繼存放區包含描述資料表和在其中建立它的基礎資料，包括分割區名稱和資料類型等等。叢集終止時，所有叢集節點會關閉 (包括主節點)。當發生這種情況時，本機資料會遺失，因為節點檔案系統使用的是暫時性儲存。如果您需要中繼存放區持續保留，您必須建立在叢集以外存在的*外部中繼存放區*。

適用於外部中繼存放區有兩個選項：
+ AWS Glue Data Catalog （僅限 Amazon EMR 5.8.0 版或更新版本）。

  如需詳細資訊，請參閱[使用 AWS Glue Data Catalog 做為 Hive 的中繼存放區](emr-hive-metastore-glue.md)。
+ Amazon RDS 或 Amazon Aurora。

  如需詳細資訊，請參閱[使用外部 MySQL 資料庫或 Amazon Aurora](emr-hive-metastore-external.md)。

**注意**  
如果您使用 Hive 3 並遇到太多 Hive 中繼存放區連線，請調低參數 `datanucleus.connectionPool.maxPoolSize` 的值或調高資料庫伺服器可處理的連線數量。增加連線數量是由 Hive 計算 JDBC 連線最大數量的方式所致。若要計算效能的最佳值，請參閱 [Hive 組態屬性](https://cwiki.apache.org/confluence/display/Hive/Configuration+Properties#ConfigurationProperties-datanucleus.connectionPool.maxPoolSize.1)。

# 使用 AWS Glue Data Catalog 做為 Hive 的中繼存放區
<a name="emr-hive-metastore-glue"></a>

使用 Amazon EMR 5.8.0 版或更新版本，您可以將 Hive 設定為使用 AWS Glue Data Catalog 作為其中繼存放區。若您需要持久的中繼存放區或由不同叢集、服務、應用程式或 AWS 帳戶分享的中繼存放區，我們建議使用此組態。

AWS Glue 是一種全受管擷取、轉換和載入 (ETL) 服務，可讓您以簡單且經濟實惠的方式分類資料、清理資料、擴充資料，並在各種資料存放區之間可靠地移動資料。 AWS Glue Data Catalog 提供跨各種資料來源和資料格式的統一中繼資料儲存庫，與 Amazon EMR 以及 Amazon RDS、Amazon Redshift、Redshift Spectrum、Athena 以及與 Apache Hive 中繼存放區相容的任何應用程式整合。 AWS Glue 爬蟲程式可以從 Amazon S3 中的來源資料自動推斷結構描述，並將相關聯的中繼資料存放在 Data Catalog 中。如需 Data Catalog 的詳細資訊，請參閱《[Glue AWS 開發人員指南》中的填入 Glue Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/populate-data-catalog.html)。 *AWS *

Glue AWS 會另外收費。資料目錄中儲存和存取中繼資料的每月費率、Glue ETL AWS 任務和爬蟲程式執行期每分鐘計費的每小時費率，以及每個佈建開發端點每分鐘計費的每小時費率。Data Catalog 可讓您免費儲存多達一百萬個物件。如果您存放超過一百萬個物件，之後每 100,000 個物件會向您收費 1 美元。Data Catalog 中的物件是資料表、分割區或資料庫。如需詳細資訊，請參閱 [Glue 定價](https://aws.amazon.com/glue/pricing)。

**重要**  
如果您在 2017 年 8 月 14 日之前使用 Amazon Athena 或 Amazon Redshift Spectrum 建立資料表，資料庫和資料表會存放在 Athena 受管目錄中，這與 AWS Glue Data Catalog 不同。若要整合 Amazon EMR 與這些資料表，您必須升級至 AWS Glue Data Catalog。如需詳細資訊，請參閱《*Amazon Athena 使用者指南*》中的[升級至 AWS Glue Data Catalog](https://docs.aws.amazon.com/athena/latest/ug/glue-upgrade.html)。

## 將 AWS Glue Data Catalog 指定為中繼存放區
<a name="emr-hive-glue-configure"></a>

您可以使用 AWS AWS 管理主控台 AWS CLI或 Amazon EMR API，將 Glue Data Catalog 指定為中繼存放區。當使用 CLI 或 API 時，您要使用 Hive 的組態分類來指定 Data Catalog。此外，使用 Amazon EMR 5.16.0 和更新版本，您可以使用組態分類，在不同的 中指定資料目錄 AWS 帳戶。在使用主控台時，您可以透過**進階選項**或**快速選項**指定 Data Catalog。

------
#### [ Console ]

**使用主控台將 AWS Glue Data Catalog 指定為 Hive 中繼存放區**

1. 登入 AWS 管理主控台，並在 https：//[https://console.aws.amazon.com/emr](https://console.aws.amazon.com/emr) 開啟 Amazon EMR 主控台。

1. 在左側導覽窗格中的 **EC2 上的 EMR** 下方，選擇**叢集**，然後選擇**建立叢集**。

1. 在**應用程式套件**下方，選擇**核心 Hadoop**、**HBase** 或 **自訂**。如果您自訂叢集，確保選取 Hive 或 HCatalog 作為您的其中一個應用程式。

1. 在 **AWS Glue Data Catalog 設定**下方，選取**用於 Hive 資料表中繼資料**核取方塊。

1. 選擇適用於您的叢集的任何其他選項。

1. 若要啟動您的叢集，請選擇**建立叢集**。

------
#### [ CLI ]

**使用 將 AWS Glue Data Catalog 指定為 Hive 中繼存放區 AWS CLI**

如需使用 AWS CLI 和 EMR API 指定組態分類的詳細資訊，請參閱 [設定應用程式](emr-configure-apps.md)。
+ 使用以下範例中顯示的 `hive-site` 組態分類為 `hive.metastore.client.factory.class` 指定值：

  ```
  [
    {
      "Classification": "hive-site",
      "Properties": {
        "hive.metastore.client.factory.class": "com.amazonaws.glue.catalog.metastore.AWSGlueDataCatalogHiveClientFactory"
      }
    }
  ]
  ```

  在 EMR 發行版本 5.28.0、5.28.1、5.29.0 或 6.x 上，如果您使用 AWS Glue Data Catalog 作為中繼存放區建立叢集，請將 `hive.metastore.schema.verification` 設定為 `false`。這樣可以防止 Hive 和 HCatalog 針對 MySQL 驗證中繼存放區結構描述。如果沒有此組態，則在 Hive 或 HCatalog 上重新設定後，主要執行個體群組將變成暫停狀態。

  ```
  [
    {
      "Classification": "hive-site",
      "Properties": {
        "hive.metastore.client.factory.class": "com.amazonaws.glue.catalog.metastore.AWSGlueDataCatalogHiveClientFactory",
        "hive.metastore.schema.verification": "false"
      }
    }
  ]
  ```

  如果在 EMR 發行版本 5.28.0、5.28.1 或 5.29.0 上已有叢集，可以利用以下資訊，將主要執行個體群組 `hive.metastore.schema.verification` 設為 `false`：

  ```
     
      Classification = hive-site
      Property       = hive.metastore.schema.verification
      Value          = false
  ```

  若要在不同的 AWS 帳戶中指定 Data Catalog，請新增 `hive.metastore.glue.catalogid` 屬性，如下列範例所示。使用 Data Catalog 的 AWS 帳戶取代 `acct-id`。

  ```
  [
    {
      "Classification": "hive-site",
      "Properties": {
        "hive.metastore.client.factory.class": "com.amazonaws.glue.catalog.metastore.AWSGlueDataCatalogHiveClientFactory",
        "hive.metastore.schema.verification": "false",
        "hive.metastore.glue.catalogid": "acct-id"
      }
    }
  ]
  ```

------

## IAM 許可
<a name="emr-hive-glue-permissions"></a>

叢集的 EC2 執行個體描述檔必須具有 Glue 動作的 IAM AWS 許可。此外，如果您啟用 AWS Glue Data Catalog 物件的加密，也必須允許該角色加密、解密和產生 AWS KMS key 用於加密的 。

### Glue AWS 動作的許可
<a name="emr-hive-glue-permissions-actions"></a>

如果您將預設的 EC2 執行個體設定檔用於 Amazon EMR，就不需要採取任何動作。連接到 的 `AmazonElasticMapReduceforEC2Role`受管政策`EMR_EC2_DefaultRole`允許所有必要的 AWS Glue 動作。不過，如果您指定自訂 EC2 執行個體描述檔和許可，則必須設定適當的 AWS Glue 動作。使用 `AmazonElasticMapReduceforEC2Role` 受管政策做為起點。如需詳細資訊，請參閱《Amazon EMR 管理指南》**中的[叢集 EC2 執行個體的服務角色 (EC2 執行個體設定檔)](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-iam-role-for-ec2.html)。

### 加密和解密 Glue Data Catalog AWS 的許可
<a name="emr-hive-glue-permissions-encrypt"></a>

您的執行個體設定檔需要許可，以便使用您的金鑰來加密和解密資料。如若下列兩個陳述式均適用，則您*不*需要設定這些許可：
+ 您可以使用 Glue AWS 的受管金鑰啟用 AWS Glue Data Catalog 物件的加密。
+ 您可以使用 AWS 帳戶 與 Glue Data Catalog AWS 位於相同 中的叢集。

否則，您必須新增以下陳述式至附接至您的 EC2 執行個體設定檔的許可政策。

如需 AWS Glue Data Catalog 加密的詳細資訊，請參閱《*AWS Glue 開發人員指南*》中的[加密您的資料目錄](https://docs.aws.amazon.com/glue/latest/dg/encrypt-glue-data-catalog.html)。

### 資源型許可
<a name="emr-hive-glue-permissions-resource"></a>

如果您在 AWS Amazon EMR 中使用 Glue 搭配 Hive、Spark 或 Presto， AWS Glue 支援以資源為基礎的政策來控制對 Data Catalog 資源的存取。這些資源包含資料庫、資料表、連線和使用者定義的函數。如需詳細資訊，請參閱《AWS Glue 開發人員指南》**中的 [AWS Glue 資源政策](https://docs.aws.amazon.com/glue/latest/dg/glue-resource-policies.html)。

使用資源型政策限制從 Amazon EMR 內存取 AWS Glue 時，您在許可政策中指定的委託人必須是與建立叢集時指定的 EC2 執行個體描述檔相關聯的角色 ARN。例如，對於附接至型錄的資源型政策，您可以使用下列範例所示的格式，將叢集 EC2 執行個體的預設服務角色的角色 ARN (*EMR\$1EC2\$1DefaultRole*) 指定為 `Principal`：

```
arn:aws:iam::acct-id:role/EMR_EC2_DefaultRole
```

*acct-id* 可以與 Glue AWS 帳戶 ID 不同。這可讓您從不同帳戶中的 EMR 叢集進行存取。您可以指定多個主體，每個主體都來自不同的帳戶。

## 使用 Glue Data Catalog AWS 時的考量事項
<a name="emr-hive-glue-considerations-hive"></a>

使用 AWS Glue Data Catalog 做為 Hive 中繼存放區時，請考慮下列項目：
+ 使用 Hive shell 新增輔助 JAR 並未受到支援。為了解決此問題，請使用 `hive-site` 組態分類來設定 `hive.aux.jars.path` 屬性，其會將輔助 JAR 新增到 Hive classpath。
+ 不支援 [Hive 交易](https://cwiki.apache.org/confluence/display/Hive/Hive+Transactions)。
+ 不支援從 Glue AWS 中重新命名資料表。
+ 當您建立 Hive 資料表而未指定 `LOCATION` 時，資料表資料將儲存在 `hive.metastore.warehouse.dir` 屬性指定的位置。依預設，該位置在 HDFS 中。如果另一個叢集需要存取該資料表，除非它對建立資料表的叢集具有足夠的許可，否則存取將會失敗。此外，由於 HDFS 儲存是暫時性的，若叢集終止，資料表資料將會丟失，還必須重新建立資料表。當您使用 Glue 建立 Hive 資料表時，建議您在 Amazon S3 AWS `LOCATION`中指定 。或者，您可以使用 `hive-site` 組態分類在 Amazon S3 中指定 `hive.metastore.warehouse.dir` 的位置，該位置將套用到全部 Hive 資料表。如果在 HDFS 位置建立資料表，且建立資料表的叢集仍在執行中，您可以從 Glue 內將資料表位置更新為 AWS Amazon S3。如需詳細資訊，請參閱《[Glue AWS 開發人員指南》中的在 Glue 主控台上使用資料表](https://docs.aws.amazon.com/glue/latest/dg/console-tables.html)。 *AWS *
+ 不支援包含引號和撇號的分割區值，例如，`PARTITION (owner="Doe's").`
+ emr-5.31.0 及更高版本不支援[資料欄統計資料](https://cwiki.apache.org/confluence/display/Hive/StatsDev#StatsDev-ColumnStatistics)。
+ 不支援使用 [Hive 授權](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Authorization)。或者，您可以考慮使用 [AWS Glue 資源型政策](https://docs.aws.amazon.com/glue/latest/dg/glue-resource-policies.html)。如需詳細資訊，請參閱[使用資源型政策來存取 AWS Glue Data Catalog](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-iam-roles-glue.html)。
+ 不支援 [Hive 限制條件](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-Constraints)。
+ 不支援 [Hive 中的成本型優化](https://cwiki.apache.org/confluence/display/Hive/Cost-based+optimization+in+Hive)。
+ 不支援設定 `hive.metastore.partition.inherit.table.properties`。
+ 不支援使用下列中繼存放區常數：`BUCKET_COUNT, BUCKET_FIELD_NAME, DDL_TIME, FIELD_TO_DIMENSION, FILE_INPUT_FORMAT, FILE_OUTPUT_FORMAT, HIVE_FILTER_FIELD_LAST_ACCESS, HIVE_FILTER_FIELD_OWNER, HIVE_FILTER_FIELD_PARAMS, IS_ARCHIVED, META_TABLE_COLUMNS, META_TABLE_COLUMN_TYPES, META_TABLE_DB, META_TABLE_LOCATION, META_TABLE_NAME, META_TABLE_PARTITION_COLUMNS, META_TABLE_SERDE, META_TABLE_STORAGE, ORIGINAL_LOCATION`。
+ 當您使用述詞表達式時，明確值必須在比較運算子的右側，否則查詢可能失敗。
  + **正確**：`SELECT * FROM mytable WHERE time > 11`
  + **不正確**：`SELECT * FROM mytable WHERE 11 > time`
+ Amazon EMR 版本 5.32.0 和 6.3.0 及更高版本支援在述詞表達式中使用使用者定義的函數 (UDF)。使用早期版本時，由於 Hive 嘗試優化查詢執行的方式，您的查詢可能會失敗。
+ 不支援[暫時資料表](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-TemporaryTables)。
+ 我們建議您透過 Amazon EMR 使用應用程式建立資料表，而不是直接使用 Glue AWS 建立資料表。透過 Glue AWS 建立資料表可能會導致必要欄位遺失，並導致查詢例外狀況。
+ 在 EMR 5.20.0 或更新版本中，當 Glue Data Catalog AWS 用作中繼存放區時，Spark 和 Hive 會自動啟用平行分割區剔除。這項變更會平行執行多個請求來擷取分割區，從而大幅縮短查詢規劃時間。可同時執行的區段總數範圍介於 1 到 10 之間。預設值為 5，此為建議設定。您可以在 `hive-site` 組態分類中指定屬性 `aws.glue.partition.num.segments` 加以變更。如果發生限流，您可以透過將值變更為 1 以關閉該功能。如需詳細資訊，請參閱 [AWS Glue 區段結構](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-catalog-partitions.html#aws-glue-api-catalog-partitions-Segment)。

# 使用外部 MySQL 資料庫或 Amazon Aurora
<a name="emr-hive-metastore-external"></a>

若要使用外部 MySQL 資料庫或 Amazon Aurora 作為 Hive 中繼存放區，請於 Hive 為中繼存放區覆寫預設組態值，以在 Amazon RDS MySQL 執行個體或 Amazon Aurora PostgreSQL 執行個體上指定外部資料庫位置。

**注意**  
Hive 不支援也無法避免對中繼存放區資料表的同時寫入存取權。如果您在兩個叢集間共用中繼存放區資訊，您必須確保不會同時寫入同一個表格中繼存放區，除非您寫入的是相同中繼存放區資料表中的不同分割區。

下列程序說明如何為 Hive 中繼存放區位置覆寫預設組態值，並使用重新設定的中繼存放區位置來啟動叢集。

**若要建立位於 EMR 叢集之外的中繼存放區**

1. 建立 MySQL 或 Aurora PostgreSQL 資料庫。如果您使用 PostgreSQL，則必須在佈建叢集之後進行設定。建立叢集時僅支援 MySQL。如需有關 Aurora MySQL 和 Aurora PostgreSQL 之間差異的資訊，請參閱 [Amazon Aurora MySQL 概觀](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMySQL.Overview.html)和[使用 Amazon Aurora PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html)。如需有關如何建立 Amazon RDS 資料庫的一般資訊，請參閱 [https://aws.amazon.com/rds/](https://aws.amazon.com/rds/)。

1. 修改您的安全群組以允許資料庫與 **ElasticMapReduce-Master (ElasticMapReduce-Master)** 安全群組之間的 JDBC 連線。如需有關如何修改存取安全群組的資訊，請參閱[使用 Amazon EMR 受管安全群組](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-man-sec-groups.html)。

1. 在 `hive-site.xml` 中設定 JDBC 設定值：
**重要**  
如果您是將敏感資訊 (例如，密碼) 提供到 Amazon EMR 組態 API，將會對許可不足的那些帳戶顯示此資訊。如果您擔心這個資訊可能向其他使用者顯示，透過建立可明確拒絕對 `elasticmapreduce:DescribeCluster` API 金鑰之許可的使用者，使用管理帳戶建立叢集並限制其他使用者 (IAM 使用者或具有委派登入資料的使用者) 存取叢集上的服務。

   1. 建立名為 `hiveConfiguration.json` 的組態檔案，內含對 `hive-site.xml` 的編輯，如下所示。

       使用執行資料庫的 Amazon RDS 執行個體之 DNS 地址取代 *hostname*，並且使用資料庫的登入資料取代 *username* 和 *password*。如需有關連線至 MySQL 和 Aurora 資料庫執行個體的詳細資訊，請參閱《Amazon RDS 使用者指南》**中的[連線至執行 MySQL 資料庫引擎的資料庫執行個體](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToInstance.html)和[連線至 Athena 資料庫叢集](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Connect.html)。`javax.jdo.option.ConnectionURL` 是用於 JDBC 中繼存放區的 JDBC 連線字串。`javax.jdo.option.ConnectionDriverName` 是 JDBC 中繼存放區的驅動程式類別名稱。

      MySQL JDBC 驅動器由 Amazon EMR 安裝。

      值屬性不能包含空格或歸位。它應該顯示在單一列。

      ```
      [
          {
            "Classification": "hive-site",
            "Properties": {
              "javax.jdo.option.ConnectionURL": "jdbc:mysql://hostname:3306/hive?createDatabaseIfNotExist=true",
              "javax.jdo.option.ConnectionDriverName": "org.mariadb.jdbc.Driver",
              "javax.jdo.option.ConnectionUserName": "username",
              "javax.jdo.option.ConnectionPassword": "password"
            }
          }
        ]
      ```

   1. 當您建立叢集時，請參考 `hiveConfiguration.json` 檔案，如下列 AWS CLI 命令所示。在這個命令中，檔案會存放在本機，您也可以將檔案上傳到 Amazon S3 並加以參考 (例如 `s3://DOC-EXAMPLE-BUCKET/hiveConfiguration.json`)。
**注意**  
包含 Linux 行接續字元 (\$1) 是為了提高可讀性。它們可以在 Linux 命令中移除或使用。對於 Windows，請將其移除或取代為插入符號 (^)。

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

1. 連接至您的叢集主節點。

   有關如何連接到主節點的資訊，請參閱《Amazon EMR 管理指南》**中的[使用 SSH 連接到主節點](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-connect-master-node-ssh.html)。

1. 透過輸入類似如下的命令來建立您的 Hive 資料表，以便在 Amazon S3 上指定位置：

   ```
   CREATE EXTERNAL TABLE IF NOT EXISTS table_name
   (
   key int,
   value int
   )
   LOCATION s3://DOC-EXAMPLE-BUCKET/hdfs/
   ```

1. 將您的 Hive 指令碼新增至執行中叢集。

Hive 叢集會使用位於 Amazon RDS 的中繼存放區來執行。透過指定中繼存放區位置來啟動所有額外的 Hive 叢集，其會共用此中繼存放區。

# 使用 Hive JDBC 驅動器
<a name="HiveJDBCDriver"></a>

您可以使用熱門的商業智慧工具 (如 Microsoft Excel、MicroStrategy、QlikView 和 Tableau) 搭配 Amazon EMR 來探索和視覺化您的資料。這些工具當中多數都需要 Java 資料庫連線 (JDBC) 驅動器或開放式資料庫連線 (ODBC) 驅動程式。Amazon EMR 支援對 Spark、Hive 或 Presto 叢集的 JDBC 和 ODBC 連線。

以下範例示範如何使用 SQL Workbench/J 作為 SQL 用戶端來連接到 Amazon EMR 中的 Hive 叢集。對於其他驅動程式，請參閱[使用商業智慧工具搭配 Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-bi-tools.html)。

在您安裝和使用 SQL Workbench/J 前，請下載驅動程式套件並安裝驅動程式。套件中包含的驅動程式支援在 Amazon EMR 發行版本 4.0 和更高版本中提供的 Hive 版本。如需版本備註和文件的詳細資訊，請參閱套件中包含的 PDF 文件。
+ **最新的 JDBC 和 ODBC 驅動程式套件**

  [http://awssupportdatasvcs.com/bootstrap-actions/Simba/](http://awssupportdatasvcs.com/bootstrap-actions/Simba/)

**若要安裝與設定 SQL Workbench**

1. 從 [http://www.sql-workbench.net/downloads.html](http://www.sql-workbench.net/downloads.html) 下載適用於您作業系統的 SQL Workbench/J 用戶端。

1. 安裝 SQL Workbench/J。如需更多資訊，請參閱 SQL Workbench/J 手冊使用者手冊中的[安裝和啟動 SQL Workbench/J](http://www.sql-workbench.net/manual/install.html)。

1. **Linux、Unix、Mac OS X 使用者**：在終端工作階段，請使用以下命令建立一個對叢集主節點的 SSH 通道。使用主節點的公有 DNS 名稱來替換 *master-public-dns-name* 和使用 Amazon EC2 私有金鑰 (`.pem`) 檔案的位置和檔案名稱來替換 *path-to-key-file*。

   ```
   ssh -o ServerAliveInterval=10 -i path-to-key-file -N -L 10000:localhost:10000 hadoop@master-public-dns-name
   ```

   **Windows 使用者**：在 PuTTY 工作階段中，請建立對叢集主節點的 SSH 通道 (使用本機連接埠轉送)，針對**來源連接埠**使用 `10000`，而針對**目的地**使用 `master-public-dns-name:10000`。使用主節點的公有 DNS 名稱替換 `master-public-dns-name`。

1. 將 JDBC 驅動程式新增到 SQL Workbench。

   1. 在 **Select Connection Profile (選取連線設定檔)** 對話方塊中，按一下 **Manage Drivers (管理驅動程式)**。

   1. 按一下 **Create a new entry (建立新項目)** (空白頁面) 圖示。

   1. 在 **Name (名稱)**欄位中，輸入 **Hive JDBC**。

   1. 針對 **Library (程式庫)**，按一下 **Select the JAR file(s) (選取 JAR 檔案)** 圖示。

   1. 導覽到包含已擷取驅動程式的位置。在您下載的 JDBC 驅動器套件版本中，選取其中的驅動程式，然後按一下**開啟**。

      例如，您的 JDBC 驅動器套件可能包含下列 JAR。

      ```
      hive_metastore.jar
      hive_service.jar
      HiveJDBC41.jar
      libfb303-0.9.0.jar
      libthrift-0.9.0.jar
      log4j-1.2.14.jar
      ql.jar
      slf4j-api-1.5.11.jar
      slf4j-log4j12-1.5.11.jar
      TCLIServiceClient.jar
      zookeeper-3.4.6.jar
      ```

   1. 在 **Please select one driver (請選取一個驅動程式)** 對話方塊中，選取 `com.amazon.hive.jdbc41.HS2Driver`、**OK**。

1. 當您返回 **Manage Drivers (管理驅動程式)** 對話方塊，請確認 **Classname** 欄位已填入值，然後選取 **OK**。

1. 當您返回 **Select Connection Profile (選取連線設定檔)** 對話方塊，請確認 **Driver (驅動程式)** 欄位設定為 **Hive JDBC**，並在 **URL** 欄位中提供以下 JDBC 連線字串：`jdbc:hive2://localhost:10000/default`。

1. 選取 **OK**以連接。連線完成後，連線詳細資訊會顯示於 SQL Workbench/J 視窗的上方。

如需使用 Hive 和 JDBC 界面的詳細資訊，請參閱 Apache Hive 文件中的 [HiveClient](https://cwiki.apache.org/confluence/display/Hive/HiveClient) 和 [HiveJDBCInterface](https://cwiki.apache.org/confluence/display/Hive/HiveJDBCInterface)。

# 提升 Hive 效能
<a name="emr-hive-s3-performance"></a>

Amazon EMR 提供的功能，可在使用 Hive 查詢、讀取和寫入儲存在 Amazon S3 中的資料時協助優化效能。

S3 Select 可藉由將處理「下推」至 Amazon S3 改善某些應用程式中 CSV 和 JSON 檔案的查詢效能。

EMRFS S3 優化的遞交程式是 [OutputCommitter](https://hadoop.apache.org/docs/current/api/org/apache/hadoop/mapreduce/OutputCommitter.html) 類別的替代方案，它消除了清單和重新命名操作，可提高使用 EMRFS 寫入 Amazon S3 檔案時的效能。

**Topics**
+ [啟用 Hive EMRFS S3 優化的遞交程式](hive-optimized-committer.md)
+ [將 S3 Select 與 Hive 搭配使用以提升效能](emr-hive-s3select.md)
+ [MSCC 優化](emr-msck-optimization.md)

# 啟用 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 遞交邏輯。

# 將 S3 Select 與 Hive 搭配使用以提升效能
<a name="emr-hive-s3select"></a>

**重要**  
Amazon S3 Select 不再提供給新客戶。Amazon S3 Select 的現有客戶可以繼續照常使用此功能。[進一步了解](https://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/) 

在 Amazon EMR 發行版本 5.18.0 及更新版本中，您可以將 [S3 Select](https://aws.amazon.com/blogs/aws/s3-glacier-select/) 與 Amazon EMR 上的 Hive 搭配使用。S3 Select 可讓應用程式從物件只擷取資料子集。針對 Amazon EMR，篩選大型資料集以進行處理的運算工作，會從叢集「下推」到 Amazon S3 處理，因而在某些應用程式中可提升效能，並減少 Amazon EMR 和 Amazon S3 之間傳輸的資料量。

以 CSV 和 JSON 檔案為基礎的 Hive 資料表，以及在 Hive 工作階段將 `s3select.filter` 組態變數設定為 `true`，可支援 S3 Select。如需詳細資訊和範例，請參閱 [在您的程式碼中指定 S3 Select](#emr-hive-s3select-specify)。

## S3 Select 是否適合我的應用程式？
<a name="emr-hive-s3select-apps"></a>

建議您在使用和不使用 S3 Select 的狀態下，對應用程式進行基準分析，以確認其是否適合您的應用程式。

利用下列的準則，來判斷您的應用程式是否可能使用 S3 Select：
+ 您的查詢會篩選掉原始資料集一半以上的資料。
+ 您的查詢篩選條件述詞所使用的資料欄，具有 Amazon S3 Select 所支援的資料類型。如需詳細資訊，請參閱《Amazon Simple Storage Service 使用者指南》**中的[資料類型](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-glacier-select-sql-reference-data-types.html)。
+ Amazon S3 與 Amazon EMR 叢集之間的網路連線具有良好的傳輸速度和可用頻寬。Amazon S3 不會壓縮 HTTP 回應，因此所壓縮輸入檔案的回應大小可能會增加。

## 考量和限制
<a name="emr-hive-s3select-considerations"></a>
+ 不支援使用客戶所提供加密金鑰 (SSE-C) 的 Amazon S3 伺服器端加密，也不支援用戶端加密。
+ 不支援 `AllowQuotedRecordDelimiters` 屬性。如果指定此屬性，查詢會失敗。
+ 僅支援採用 UTF-8 格式的 CSV 和 JSON 檔案。不支援多行 CSV 和 JSON。
+ 僅支援未壓縮的檔案，或 gzip 或 bzip2 檔案。
+ 不支援在最後一行的註解字元。
+ 不會處理檔案尾端的空白行。
+ Amazon EMR 上的 Hive 支援 S3 Select 所支援的基本資料類型。如需詳細資訊，請參閱《Amazon Simple Storage Service 使用者指南》**中的[資料類型](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-glacier-select-sql-reference-data-types.html)。

## 在您的程式碼中指定 S3 Select
<a name="emr-hive-s3select-specify"></a>

若要在 Hive 資料表中使用 S3 Select，請將 `com.amazonaws.emr.s3select.hive.S3SelectableTextInputFormat` 指定為 `INPUTFORMAT` 類別名稱，並使用 `TBLPROPERTIES` 子句，來指定 `s3select.format` 屬性的值，以建立資料表。

根據預設，在您執行查詢時會停用 S3 Select。在 Hive 工作階段期間，將 `s3select.filter` 設定為 `true`，以啟用 S3 Select，如下所示。下列的範例，示範如何在使用基礎的 CSV 和 JSON 檔案建立資料表時指定 S3 Select，然後利用簡單的選擇陳述式來查詢資料表。

**Example 適用於 CSV 型資料表的 CREATE TABLE 陳述式**  

```
CREATE TABLE mys3selecttable (
col1 string,
col2 int,
col3 boolean
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED AS
INPUTFORMAT
  'com.amazonaws.emr.s3select.hive.S3SelectableTextInputFormat'
OUTPUTFORMAT
  'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION 's3://path/to/mycsvfile/'
TBLPROPERTIES (
  "s3select.format" = "csv",
  "s3select.headerInfo" = "ignore"
);
```

**Example 適用於 JSON 型資料表的 CREATE TABLE 陳述式**  

```
CREATE TABLE mys3selecttable (
col1 string,
col2 int,
col3 boolean
)
ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe'
STORED AS
INPUTFORMAT
  'com.amazonaws.emr.s3select.hive.S3SelectableTextInputFormat'
OUTPUTFORMAT
  'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION 's3://path/to/json/'
TBLPROPERTIES (
  "s3select.format" = "json"
);
```

**Example SELECT TABLE 陳述式**  

```
SET s3select.filter=true;
SELECT * FROM mys3selecttable WHERE col2 > 10;
```

# MSCC 優化
<a name="emr-msck-optimization"></a>

Hive 可將每個資料表的分割區清單儲存在中繼存放區中。但是，在直接將分割區新增至檔案系統或從檔案系統中移除分割區時，Hive 中繼存放區無法得知這些變更。[MSCK 命令](https://cwiki.apache.org/confluence/display/hive/languagemanual+ddl#LanguageManualDDL-RecoverPartitions(MSCKREPAIRTABLE))會為直接新增至檔案系統或從檔案系統移除的分割區，更新 Hive 中繼存放區中的分割區中繼資料。命令的語法是：

```
MSCK [REPAIR] TABLE table_name [ADD/DROP/SYNC PARTITIONS];
```

Hive 如下所示實作此命令：

1. Hive 從中繼存放區擷取資料表的所有分割區。然後，從檔案系統中不存在的分割區路徑清單中，建立要從中繼存放區捨棄的分割區清單。

1. Hive 收集檔案系統中存在的分割區路徑，將它們與中繼存放區中的分割區清單進行比較，並產生需要新增至中繼存放區的分割區清單。

1. Hive 使用 `ADD`、`DROP` 或 `SYNC` 模式更新中繼存放區。

**注意**  
當中繼存放區中具有許多分割區時，檢查檔案系統中是否不存在分割區的步驟需要很長時間才能執行，因為必須對每個分割區進行檔案系統的 `exists` API 呼叫。

在 Amazon EMR 6.5.0 中，Hive 引進了一個稱為 `hive.emr.optimize.msck.fs.check` 的旗標。啟用後，此旗標會導致 Hive 檢查上面步驟 2 中產生的檔案系統的分割區路徑清單中是否存在分割區，而不是進行檔案系統 API 呼叫。在 Amazon EMR 6.8.0 中，Hive 預設啟用此優化，無需設定旗標 `hive.emr.optimize.msck.fs.check`。

# 使用 Hive Live Long and Process (LLAP)
<a name="emr-hive-llap"></a>

Amazon EMR 6.0.0 支援 Hive 的 Live Long and Process (LLAP) 功能。與之前的預設 Tez 容器執行模式相比，LLAP 使用具有智慧型記憶體內快取的持續性協助程式來改善查詢效能。

Hive LLAP 協助程式係以 YARN 服務的方式進行管理和執行。由於 YARN 服務可以被視為長時間執行的 YARN 應用程式，因此某些叢集資源是專用於 Hive LLAP，無法用於其他工作負載。如需詳細資訊，請參閱 [LLAP](https://cwiki.apache.org/confluence/display/Hive/LLAP) 和 [YARN 服務 API](https://hadoop.apache.org/docs/r3.2.1/hadoop-yarn/hadoop-yarn-site/yarn-service/YarnServiceAPI.html)。

## 在 Amazon EMR 上啟用 Hive LLAP
<a name="emr-llap-enable"></a>

若要在 Amazon EMR 上啟用 Hive LLAP，請在啟動叢集時提供下列組態。

```
[
  {
    "Classification": "hive",
    "Properties": {
      "hive.llap.enabled": "true"
    }
  }
]
```

如需詳細資訊，請參閱[設定應用程式](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps.html)。

依預設，Amazon EMR 會將約 60% 的叢集 YARN 資源配置給 Hive LLAP 常駐程式。您可以設定配置給 Hive LLAP 的叢集 YARN 資源百分比，以及 Hive LLAP 配置要考慮的任務和核心節點數目。

例如，下列配置會以三個任務或核心節點上的三個協助程式啟動 Hive LLAP，並將三個核心或任務節點的 YARN 資源的 40% 分配給 Hive LLAP 協助程式。

```
[
  {
    "Classification": "hive",
    "Properties": {
      "hive.llap.enabled": "true",
      "hive.llap.percent-allocation": "0.4",
      "hive.llap.num-instances": "3"
    }
  }
]
```

您可以在分類 API 中使用下列 `hive-site` 組態來覆寫預設 LLAP 資源設定。


| 屬性 | Description | 
| --- | --- | 
| hive.llap.daemon.yarn.container.mb | LLAP 協助程式容器總大小 (以 MB 為單位) | 
| hive.llap.daemon.memory.per.instance.mb |  LLAP 協助程式容器中由執行器所使用的記憶體總量 (以 MB 為單位)  | 
| hive.llap.io.memory.size |  LLAP 輸入/輸出的快取大小  | 
| hive.llap.daemon.num.executors |  每個 LLAP 協助程式的執行器數目  | 

## 在叢集上手動啟動 Hive LLAP
<a name="emr-llap-manually"></a>

LLAP 使用的所有依存項目和配置都會被封裝到 LLAP tar 存檔中，作為叢集啟動的一部分。如果使用 `"hive.llap.enabled": "true"` 啟用 LLAP，建議您使用 Amazon EMR 重新組態對 LLAP 進行組態變更。

否則，對於任何 `hive-site.xml` 的手動變更，您必須使用 `hive --service llap` 命令來重建 LLAP tar 存檔，如下列範例所示。

```
# Define how many resources you want to allocate to Hive LLAP

LLAP_INSTANCES=<how many llap daemons to run on cluster>
LLAP_SIZE=<total container size per llap daemon>
LLAP_EXECUTORS=<number of executors per daemon>
LLAP_XMX=<Memory used by executors>
LLAP_CACHE=<Max cache size for IO allocator>

yarn app -enableFastLaunch

hive --service llap \
--instances $LLAP_INSTANCES \
--size ${LLAP_SIZE}m \
--executors $LLAP_EXECUTORS \
--xmx ${LLAP_XMX}m \
--cache ${LLAP_CACHE}m \
--name llap0 \
--auxhbase=false \
--startImmediately
```

## 檢查 Hive LLAP 狀態
<a name="emr-llap-check"></a>

使用下列命令以透過 Hive 檢查 Hive LLAP 的狀態。

```
hive --service llapstatus
```

使用下列命令以透過 YARN 檢查 Hive LLAP 的狀態。

```
yarn app -status (name-of-llap-service)

# example: 
yarn app -status llap0 | jq
```

## 啟動或停止 Hive LLAP
<a name="emr-llap-start"></a>

由於 Hive LLAP 是以持久性 YARN 服務的方式執行，因此您可以停用或重新啟動 YARN 服務來停止或重新啟動 Hive LLAP。下列命令示範了這一點。

```
yarn app -stop llap0
yarn app -start llap0
```

## 調整 Hive LLAP 常駐程式的數量
<a name="emr-llap-resize"></a>

使用下列命令來減少 LLAP 執行個體的數目。

```
yarn app -flex llap0 -component llap -1
```

如需詳細資訊，請參閱 [Flex a component of a service](https://hadoop.apache.org/docs/r3.2.1/hadoop-yarn/hadoop-yarn-site/yarn-service/QuickStart.html#Flex_a_component_of_a_service)。

# Hive 中的加密
<a name="hive-encryption"></a>

本節章節描述了 Amazon EMR 支援的加密類型。

# Hive 中的 Parquet 模組化加密
<a name="hive-parquet-modular-encryption"></a>

Parquet 模組化加密提供單欄式層級存取控制和加密，以增強以 Parquet 檔案格式儲存的資料的隱私權和資料完整性。從 6.6.0 版開始，Amazon EMR Hive 中提供此功能。

《Amazon EMR 管理指南》中的[加密選項](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-data-encryption-options.html)描述了先前支援的安全性和完整性解決方案，其中包括加密檔案或加密儲存層。這些解決方案可用於 Parquet 檔案，但利用整合式 Parquet 加密機制的新功能可提供對資料欄層級的精細存取，並改善效能和安全性。在 Apache github 頁面 [Parquet 模組化加密](https://github.com/apache/parquet-format/blob/master/Encryption.md)上進一步了解此功能。

使用者使用 Hadoop 組態將組態傳遞給 Parquet 讀取器和寫入器。使用者設定讀取器和寫入器以啟用加密以及切換進階功能的詳細組態記錄在 [PARQUET-1854：Parquet 加密管理的屬性驅動介面](https://docs.google.com/document/d/1boH6HPkG0ZhgxcaRkGk3QpZ8X_J91uXZwVGwYN45St4/edit) 

## 使用範例
<a name="usage-examples"></a>

下列範例涵蓋使用 AWS KMS 建立和寫入 Hive 資料表來管理加密金鑰。

1. 實作 AWS KMS 服務的 KmsClient，如 文件 [PARQUET-1373：加密金鑰管理工具](https://docs.google.com/document/d/1bEu903840yb95k9q2X-BlsYKuXoygE4VnMDl9xz_zhk/edit)中所述。下列範例顯示實作程式碼片段。

   ```
   package org.apache.parquet.crypto.keytools;
   
   import com.amazonaws.AmazonClientException;
   import com.amazonaws.AmazonServiceException;
   import com.amazonaws.regions.Regions;
   import com.amazonaws.services.kms.AWSKMS;
   import com.amazonaws.services.kms.AWSKMSClientBuilder;
   import com.amazonaws.services.kms.model.DecryptRequest;
   import com.amazonaws.services.kms.model.EncryptRequest;
   import com.amazonaws.util.Base64;
   import org.apache.hadoop.conf.Configuration;
   import org.apache.parquet.crypto.KeyAccessDeniedException;
   import org.apache.parquet.crypto.ParquetCryptoRuntimeException;
   import org.apache.parquet.crypto.keytools.KmsClient;
   import org.slf4j.Logger;
   import org.slf4j.LoggerFactory;
   
   import java.nio.ByteBuffer;
   import java.nio.charset.Charset;
   import java.nio.charset.StandardCharsets;
   
   public class AwsKmsClient implements KmsClient {
   
       private static final AWSKMS AWSKMS_CLIENT = AWSKMSClientBuilder
               .standard()
               .withRegion(Regions.US_WEST_2)
               .build();
       public static final Logger LOG = LoggerFactory.getLogger(AwsKmsClient.class);
   
       private String kmsToken;
       private Configuration hadoopConfiguration;
   
       @Override
       public void initialize(Configuration configuration, String kmsInstanceID, String kmsInstanceURL, String accessToken) throws KeyAccessDeniedException {
           hadoopConfiguration = configuration;
           kmsToken = accessToken;
   
       }
   
       @Override
       public String wrapKey(byte[] keyBytes, String masterKeyIdentifier) throws KeyAccessDeniedException {
           String value = null;
           try {
               ByteBuffer plaintext = ByteBuffer.wrap(keyBytes);
   
               EncryptRequest req = new EncryptRequest().withKeyId(masterKeyIdentifier).withPlaintext(plaintext);
               ByteBuffer ciphertext = AWSKMS_CLIENT.encrypt(req).getCiphertextBlob();
   
               byte[] base64EncodedValue = Base64.encode(ciphertext.array());
               value = new String(base64EncodedValue, Charset.forName("UTF-8"));
           } catch (AmazonClientException ae) {
               throw new KeyAccessDeniedException(ae.getMessage());
           }
           return value;
       }
   
       @Override
       public byte[] unwrapKey(String wrappedKey, String masterKeyIdentifier) throws KeyAccessDeniedException {
           byte[] arr = null;
           try {
               ByteBuffer ciphertext  = ByteBuffer.wrap(Base64.decode(wrappedKey.getBytes(StandardCharsets.UTF_8)));
               DecryptRequest request = new DecryptRequest().withKeyId(masterKeyIdentifier).withCiphertextBlob(ciphertext);
               ByteBuffer decipheredtext = AWSKMS_CLIENT.decrypt(request).getPlaintext();
               arr = new byte[decipheredtext.remaining()];
               decipheredtext.get(arr);
           } catch (AmazonClientException ae) {
               throw new KeyAccessDeniedException(ae.getMessage());
           }
           return arr;
       }
   }
   ```

1. 如《 *AWS Key Management Service 開發人員指南*》中的建立金鑰所述，使用具有存取權的 IAM 角色建立頁尾 AWS KMS 的加密[金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)以及資料欄。預設 IAM 角色為 EMR\$1ECS\$1default。

1. 在 Amazon EMR 叢集上的 Hive 應用程式上，使用 `ADD JAR` 陳述式新增上面的用戶端，如 [Apache Hive 資源文件](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Cli#LanguageManualCli-HiveResources)所述。以下是陳述式範例：

   ```
   ADD JAR 's3://location-to-custom-jar';
   ```

   替代方法是使用引導操作將 JAR 新增至 Hive 的 `auxlib`。以下是要新增至引導操作的範例行：

   ```
   aws s3 cp 's3://location-to-custom-jar' /usr/lib/hive/auxlib 
   ```

1. 設定下列組態：

   ```
   set parquet.crypto.factory.class=org.apache.parquet.crypto.keytools.PropertiesDrivenCryptoFactory;
   set parquet.encryption.kms.client.class=org.apache.parquet.crypto.keytools.AwsKmsClient;
   ```

1. 使用 Parquet 格式建立 Hive 資料表，並在 SERDEPROPERTIES 中指定 AWS KMS 金鑰，並將一些資料插入其中：

   ```
   CREATE TABLE my_table(name STRING, credit_card STRING)
   ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe’
   WITH SERDEPROPERTIES (
     'parquet.encryption.column.key’=<aws-kms-key-id-for-column-1>: credit_card’,
     'parquet.encryption.footer.key’='<aws-kms-key-id-for-footer>’)
   STORED AS parquet
   LOCATION “s3://<bucket/<warehouse-location>/my_table”;
   
   INSERT INTO my_table SELECT 
   java_method ('org.apache.commons.lang.RandomStringUtils','randomAlphabetic',5) as name,
   java_method ('org.apache.commons.lang.RandomStringUtils','randomAlphabetic',10) as credit_card
   from (select 1) x lateral view posexplode(split(space(100),' ')) pe as i,x;
   
   select * from my_table;
   ```

1. 確認當您在相同位置建立無法存取 AWS KMS 金鑰的外部資料表時 （例如，IAM 角色存取遭拒），您無法讀取資料。

   ```
   CREATE EXTERNAL TABLE ext_table (name STRING, credit_card STRING)
   ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe’
   STORED AS parquet
   LOCATION “s3://<bucket>/<warehouse-location>/my_table”;
   
   SELECT * FROM ext_table;
   ```

1. 最後一個陳述式應會擲出下列例外狀況：

   ```
   Failed with exception java.io.IOException:org.apache.parquet.crypto.KeyAccessDeniedException: Footer key: access denied
   ```

# HiveServer2 中的傳輸中加密
<a name="hs2-encryption-intransit"></a>

從 Amazon EMR 6.9.0 版開始，HiveServer2 (HS2) 啟用了 TLS/SSL，作為 [HiveServer2 中的傳輸中加密](#hs2-encryption-intransit) 安全組態的一部分。這會影響您連接至在啟用傳輸中加密的 Amazon EMR 叢集上執行的 HS2 的方式。若要連接至 HS2，您必須修改 JDBC URL 中的 `TRUSTSTORE_PATH` 和 `TRUSTSTORE_PASSWORD` 參數值。下列 URL 是具有所需參數的 HS2 的 JDBC 連線範例：

```
jdbc:hive2://HOST_NAME:10000/default;ssl=true;sslTrustStore=TRUSTSTORE_PATH;trustStorePassword=TRUSTSTORE_PASSWORD
```

請使用下面適當的指令來進行叢集上或叢集外 HiveServer2 加密。

------
#### [ On-cluster HS2 access ]

如果您在 SSH 到主節點之後使用 Beeline 用戶端存取 HiveServer2，則參考 `/etc/hadoop/conf/ssl-server.xml` 使用組態 `ssl.server.truststore.location` 和 `ssl.server.truststore.password` 尋找 `TRUSTSTORE_PATH` 和 `TRUSTSTORE_PASSWORD` 參數值。

下列範例命令可以協助您擷取以下組態：

```
TRUSTSTORE_PATH=$(sed -n '/ssl.server.truststore.location/,+2p' /etc/hadoop/conf/ssl-server.xml | awk -F "[><]" '/value/{print $3}')
TRUSTSTORE_PASSWORD=$(sed -n '/ssl.server.truststore.password/,+2p' /etc/hadoop/conf/ssl-server.xml | awk -F "[><]" '/value/{print $3}')
```

------
#### [ Off-cluster HS2 access ]

 如果要從 Amazon EMR 叢集之外的用戶端存取 HiveServer2，您可以使用下列方法之一來取得 `TRUSTSTORE_PATH` 和 `TRUSTSTORE_PASSWORD`：
+ 將在[安全組態](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-encryption-enable.html)期間建立的 PEM 檔案轉換為 JKS 檔案，並在 JDBC 連線 URL 中使用相同的檔案。例如，對於 openssl 和 keytool，使用下列命令：

  ```
  openssl pkcs12 -export -in trustedCertificates.pem -inkey privateKey.pem -out trustedCertificates.p12 -name "certificate"
  keytool -importkeystore -srckeystore trustedCertificates.p12 -srcstoretype pkcs12 -destkeystore trustedCertificates.jks
  ```
+ 或者，參考 `/etc/hadoop/conf/ssl-server.xml` 以使用組態 `ssl.server.truststore.location` 和 `ssl.server.truststore.password` 來尋找 `TRUSTSTORE_PATH` 和 `TRUSTSTORE_PASSWORD` 參數值。將信任庫檔案下載至用戶端機器，並使用用戶端機器上的路徑作為 `TRUSTSTORE_PATH`。

  如需有關從 Amazon EMR 叢集以外的用戶端存取應用程式的詳細資訊，請參閱[使用 Hive JDBC 驅動器](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/HiveJDBCDriver.html)。

------

# Hive 版本歷史記錄
<a name="Hive-release-history"></a>

下表列出 Amazon EMR 的每個發行版本中包含的 Hive 版本，以及與應用程式一起搭配安裝的元件。如需每個發行版本中的元件版本，請參閱 [Amazon EMR 7.x 發行版本](emr-release-7x.md)、[Amazon EMR 6.x 發行版本](emr-release-6x.md) 或 [Amazon EMR 5.x 發行版本](emr-release-5x.md) 中適用於您發行版本的「元件版本」一節。


**Hive 版本資訊**  

| Amazon EMR 發行標籤 | Hive 版本 | 與 Hive 一起搭配安裝的元件 | 
| --- | --- | --- | 
| emr-7.12.0 | 3.1.3-amzn-21 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-hdfs-zkfc, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn, tez-on-worker, zookeeper-client, zookeeper-server | 
| emr-7.11.0 | 3.1.3-amzn-20 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-hdfs-zkfc, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn, tez-on-worker, zookeeper-client, zookeeper-server | 
| emr-7.10.0 | 3.1.3-amzn-19 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn, tez-on-worker, zookeeper-client, zookeeper-server | 
| emr-7.9.0 | 3.1.3-amzn-18 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn, tez-on-worker, zookeeper-client, zookeeper-server | 
| emr-7.8.0 | 3.1.3-amzn-17 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn, tez-on-worker, zookeeper-client, zookeeper-server | 
| emr-7.7.0 | 3.1.3-amzn-16 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn, tez-on-worker, zookeeper-client, zookeeper-server | 
| emr-7.6.0 | 3.1.3-amzn-15 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn, tez-on-worker, zookeeper-client, zookeeper-server | 
| emr-7.5.0 | 3.1.3-amzn-14 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn, tez-on-worker, zookeeper-client, zookeeper-server | 
| emr-7.4.0 | 3.1.3-amzn-13 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn, tez-on-worker, zookeeper-client, zookeeper-server | 
| emr-7.3.0 | 3.1.3-amzn-12 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn, tez-on-worker, zookeeper-client, zookeeper-server | 
| emr-7.2.0 | 3.1.3-amzn-11 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn, tez-on-worker, zookeeper-client, zookeeper-server | 
| emr-5.36.2 | 2.3.9-amzn-2 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn | 
| emr-7.1.0 | 3.1.3-amzn-10 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn, tez-on-worker, zookeeper-client, zookeeper-server | 
| emr-7.0.0 | 3.1.3-amzn-9 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn, tez-on-worker, zookeeper-client, zookeeper-server | 
| emr-6.15.0 | 3.1.3-amzn-8 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn, tez-on-worker, zookeeper-client, zookeeper-server | 
| emr-6.14.0 | 3.1.3-amzn-7 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn, tez-on-worker, zookeeper-client, zookeeper-server | 
| emr-6.13.0 | 3.1.3-amzn-6 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn, tez-on-worker, zookeeper-client, zookeeper-server | 
| emr-6.12.0 | 3.1.3-amzn-5 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn, tez-on-worker, zookeeper-client, zookeeper-server | 
| emr-6.11.1 | 3.1.3-amzn-4.1 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn, tez-on-worker, zookeeper-client, zookeeper-server | 
| emr-6.11.0 | 3.1.3-amzn-4 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn, tez-on-worker, zookeeper-client, zookeeper-server | 
| emr-6.10.1 | 3.1.3-amzn-3.1 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn, tez-on-worker, zookeeper-client, zookeeper-server | 
| emr-6.10.0 | 3.1.3-amzn-3 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn, tez-on-worker, zookeeper-client, zookeeper-server | 
| emr-6.9.1 | 3.1.3-amzn-2.1 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn, zookeeper-client, zookeeper-server | 
| emr-6.9.0 | 3.1.3-amzn-2 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn, zookeeper-client, zookeeper-server | 
| emr-6.8.1 | 3.1.3-amzn-1.1 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn, zookeeper-client, zookeeper-server | 
| emr-6.8.0 | 3.1.3-amzn-1 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn, zookeeper-client, zookeeper-server | 
| emr-6.7.0 | 3.1.3-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn, zookeeper-client, zookeeper-server | 
| emr-5.36.1 | 2.3.9-amzn-2 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn | 
| emr-5.36.0 | 2.3.9-amzn-2 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn | 
| emr-6.6.0 | 3.1.2-amzn-7 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn, zookeeper-client, zookeeper-server | 
| emr-5.35.0 | 2.3.9-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn | 
| emr-6.5.0 | 3.1.2-amzn-6 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn, zookeeper-client, zookeeper-server | 
| emr-6.4.0 | 3.1.2-amzn-5 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn, zookeeper-client, zookeeper-server | 
| emr-6.3.1 | 3.1.2-amzn-4 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn, zookeeper-client, zookeeper-server | 
| emr-6.3.0 | 3.1.2-amzn-4 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn, zookeeper-client, zookeeper-server | 
| emr-6.2.1 | 3.1.2-amzn-3 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn, zookeeper-client, zookeeper-server | 
| emr-6.2.0 | 3.1.2-amzn-3 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn, zookeeper-client, zookeeper-server | 
| emr-6.1.1 | 3.1.2-amzn-2 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn, zookeeper-client, zookeeper-server | 
| emr-6.1.0 | 3.1.2-amzn-2 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn, zookeeper-client, zookeeper-server | 
| emr-6.0.1 | 3.1.2-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn, zookeeper-client, zookeeper-server | 
| emr-6.0.0 | 3.1.2-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn, zookeeper-client, zookeeper-server | 
| emr-5.34.0 | 2.3.8-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn | 
| emr-5.33.1 | 2.3.7-amzn-4 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn | 
| emr-5.33.0 | 2.3.7-amzn-4 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn | 
| emr-5.32.1 | 2.3.7-amzn-3 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn | 
| emr-5.32.0 | 2.3.7-amzn-3 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn | 
| emr-5.31.1 | 2.3.7-amzn-1 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn | 
| emr-5.31.0 | 2.3.7-amzn-1 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn | 
| emr-5.30.2 | 2.3.6-amzn-2 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn | 
| emr-5.30.1 | 2.3.6-amzn-2 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn | 
| emr-5.30.0 | 2.3.6-amzn-2 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mariadb-server, tez-on-yarn | 
| emr-5.29.0 | 2.3.6-amzn-1 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mysql-server, tez-on-yarn | 
| emr-5.28.1 | 2.3.6-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mysql-server, tez-on-yarn | 
| emr-5.28.0 | 2.3.6-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, hudi, mysql-server, tez-on-yarn | 
| emr-5.27.1 | 2.3.5-amzn-1 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.27.0 | 2.3.5-amzn-1 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.26.0 | 2.3.5-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.25.0 | 2.3.5-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.24.1 | 2.3.4-amzn-2 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.24.0 | 2.3.4-amzn-2 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.23.1 | 2.3.4-amzn-1 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.23.0 | 2.3.4-amzn-1 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.22.0 | 2.3.4-amzn-1 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.21.2 | 2.3.4-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.21.1 | 2.3.4-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.21.0 | 2.3.4-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.20.1 | 2.3.4-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.20.0 | 2.3.4-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.19.1 | 2.3.3-amzn-1 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.19.0 | 2.3.3-amzn-1 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.18.1 | 2.3.3-amzn-1 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.18.0 | 2.3.3-amzn-1 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.17.2 | 2.3.3-amzn-1 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.17.1 | 2.3.3-amzn-1 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.17.0 | 2.3.3-amzn-1 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, emr-s3-select, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.16.1 | 2.3.3-amzn-1 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.16.0 | 2.3.3-amzn-1 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.15.1 | 2.3.3-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.15.0 | 2.3.3-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.14.2 | 2.3.2-amzn-2 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.14.1 | 2.3.2-amzn-2 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.14.0 | 2.3.2-amzn-2 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.13.1 | 2.3.2-amzn-2 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.13.0 | 2.3.2-amzn-2 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.12.3 | 2.3.2-amzn-1 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.12.2 | 2.3.2-amzn-1 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.12.1 | 2.3.2-amzn-1 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.12.0 | 2.3.2-amzn-1 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.11.4 | 2.3.2-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.11.3 | 2.3.2-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.11.2 | 2.3.2-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.11.1 | 2.3.2-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.11.0 | 2.3.2-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.10.1 | 2.3.1-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.10.0 | 2.3.1-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.9.1 | 2.3.0-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.9.0 | 2.3.0-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.8.3 | 2.3.0-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.8.2 | 2.3.0-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.8.1 | 2.3.0-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.8.0 | 2.3.0-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.7.1 | 2.1.1-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.7.0 | 2.1.1-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.6.1 | 2.1.1-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.6.0 | 2.1.1-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.5.4 | 2.1.1-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.5.3 | 2.1.1-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.5.2 | 2.1.1-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.5.1 | 2.1.1-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.5.0 | 2.1.1-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.4.1 | 2.1.1-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.4.0 | 2.1.1-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hive-hbase, hcatalog-server, hive-server2, mysql-server, tez-on-yarn | 
| emr-5.3.2 | 2.1.1-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, hive-server, mysql-server, tez-on-yarn | 
| emr-5.3.1 | 2.1.1-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, hive-server, mysql-server, tez-on-yarn | 
| emr-5.3.0 | 2.1.1-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, hive-server, mysql-server, tez-on-yarn | 
| emr-5.2.3 | 2.1.0-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, hive-server, mysql-server, tez-on-yarn | 
| emr-5.2.2 | 2.1.0-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, hive-server, mysql-server, tez-on-yarn | 
| emr-5.2.1 | 2.1.0-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, hive-server, mysql-server, tez-on-yarn | 
| emr-5.2.0 | 2.1.0-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, hive-server, mysql-server, tez-on-yarn | 
| emr-5.1.1 | 2.1.0-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, hive-server, mysql-server, tez-on-yarn | 
| emr-5.1.0 | 2.1.0-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, hive-server, mysql-server, tez-on-yarn | 
| emr-5.0.3 | 2.1.0-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, hive-server, mysql-server, tez-on-yarn | 
| emr-5.0.2 | 2.1.0-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, hive-server, mysql-server, tez-on-yarn | 
| emr-5.0.1 | 2.1.0-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, hive-server, mysql-server, tez-on-yarn | 
| emr-5.0.0 | 2.1.0-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, hive-server, mysql-server, tez-on-yarn | 
| emr-4.9.6 | 1.0.0-amzn-9 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hive-client, hcatalog-server, hive-server, mysql-server | 
| emr-4.9.5 | 1.0.0-amzn-9 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hive-client, hcatalog-server, hive-server, mysql-server | 
| emr-4.9.4 | 1.0.0-amzn-9 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hive-client, hcatalog-server, hive-server, mysql-server | 
| emr-4.9.3 | 1.0.0-amzn-9 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hive-client, hcatalog-server, hive-server, mysql-server | 
| emr-4.9.2 | 1.0.0-amzn-9 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hive-client, hcatalog-server, hive-server, mysql-server | 
| emr-4.9.1 | 1.0.0-amzn-9 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hive-client, hcatalog-server, hive-server, mysql-server | 
| emr-4.8.5 | 1.0.0-amzn-8 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hive-client, hcatalog-server, hive-server, mysql-server | 
| emr-4.8.4 | 1.0.0-amzn-8 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hive-client, hcatalog-server, hive-server, mysql-server | 
| emr-4.8.3 | 1.0.0-amzn-8 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hive-client, hcatalog-server, hive-server, mysql-server | 
| emr-4.8.2 | 1.0.0-amzn-7 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hive-client, hcatalog-server, hive-server, mysql-server | 
| emr-4.8.1 | 1.0.0-amzn-7 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hive-client, hcatalog-server, hive-server, mysql-server | 
| emr-4.8.0 | 1.0.0-amzn-7 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hive-client, hcatalog-server, hive-server, mysql-server | 
| emr-4.7.4 | 1.0.0-amzn-6 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hive-client, hcatalog-server, hive-server, mysql-server | 
| emr-4.7.3 | 1.0.0-amzn-6 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hive-client, hcatalog-server, hive-server, mysql-server | 
| emr-4.7.2 | 1.0.0-amzn-6 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hive-client, hcatalog-server, hive-server, mysql-server | 
| emr-4.7.1 | 1.0.0-amzn-5 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hive-client, hcatalog-server, hive-server, mysql-server | 
| emr-4.7.0 | 1.0.0-amzn-5 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hive-client, hcatalog-server, hive-server, mysql-server | 
| emr-4.6.1 | 1.0.0-amzn-4 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hive-client, hive-metastore-server, hive-server, mysql-server | 
| emr-4.6.0 | 1.0.0-amzn-4 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hive-client, hive-metastore-server, hive-server, mysql-server | 
| emr-4.5.0 | 1.0.0-amzn-4 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hive-client, hive-metastore-server, hive-server, mysql-server | 
| emr-4.4.0 | 1.0.0-amzn-3 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hive-client, hive-metastore-server, hive-server, mysql-server | 
| emr-4.3.0 | 1.0.0-amzn-2 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hive-client, hive-metastore-server, hive-server, mysql-server | 
| emr-4.2.0 | 1.0.0-amzn-1 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hive-client, hive-metastore-server, hive-server, mysql-server | 
| emr-4.1.0 | 1.0.0-amzn-1 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hive-client, hive-metastore-server, hive-server, mysql-server | 
| emr-4.0.0 | 1.0.0-amzn-0 | emrfs, emr-ddb, emr-goodies, emr-kinesis, emr-s3-dist-cp, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hive-client, hive-metastore-server, hive-server, mysql-server | 

# 依版本列出的 Hive 版本備註
<a name="Hive-release-history-versions"></a>

**Topics**
+ [Amazon EMR 7.10.0 - Hive 版本備註](Hive-release-history-7100.md)
+ [Amazon EMR 7.9.0 - Hive 版本備註](Hive-release-history-790.md)
+ [Amazon EMR 7.8.0 - Hive 版本備註](Hive-release-history-780.md)
+ [Amazon EMR 7.7.0 - Hive 版本備註](Hive-release-history-770.md)
+ [Amazon EMR 7.6.0 - Hive 版本備註](Hive-release-history-760.md)
+ [Amazon EMR 7.5.0 - Hive 版本備註](Hive-release-history-750.md)
+ [Amazon EMR 7.4.0 - Hive 版本備註](Hive-release-history-740.md)
+ [Amazon EMR 7.3.0 - Hive 版本備註](Hive-release-history-730.md)
+ [Amazon EMR 7.2.0 - Hive 版本備註](Hive-release-history-720.md)
+ [Amazon EMR 7.1.0 - Hive 版本備註](Hive-release-history-710.md)
+ [Amazon EMR 7.0.0 - Hive 版本備註](Hive-release-history-700.md)
+ [Amazon EMR 6.15.0：Hive 版本備註](Hive-release-history-6150.md)
+ [Amazon EMR 6.14.0 – Hive 版本備註](Hive-release-history-6140.md)
+ [Amazon EMR 6.13.0 – Hive 版本備註](Hive-release-history-6130.md)
+ [Amazon EMR 6.12.0 – Hive 版本備註](Hive-release-history-6120.md)
+ [Amazon EMR 6.11.0 – Hive 版本備註](Hive-release-history-6110.md)
+ [Amazon EMR 6.10.0 – Hive 版本備註](Hive-release-history-6100.md)
+ [Amazon EMR 6.9.0 – Hive 版本備註](Hive-release-history-690.md)
+ [Amazon EMR 6.8.0 – Hive 版本備註](Hive-release-history-680.md)
+ [Amazon EMR 6.7.0 – Hive 版本備註](Hive-release-history-670.md)
+ [Amazon EMR 6.6.0 – Hive 版本備註](Hive-release-history-660.md)

# Amazon EMR 7.10.0 - Hive 版本備註
<a name="Hive-release-history-7100"></a>

## Amazon EMR 7.10.0 - Hive 變更
<a name="Hive-release-history-changes-7100"></a>


****  

| Type | 說明 | 
| --- | --- | 
| 錯誤修正 | [TEZ-4595](https://issues.apache.org/jira/browse/TEZ-4595) 的 Hive 端修正。 | 

**已知問題**
+ AWS EMR-7.10.0 的 EMR 現在使用 S3A 做為預設檔案系統 （取代 EMRFS)，這表示 Hive 操作不會再在 S3 中建立`_$folder$`標記物件，而且相較於 EMRFS 的 HDFS，Hive 寫入查詢中使用的中繼資訊清單檔案現在會存放在 S3 中。如需使用 S3A 時的考量事項，請參閱[遷移指南](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-s3a-migrate.html)。
+ 從 EMR-7.3.0 到 EMR-7.10.0，由於 Hive Iceberg 整合，因此存在錯誤，當 Glue Data Catalog 用作中繼存放區時，會導致 Hive 中的 HBase AWS 資料表建立失敗。如果您遇到此問題，請聯絡 AWS 支援團隊。

# Amazon EMR 7.9.0 - Hive 版本備註
<a name="Hive-release-history-790"></a>

## Amazon EMR 7.9.0 - Hive 變更
<a name="Hive-release-history-changes-790"></a>


****  

| Type | 說明 | 
| --- | --- | 
| 錯誤修正 | 如果透過 CTAS 建立的資料表是 ACID，則不應使用 Hive Blobstore Committer。 | 
| 錯誤修正 | [HIVE-26096](https://issues.apache.org/jira/browse/HIVE-26096)：在單欄 MultiDelimitSerDe 資料表上選取會擲回 AIOBE (\$13158)。 | 
| 升級 | 透過向後移植 [HIVE-26954](https://issues.apache.org/jira/browse/HIVE-26954)、[HIVE-27877](https://issues.apache.org/jira/browse/HIVE-27877) 和 [HIVE-28574](https://issues.apache.org/jira/browse/HIVE-28574)，將 Avro 版本升級至 1.11.4。 | 

**已知問題**
+ 對於使用 Amazon S3 Express One Zone 作為輸出位置的 Hive Insert 覆寫查詢，請將 core-site 組態： `fs.s3a.directory.operations.purge.uploads`設定為 `false`。
+ 從 EMR-7.3.0 到 EMR-7.10.0，由於 Hive Iceberg 整合，因此存在錯誤，當 Glue Data Catalog 用作中繼存放區時，會導致 Hive 中的 HBase AWS 資料表建立失敗。如果您遇到此問題，請聯絡 AWS 支援團隊。

# Amazon EMR 7.8.0 - Hive 版本備註
<a name="Hive-release-history-780"></a>

## Amazon EMR 7.8.0 - Hive 變更
<a name="Hive-release-history-changes-780"></a>


****  

| Type | 說明 | 
| --- | --- | 
| 錯誤修正 | 修正 CVE-2024-23953：Apache Hive：針對 LLAP 中的簽章的計時攻擊。 | 

**已知問題**
+ 對於使用 Amazon S3 Express One Zone 作為輸出位置的 Hive Insert 覆寫查詢，請將 core-site 組態： `fs.s3a.directory.operations.purge.uploads`設定為 `false`。

# Amazon EMR 7.7.0 - Hive 版本備註
<a name="Hive-release-history-770"></a>

## Amazon EMR 7.7.0 - Hive 變更
<a name="Hive-release-history-changes-770"></a>


****  

| Type | 說明 | 
| --- | --- | 
| 錯誤修正 | 修正 CVE-2024-29869：Apache Hive：使用非限制性許可建立的登入資料檔案。 | 
| 錯誤修正 | 在 Apache Ran 中啟用資料列層級篩選政策時修正SemanticException。 | 
| 錯誤修正 | 啟用 LLAP 或 ACID 時停用 Tez 非同步初始化 RR。 | 

**已知問題**
+ 對於使用 Amazon S3 Express One Zone 作為輸出位置的 Hive Insert 覆寫查詢，請將 core-site 組態： `fs.s3a.directory.operations.purge.uploads`設定為 `false`。

# Amazon EMR 7.6.0 - Hive 版本備註
<a name="Hive-release-history-760"></a>

## Amazon EMR 7.6.0 - Hive 變更
<a name="Hive-release-history-changes-760"></a>


****  

| Type | 說明 | 
| --- | --- | 
| 改進項目 | 新增 ORC 非 ACID 分割資料表的快速 S3 字首清單功能 | 
| 功能 | 新增對 S3AFileSystem 上 Hive 寫入查詢的魔術發射器支援 | 

**已知問題**
+ 對於使用 Amazon S3 Express One Zone 作為輸出位置的 Hive Insert 覆寫查詢，請將 core-site 組態： `fs.s3a.directory.operations.purge.uploads`設定為 `false`。

### Amazon EMR 7.6.0 - 新組態
<a name="Hive-release-history-changes-760-new-configs"></a>


****  

| 分類 | 名稱 | 預設 | Description | 
| --- | --- | --- | --- | 
| hive-site | `hive.exec.fast.s3.partition.discovery.enabled` | true | 是否使用快速 S3 分割區探索進行分割計算。這將為支援的檔案格式啟用字首型清單：ORC。請注意，此功能使用 S3 Express One Zone 儲存類別不支援的 S3 API 參數。使用它們時，請停用此功能。 | 
| hive-site | `hive.exec.fast.s3.partition.discovery.max.thread.threshold` | 128 | 快速 S3 分割區探索的最大平行處理程度。 | 
| hive-site | `hive.exec.fast.s3.partition.discovery.parallelism` | 10 | 單次執行快速 S3 分割區探索的平行處理程度。只有在 `hive.exec.fast.s3.partition.discovery.enabled` 設定為 時，此組態才會產生效果 `true` | 
| hive-site | `hive.blobstore.output-committer.magic.track.commits.in.memory.enabled` | true | 使用 Hive 切換的旗標是否應追蹤記憶體中所有待處理的遞交？ 魔術遞交者可以選擇將遞交資料存放在記憶體中，透過較少的 S3 呼叫來加速 TaskCommit 操作。此組態會覆寫 Hadoop 組態 `fs.s3a.committer.magic.track.commits.in.memory.enabled` | 
| hive-site | `hive.blobstore.output-committer.dp.skip.task.staging.dir.creation` | true | Magic committer 是否應該在 blobstore 中建立 dp 預備路徑來切換的旗標？ 此旗標僅適用於當 Hive 透過 使用 Magic Committer 時，在記憶體中追蹤遞交的情況`hive.blobstore.output-committer.magic.track.commits.in.memory.enabled`。根據預設，它會設為 true，但只有在`hive.blobstore.output-committer.magic.track.commits.in.memory.enabled`啟用 ，並在 Blobstore 中儲存建立任務嘗試路徑的其他 S3 呼叫時才會生效。 | 
| hive-site | `hive.blobstore.output-committer.magic.disable.fs.cache.for.llap` | true | 使用 Magic Committer 時，要在 LLAP 的寫入流程中停用 Blobstore FS 快取的切換旗標。此標記會在啟用 LLAP 時顯示，且預設為 true。 | 

# Amazon EMR 7.5.0 - Hive 版本備註
<a name="Hive-release-history-750"></a>

## Amazon EMR 7.5.0 - Hive 變更
<a name="Hive-release-history-changes-750"></a>


****  

| Type | 說明 | 
| --- | --- | 
| 改進項目 | 將嘗試使用 HiveCLI 中現有的工作階段時，等待 Tez 工作階段開啟的時間上限增加到 10 秒 | 
| 改進 | 調校組態，以透過 LIMIT 改善簡單選取查詢中的效能 | 

# Amazon EMR 7.4.0 - Hive 版本備註
<a name="Hive-release-history-740"></a>

## Amazon EMR 7.4.0 - Hive 變更
<a name="Hive-release-history-changes-740"></a>


****  

| Type | 說明 | 
| --- | --- | 
| 升級 | [HIVE-28191](https://issues.apache.org/jira/browse/HIVE-28191)：將 Hadoop 版本升級至 3.4.0 | 
| 升級 |  將 hadoop 著色 protobuf 升級至 3.21 | 
| 升級 | 將 commons-cli 升級至 1.5.0 | 
| 升級 | 升級 commons-compress 至 1.24.0 | 
| 升級 | 將 commons-io 升級至 2.14.0 | 
| 升級 | 將 commons-lang3 升級至 3.21.0 | 
| 改進 | 將嘗試在 HiveCLI 中使用現有工作階段時等待 Tez 工作階段開啟的時間變更為 10 秒 | 
| 改進 | 使用 LIMIT 在 Tez DAG 中啟用簡易選取查詢的短路機制 | 
| 改進 | [HIVE-21100](https://issues.apache.org/jira/browse/HIVE-21100)：允許扁平化使用 TEZ 引擎和 UNION 子句時產生的資料表子目錄 | 
| 錯誤修正 | [HIVE-25095](https://issues.apache.org/jira/browse/HIVE-25095)：Beeline/hive -e 命令無法處理結尾引號的查詢 | 
| 錯誤修正 | [HIVE-13781](https://issues.apache.org/jira/browse/HIVE-13781)：分割區目錄不存在時FileNotFoundException 的 Tez 任務失敗  | 
| 錯誤修正 | [HIVE-28480](https://issues.apache.org/jira/browse/HIVE-28480)：停用先前 RS 中跨聯結分支的分割區雜湊產生器不相符上的 SMB | 

### Amazon EMR 7.4.0 - 新組態
<a name="Hive-release-history-changes-740-new-configs"></a>


****  

| 分類 | 名稱 | 預設 | Description | 
| --- | --- | --- | --- | 
| hive-site | hive.ignore.failure.partition.dir.not.found | false | 如果資料表分割區存在但實際物件儲存路徑不存在，則忽略失敗。 | 
| hive-site | hive.tez.union.flatten.subdirectories | false | 將資料寫入資料表時，UNION ALL 是查詢的最後一個步驟，Hive on Tez 會為 UNION ALL 的每個分支建立子目錄。啟用此屬性時，會移除子目錄，並將檔案重新命名並移至父目錄。請注意，啟用 hive.blobstore.use.output-committer 時，這沒有任何影響。 | 

# Amazon EMR 7.3.0 - Hive 版本備註
<a name="Hive-release-history-730"></a>

## Amazon EMR 7.3.0 - Hive 變更
<a name="Hive-release-history-changes-730"></a>


****  

| Type | 說明 | 
| --- | --- | 
| 功能 | [ HIVE-18728](https://issues.apache.org/jira/browse/HIVE-18728) – 使用 SSL 保護 webHCat。 | 
| 改進 | 支援設定 LLAP 協助程式 Web UI 的 SSL 金鑰存放區憑證。 | 
| 改進 | 提供選項來控制 Hive 中繼存放區伺服器的 SSL 主機名稱驗證。 | 
| 錯誤修正 | [ HIVE-26541](https://issues.apache.org/jira/browse/HIVE-26541) – 啟動 WebHCat Service 時的 NPE。 | 
| 錯誤修正 | [ HIVE-23011](https://issues.apache.org/jira/browse/HIVE-23011) – 共用工作最佳化工具應在比較聯結時檢查剩餘述詞。 | 
| 錯誤修正 | 修正 **javax.security.sasl.SaslException**：啟用傳輸中加密時，HMS 和 Namenode 之間的用戶端和伺服器之間沒有通用的保護層。 | 
| 錯誤修正 | 修正 **IOException**，其中 orc 分割的結尾與區塊位置的開頭重疊。 | 
| 錯誤修正 | 當資料欄名稱包含逗號字元並使用 CSVSerde 時，請使用資料欄名稱分隔符號，而不是一律以逗號分隔。 | 

### Amazon EMR 7.3.0 - 新組態
<a name="Hive-release-history-changes-730-new-configs"></a>


****  

| 分類 | 名稱 | 預設 | Description | 
| --- | --- | --- | --- | 
| hcatalog-webhcat-site | templeton.use.ssl | false | 針對 WebHCat 伺服器使用 SSL 加密，將此設定為 true。 | 
| hcatalog-webhcat-site | templeton.keystore.path |  | WebHCat 伺服器的 SSL 憑證金鑰存放區位置。 | 
| hcatalog-webhcat-site | templeton.keystore.password |  | WebHCat 伺服器的 SSL 憑證金鑰存放區密碼。 | 
| hcatalog-webhcat-site | templeton.ssl.protocol.blacklist | SSLv2, SSLv3 | 為 WebHCat 伺服器停用的 SSL 版本。 | 
| hcatalog-webhcat-site | Tempton.host | 0.0.0.0 | WebHCat 伺服器將接聽的主機地址。 | 
| hive-site | hive.metastore.ssl.enable.hostname.verification | false | 在 SSL/TLS 交握期間控制主機名稱驗證。 | 
| hive-site | hive.llap.daemon.web.ssl.keystore.path |  | LLAP 協助程式 Web UI 的 SSL 憑證金鑰存放區位置。 | 
| hive-site | hive.llap.daemon.web.ssl.keystore.password |  | LLAP 協助程式 Web UI 的 SSL 憑證金鑰存放區密碼。 | 
| hive-site | hive.metastore.hadoop.rpc.protection.override.to.authentication | false | 啟用時，HMS 一律會覆寫其組態集中用於身分驗證的 hadoop.rpc.protection 值。 | 

# Amazon EMR 7.2.0 - Hive 版本備註
<a name="Hive-release-history-720"></a>

## Amazon EMR 7.2.0 - Hive 變更
<a name="Hive-release-history-changes-720"></a>


****  

| Type | 說明 | 
| --- | --- | 
| 升級 | [ Parquet 1.13.1](https://github.com/apache/parquet-java/blob/apache-parquet-1.13.1/CHANGES.md) – Parquet 已升級至 113.1。 | 
| 改進 | [ HIVE-12930](https://issues.apache.org/jira/browse/HIVE-12930) – 支援 LLAP 的 SSL 隨機播放。 | 
| 改進 | [ HIVE-23062](https://issues.apache.org/jira/browse/HIVE-23062) – Hive 在 TLS 和 Yarn HA 模式中檢查自訂 Tez 佇列的 Yarn RM URL。 | 
| 錯誤修正 | [ HIVE-27952](https://issues.apache.org/jira/browse/HIVE-27952) – 當 KeyStore 有多個憑證時，Hive 無法建立 SslContextFactory。 | 
| 錯誤修正 | [ HIVE-28085](https://issues.apache.org/jira/browse/HIVE-28085) – YarnQueueHelper 無法存取啟用 HTTPS 的 YARN WebService。 | 
| 錯誤修正 | [ HIVE-26436](https://issues.apache.org/jira/browse/HIVE-26436) – MR NullPointerException 上的 Hive 未呼叫並關閉呼叫 initializeOp 時。如果運算子尚未初始化，請略過關閉。 | 

### Amazon EMR 7.2.0 - 新組態
<a name="Hive-release-history-changes-720-new-configs"></a>


****  

| 分類 | 名稱 | 預設 | Description | 
| --- | --- | --- | --- | 
| hive-site | hive.llap.shuffle.ssl.enabled | false | 設定為 true 並搭配 *tez.runtime.shuffle.ssl.enable*，以啟用 LLAP 的 SSL 隨機播放。 | 

# Amazon EMR 7.1.0 - Hive 版本備註
<a name="Hive-release-history-710"></a>

## Amazon EMR 7.1.0 - Hive 變更
<a name="Hive-release-history-changes-6150"></a>


****  

| Type | 說明 | 
| --- | --- | 
| 錯誤修正 | [ HIVE-24381](https://issues.apache.org/jira/browse/HIVE-24381) – 如果包含略過標頭/頁尾，則壓縮文字輸入會傳回 0 列。 | 
| 錯誤修正 | [ HIVE-24190](https://issues.apache.org/jira/browse/HIVE-24190) – LLAP：ShuffleHandler 可能會根據 TEZ-4233 傳回 DISK\$1ERROR\$1EXCEPTION。 | 
| 錯誤修正 | [ HIVE-23073](https://issues.apache.org/jira/browse/HIVE-23073) – Shade Netty。 | 
| 錯誤修正 | [ HIVE-23073](https://issues.apache.org/jira/browse/HIVE-23073) – 著色 Netty 並升級至 netty 4.1.48.Final。 | 
| 錯誤修正 | [ HIVE-23148](https://issues.apache.org/jira/browse/HIVE-23148) – Llap 外部用戶端流程因網路著色而中斷。 | 
| 錯誤修正 | [ HIVE-25180](https://issues.apache.org/jira/browse/HIVE-25180) – 升級 Netty。 | 
| 錯誤修正 | [ HIVE-24524](https://issues.apache.org/jira/browse/HIVE-24524) – LLAP ShuffleHandler：升級至 Netty4，並在可能的情況下從 hive 中移除 Netty3 相依性。 | 
| 錯誤修正 | [ HIVE-28000](https://issues.apache.org/jira/browse/HIVE-28000) – Hive QL：當類型強制無法發生時，「不在」子句會提供不正確的結果。 | 
| 錯誤修正 | [ HIVE-27993](https://issues.apache.org/jira/browse/HIVE-27993) – Netty4 ShuffleHandler 應使用 1 個凸執行緒。 | 
| 升級 | 將 Netty 升級到 4.1.100.Final | 
| 升級 | 將 Jetty 升級到 9.4.53.v20231009 | 
| 升級 | 將 Zookeeper 升級到 3.9.1 | 

## Amazon EMR 7.1.0 - Hive 變更
<a name="emr-Hive-710-issues"></a>
+ Amazon EMR 7.1 將 Hive 升級到 Netty 4.1.100.Final 以解決 Netty3 中的安全漏洞。由於 hive-druid-handler 對 netty3 具有相依性，因此 Hive 在 Amazon EMR 7.1 的 Hive 的 classpath 中沒有 `hive-druid-handler` JAR。即將發行的 Amazon EMR 版本會在 Druid 處理常式支援 4.1.100.Final 或更新版本的 Netty 時，將其包含在 Hive 的 classpath 中。如果您需要 Amazon EMR 7.1 版或更新版本中的 `hive-druid-handler` JAR，請聯絡 AWS 支援部門。

# Amazon EMR 7.0.0 - Hive 版本備註
<a name="Hive-release-history-700"></a>

## Amazon EMR 7.0.0 - Hive 變更
<a name="Hive-release-history-changes-700"></a>


****  

| Type | 說明 | 
| --- | --- | 
| 升級 | Hive Runtime 現在預設使用 Java 17。如需詳細資訊，請參閱 [EMR 7.0.0 版本指南](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-700-release.html)。 | 
| 向後移植 | [HIVE-17709](https://issues.apache.org/jira/browse/HIVE-17709)：移除 sun.misc.Cleaner 參考 | 
| 錯誤修正 | 啟用 LLAP 或 ACID 時停用 Tez 非同步初始化 RR  | 

# Amazon EMR 6.15.0：Hive 版本備註
<a name="Hive-release-history-6150"></a>

## Amazon EMR 6.15.0：Hive 變更
<a name="Hive-release-history-changes-6150"></a>


****  

| Type | 說明 | 
| --- | --- | 
| 功能 | 支援 [TEZ-4397](https://issues.apache.org/jira/browse/TEZ-4397)：針對 Tez 非同步分割開啟，Hive 現已支援 [Tez 非同步分割開啟](tez-configure.md#tez-configure-async) 中所述的 Tez 組態。 | 
| 錯誤修正 | [HIVE-25400](https://issues.apache.org/jira/browse/HIVE-25400)：將位移更新從 `BytesColumnVector` 移至 `setValPreallocated`。 | 
| 錯誤修正 | [HIVE-25190](https://issues.apache.org/jira/browse/HIVE-25190)：修正 `BytesColumnVector` 中的許多小型配置。 | 
| 錯誤修正 | 使用 llap 伺服器封裝 netty 模組，以避免在工作者節點上啟動 *LLapDaemon* 時發生 *NoClassDefFound* 例外狀況。 | 
| 升級 | 將 Apache Hadoop 升級至 3.3.6。 | 
| 升級 | [HIVE-26684](https://issues.apache.org/jira/browse/HIVE-26684)：將 `maven-shade-plugin` 升級至 3.4.1。 | 
| 改進 | 若要縮短 Amazon EMR 叢集啟動時間，請從 HCatalog 啟動指令碼中移除 15 秒的睡眠時間。 | 

# Amazon EMR 6.14.0 – Hive 版本備註
<a name="Hive-release-history-6140"></a>

## Amazon EMR 6.14.0 – Hive 變更
<a name="Hive-release-history-changes-6140"></a>


****  

| Type | 說明 | 
| --- | --- | 
|  改進項目  |  [HIVE-26762](https://issues.apache.org/jira/browse/HIVE-26762)：移除 `HiveFilterSetOpTransposeRule` 中的運算元剔除 | 
|  錯誤修正  |  [HIVE-27582](https://issues.apache.org/jira/browse/HIVE-27582)：不要在 FetchOperator 中快取 HBase 資料表輸入格式 | 
|  錯誤修正  |  [HIVE-26452](https://issues.apache.org/jira/browse/HIVE-26452)：將 JOIN 轉換為 MAPJOIN 且 JOIN 資料欄多次參考 時，出現 NPE | 
|  錯誤修正  |  [HIVE-26416](https://issues.apache.org/jira/browse/HIVE-26416)：`AcidUtils.isRawFormatFile()` 對 non-ORC 檔案擲出 `InvalidProtocolBufferException`  | 
|  錯誤修正  |  [HIVE-26105](https://issues.apache.org/jira/browse/HIVE-26105)：如果資料欄**註解**包含特定中文字元，**顯示資料欄**將顯示額外值  | 
|  錯誤修正  |  [HIVE-25864](https://issues.apache.org/jira/browse/HIVE-25864)：Hive 查詢優化為使用視窗化函數的述詞下推建立了錯誤的計畫  | 
|  錯誤修正  |  [HIVE-25224](https://issues.apache.org/jira/browse/HIVE-25224)：涉及具有不同 `bucketing_versions` 的資料表的多個 INSERT 陳述式導致錯誤 | 
|  錯誤修正  |  [HIVE-24151](https://issues.apache.org/jira/browse/HIVE-24151)：如果字串包含 non-ASCII 字元，`MultiDelimitSerDe` 會轉移資料 | 
|  錯誤修正  |  [HIVE-23606](https://issues.apache.org/jira/browse/HIVE-23606)：`EncodedReaderImpl` 的 `DirectByteBuffer` 清理延遲 | 
|  錯誤修正  |  [HIVE-22165](https://issues.apache.org/jira/browse/HIVE-22165)：[HIVE-14296](https://issues.apache.org/jira/browse/HIVE-14296) 在 `SessionManager.closeSession` 上引入的同步導致忙碌的 Hive 伺服器出現高延遲  | 
|  錯誤修正  |  [HIVE-21304](https://issues.apache.org/jira/browse/HIVE-21304)：使儲存貯體版本的使用更加穩健 | 

# Amazon EMR 6.13.0 – Hive 版本備註
<a name="Hive-release-history-6130"></a>

## Amazon EMR 6.13.0 – Hive 變更
<a name="Hive-release-history-changes-6130"></a>


****  

| Type | 說明 | 
| --- | --- | 
|  改進項目  |  升級 Python 指令碼以支援 Python3  | 
|  改進項目  |  [HIVE-27097](https://issues.apache.org/jira/browse/HIVE-27097)：改進中繼存放區用戶端和伺服器的重試策略  | 
|  錯誤修正  |  [HIVE-21778](https://issues.apache.org/jira/browse/HIVE-21778)：CBO：「結構不是 Null」評估為可為 Null，一律導致查詢中篩選條件遺失  | 
|  錯誤修正  |  [HIVE-21009](https://issues.apache.org/jira/browse/HIVE-21009)：新增使用者設定繫結使用者的功能  | 
|  錯誤修正  |  [HIVE-22661](https://issues.apache.org/jira/browse/HIVE-22661)：在路徑中載入資料的非歸納資料表上壓縮失敗  | 
|  錯誤修正  |  [HIVE-19718](https://issues.apache.org/jira/browse/HIVE-19718)：大量新增分割區也會擷取每個分割區的資料表  | 
|  錯誤修正  |  [HIVE-22173](https://issues.apache.org/jira/browse/HIVE-22173)：在編譯期間，具有多個側檢視的查詢停止回應  | 
|  錯誤修正  |  [HIVE-27088](https://issues.apache.org/jira/browse/HIVE-27088)：合併具有後聯結篩選條件的內聯結和外聯結時，結果不正確  | 
|  錯誤修正  |  [HIVE-21935](https://issues.apache.org/jira/browse/HIVE-21935)：Hive 向量化：向量化 UDF 導致效能降低  | 
|  錯誤修正  |  [HIVE-25299](https://issues.apache.org/jira/browse/HIVE-25299)：對於非 UTC 時區，將時間戳記轉換為數字資料類型是不正確的  | 
|  錯誤修正  |  [HIVE-24626](https://issues.apache.org/jira/browse/HIVE-24626)：LLAP：如果所有 IO 電梯執行緒都忙於排入其他佇列已滿的讀取器，則讀取器執行緒可能會面臨短缺  | 
|  錯誤修正  |  [HIVE-27029](https://issues.apache.org/jira/browse/HIVE-27029)：hive 查詢失敗，並顯示檔案系統關閉錯誤，已對 HIVE-26352 進行返工  | 
|  錯誤修正  |  [HIVE-26352](https://issues.apache.org/jira/browse/HIVE-26352)：Tez 佇列存取檢查失敗，壓縮時出現 GSS 例外狀況  | 
|  錯誤修正  |  [HIVE-24590](https://issues.apache.org/jira/browse/HIVE-24590)：操作日誌記錄仍然洩漏 log4j 附加器  | 
|  錯誤修正  |  [HIVE-24552](https://issues.apache.org/jira/browse/HIVE-24552)：loadDynamicPartitions 中可能存在 HMS 連接洩漏或累積  | 
|  錯誤修正  |  [HIVE-27069](https://issues.apache.org/jira/browse/HIVE-27069)：儲存貯體映射聯結時，結果不正確  | 
|  錯誤修正  |  [HIVE-27344](https://issues.apache.org/jira/browse/HIVE-27344)：在 RecordReaderImpl\$1close 中新增 Null 檢查  | 
|  錯誤修正  |  [HIVE-27439](https://issues.apache.org/jira/browse/HIVE-27439)：支援以十進位表示的空格  | 
|  錯誤修正  |  [HIVE-27267](https://issues.apache.org/jira/browse/HIVE-27267)：在具有子查詢的十進位歸納資料欄上執行儲存貯體映射聯結時，結果不正確  | 
|  錯誤修正  |  [HIVE-21986](https://issues.apache.org/jira/browse/HIVE-21986)：HiveServer Web UI：在預設回應標頭中設定 Strict-Transport-Security  | 
|  錯誤修正  |  [HIVE-22148](https://issues.apache.org/jira/browse/HIVE-22148)：S3A 委派字符未新增在壓縮器的作業組態中。  | 
|  錯誤修正  |  [HIVE-22622](https://issues.apache.org/jira/browse/HIVE-22622)：Hive 允許建立具有重複屬性名稱的結構  | 
|  錯誤修正  |  [HIVE-22008](https://issues.apache.org/jira/browse/HIVE-22008)：LIKE 運算子應符合多行輸入  | 
|  錯誤修正  |  [HIVE-23144](https://issues.apache.org/jira/browse/HIVE-23144)：LLAP：讓 QueryTracker 在 serviceStop 上進行清除  | 
|  錯誤修正  |  [HIVE-22391](https://issues.apache.org/jira/browse/HIVE-22391)：檢查 Hive 查詢結果快取時出現 NPE  | 
|  錯誤修正  |  [HIVE-23305](https://issues.apache.org/jira/browse/HIVE-23305)：由於競爭條件，LlapTaskSchedulerService addNode 中出現 NullPointerException  | 
|  錯誤修正  |  [HIVE-22178](https://issues.apache.org/jira/browse/HIVE-22178)：Parquet FilterPredicate 在 SchemaEvolution 之後擲出 CastException  | 
|  錯誤修正  |  [HIVE-21517](https://issues.apache.org/jira/browse/HIVE-21517)：修正 AggregateStatsCache  | 
|  錯誤修正  |  [HIVE-21825](https://issues.apache.org/jira/browse/HIVE-21825)：改進啟用主動/被動 HA 時的用戶端錯誤訊息  | 
|  錯誤修正  |  [HIVE-23389](https://issues.apache.org/jira/browse/HIVE-23389)：FilterMergeRule 可能會導致 AssertionError  | 
|  錯誤修正  |  [HIVE-22767](https://issues.apache.org/jira/browse/HIVE-22767)：Beeline 無法正確剖析註解中的分號  | 
|  錯誤修正  |  [HIVE-22996](https://issues.apache.org/jira/browse/HIVE-22996)：BasicStats 剖析應主動檢查 null 或空字串  | 
|  錯誤修正  |  [HIVE-22808](https://issues.apache.org/jira/browse/HIVE-22808)：HiveRelFieldTrimmer 無法處理 HiveTableFunctionScan  | 
|  錯誤修正  |  [HIVE-22437](https://issues.apache.org/jira/browse/HIVE-22437)：LLAP 中繼資料在鎖定中繼資料時快取 NPE。  | 
|  錯誤修正  |  [HIVE-22606](https://issues.apache.org/jira/browse/HIVE-22606)：AvroSerde 在 INFO 層級下記錄 avro.schema.literal  | 
|  錯誤修正  |  [HIVE-22713](https://issues.apache.org/jira/browse/HIVE-22713)：不應對 Join-Fil(\$1)-RS 結構進行持續傳播  | 
|  錯誤修正  |  [HIVE-21624](https://issues.apache.org/jira/browse/HIVE-21624)：LLAP：執行緒層級的 Cpu 指標已損壞  | 
|  錯誤修正  |  [HIVE-22815](https://issues.apache.org/jira/browse/HIVE-22815)：減少在 MROutput 中建立不必要的檔案系統物件的次數  | 
|  錯誤修正  |  [HIVE-23060](https://issues.apache.org/jira/browse/HIVE-23060)：查詢失敗，並顯示錯誤「分組集表達式不在 GROUP BY 金鑰中。在字符附近遇到錯誤」  | 
|  錯誤修正  |  [HIVE-22236](https://issues.apache.org/jira/browse/HIVE-22236)：無法透過選取包含 `NOT IN` 子查詢的檢視來建立檢視  | 
|  錯誤修正  |  [HIVE-19886](https://issues.apache.org/jira/browse/HIVE-19886)：如果使用 -hiveconf hive.log.file，則日誌可能會導向至 2 個檔案  | 
|  錯誤修正  |  [HIVE-20620](https://issues.apache.org/jira/browse/HIVE-20620)：插入具有動態分割的歸納排序 MM 資料表時，出現清單檔案衝突  | 
|  錯誤修正  |  [HIVE-14557](https://issues.apache.org/jira/browse/HIVE-14557)：同時啟用 SkewJoin 和 Mapjoin 時為空指標  | 
|  錯誤修正  |  [HIVE-20471](https://issues.apache.org/jira/browse/HIVE-20471)：取得預設的資料庫路徑時發生問題  | 
|  錯誤修正  |  [HIVE-20598](https://issues.apache.org/jira/browse/HIVE-20598)：修正 HiveAlgorithmsUtil 計算中的拼寫錯誤  | 
|  錯誤修正  |  [HIVE-14737](https://issues.apache.org/jira/browse/HIVE-14737)：在 Kerberized Hive Server 2 Web UI 中存取 /logs 時發生問題  | 
|  錯誤修正  |  [HIVE-20733](https://issues.apache.org/jira/browse/HIVE-20733)：GenericUDFOPEqualNS 不能在計畫描述中使用 =  | 
|  錯誤修正  |  [HIVE-20848](https://issues.apache.org/jira/browse/HIVE-20848)：設定 UpdateInputAccessTimeHook 之後，查詢失敗並顯示找不到資料表。  | 
|  錯誤修正  |  [HIVE-18929](https://issues.apache.org/jira/browse/HIVE-18929)：HiveStringUtils.java 中的 humanReadableInt 方法存在競爭條件。  | 
|  錯誤修正  |  [HIVE-20841](https://issues.apache.org/jira/browse/HIVE-20841)：LAP：將動態連接埠設為可設定  | 
|  錯誤修正  |  [HIVE-20930](https://issues.apache.org/jira/browse/HIVE-20930)：FILTER 模式下的 VectorCoalesce 不生效  | 
|  錯誤修正  |  [HIVE-21007](https://issues.apache.org/jira/browse/HIVE-21007)：半聯結 \$1 聯集可能會導致計畫錯誤  | 
|  錯誤修正  |  [HIVE-21074](https://issues.apache.org/jira/browse/HIVE-21074)：Hive 歸納資料表查詢剔除不適用於 IS NOT NULL 條件  | 
|  錯誤修正  |  [HIVE-21223](https://issues.apache.org/jira/browse/HIVE-21223)：當分割區不存在時，CachedStore 傳回空分割區  | 
|  錯誤修正  |  [HIVE-19625](https://issues.apache.org/jira/browse/HIVE-19625)：Hive\$1copyFiles 中潛在的 NPE 和隱藏的實際例外狀況  | 
|  錯誤修正  |  [HIVE-17020](https://issues.apache.org/jira/browse/HIVE-17020)：主動 RS 重複資料刪除可能會錯誤地移除 OP 樹分支  | 
|  錯誤修正  |  [HIVE-20168](https://issues.apache.org/jira/browse/HIVE-20168)：隱藏 ReduceSinkOperator 日誌記錄  | 
|  錯誤修正  |  [HIVE-20879](https://issues.apache.org/jira/browse/HIVE-20879)：在投影表達式中使用 Null 會導致 CastException  | 
|  錯誤修正  |  [HIVE-20888](https://issues.apache.org/jira/browse/HIVE-20888)：TxnHandler：在不可變清單上呼叫 sort()  | 
|  錯誤修正  |  [HIVE-19948](https://issues.apache.org/jira/browse/HIVE-19948)：如果字串內有引號，HiveCli 無法正確地用分號分隔命令  | 
|  錯誤修正  |  [HIVE-20621](https://issues.apache.org/jira/browse/HIVE-20621)：在 resultset.next 中呼叫 GetOperationStatus 會導致增量緩慢  | 
|  錯誤修正  |  [HIVE-20854](https://issues.apache.org/jira/browse/HIVE-20854)：合理的預設值：Hive 的 Zookeeper 活動訊號間隔為 20 分鐘，變更為 2 分鐘  | 
|  錯誤修正  |  [HIVE-20330](https://issues.apache.org/jira/browse/HIVE-20330)：HCatLoader 無法為具有多個輸入的作業處理多個 InputJobInfo 物件  | 
|  錯誤修正  |  [HIVE-20787](https://issues.apache.org/jira/browse/HIVE-20787)：MapJoinBytesTableContainer dummyRow 案例無法處理重複使用  | 
|  錯誤修正  |  [HIVE-20331](https://issues.apache.org/jira/browse/HIVE-20331)：使用 union all、側檢視和聯結進行查詢失敗，並顯示「無法在子運算子中尋找父項」  | 
|  錯誤修正  |  [HIVE-19968](https://issues.apache.org/jira/browse/HIVE-19968)：未擲出 UDF 例外狀況  | 
|  錯誤修正  |  [HIVE-20410](https://issues.apache.org/jira/browse/HIVE-20410)：中止在交易型資料表上插入覆寫會導致「沒有足夠的歷史記錄可用於…」錯誤  | 
|  錯誤修正  |  [HIVE-20059](https://issues.apache.org/jira/browse/HIVE-20059)：Hive 串流應在例外狀況下無條件嘗試陰影字首  | 
|  錯誤修正  |  [HIVE-19424](https://issues.apache.org/jira/browse/HIVE-19424)：MetaDataFormatters 中的 NPE  | 
|  錯誤修正  |  [HIVE-20355](https://issues.apache.org/jira/browse/HIVE-20355)：清除 HiveConnection.setSchema 的參數  | 
|  錯誤修正  |  [HIVE-20858](https://issues.apache.org/jira/browse/HIVE-20858)：未使用 Utilities.createEmptyBuckets 中的組態正確初始化序列化程式  | 
|  錯誤修正  |  [HIVE-20424](https://issues.apache.org/jira/browse/HIVE-20424)：schematool 不得污染 beeline 歷史記錄  | 
|  錯誤修正  |  [HIVE-20338](https://issues.apache.org/jira/browse/HIVE-20338)：LLAP：對具有 HDFS 協定隱含和 POSIX 變動語意的檔案系統強制執行合成檔案 ID  | 
|  錯誤修正  |  [HIVE-11708](https://issues.apache.org/jira/browse/HIVE-11708)：邏輯運算子使用 NULL 引起 ClassCastExceptions  | 
|  錯誤修正  |  [HIVE-21082](https://issues.apache.org/jira/browse/HIVE-21082)：在 HPL/SQL 中，宣告陳述式不支援字元類型的變數  | 
|  錯誤修正  |  [HIVE-16690](https://issues.apache.org/jira/browse/HIVE-16690)：根據 LLAP 叢集大小，設定 Tez 笛卡爾乘積邊緣  | 
|  錯誤修正  |  [HIVE-14516](https://issues.apache.org/jira/browse/HIVE-14516)：OrcInputFormat.SplitGenerator.callInternal  | 
|  錯誤修正  |  [HIVE-20981](https://issues.apache.org/jira/browse/HIVE-20981)：串流/AbstractRecordWriter 洩漏 HeapMemoryMonitor  | 
|  錯誤修正  |  [HIVE-20043](https://issues.apache.org/jira/browse/HIVE-20043)：HiveServer2：SessionState 在 AtomicBoolean 周圍有一個靜態同步塊  | 
|  錯誤修正  |  [HIVE-20191](https://issues.apache.org/jira/browse/HIVE-20191)：如果修補程式為空，則 PreCommit 修補應用程式不會失敗  | 
|  錯誤修正  |  [HIVE-20400](https://issues.apache.org/jira/browse/HIVE-20400)：建立資料表應始終使用完整路徑，以避免潛在的 FS 歧義  | 
|  錯誤修正  |  在存取偏斜資料欄之前，新增對 skewedInfo 的空值檢查  | 

# Amazon EMR 6.12.0 – Hive 版本備註
<a name="Hive-release-history-6120"></a>

## Amazon EMR 6.12.0 – Hive 變更
<a name="Hive-release-history-changes-6120"></a>


****  

| Type | 說明 | 
| --- | --- | 
| 改進項目 | 新增了對 JDK 11 和 JDK 17 執行期的支援 | 
| 改進項目 | 新增了使用 S3 Select 時，對查詢區分大小寫和預留關鍵字資料欄名稱的支援。若要使用它，請以 "s3select.column.mapping" = "column1:fieldName1, column2:fieldName2,..." 格式定義資料表屬性 | 
| 改進項目 | [HIVE-23133](https://issues.apache.org/jira/browse/HIVE-23133)：不同硬體架構的數值運算可能有不同的結果 | 
| 改進項目 | [HIVE-27145](https://issues.apache.org/jira/browse/HIVE-27145)：對剩餘的數學函數使用 StrictMath 作為 HIVE-23133 的後續函數 | 
| 錯誤修正 | 修正在 EMR Hive 6.4.0 中移植 [HIVE-22900](https://issues.apache.org/jira/browse/HIVE-22900) 而導致的 get\$1partitions\$1by\$1filter 和 get\$1num\$1partitions\$1by\$1filter HMS API 中的萬用字元不相容問題 | 
| 錯誤修正 | [HIVE-26736](https://issues.apache.org/jira/browse/HIVE-26736)：具有 WITH 子句的巢狀檢視授權失敗 | 
| 錯誤修正 | [HIVE-22416](https://issues.apache.org/jira/browse/HIVE-22416)：啟用平行執行後，與 MR 相關的操作日誌遺失 | 
| 錯誤修正 | [HIVE-19653](https://issues.apache.org/jira/browse/HIVE-19653)：具有分組集的 groupby 的述詞下推不正確 | 
| 錯誤修正 | [HIVE-22094](https://issues.apache.org/jira/browse/HIVE-22094)：使用 ClassCastException 查詢失敗：hive.ql.exec.vector.DecimalColumnVector 無法轉換為 hive.ql.exec.vector.Decimal64ColumnVector | 
| 錯誤修正 | [HIVE-26340](https://issues.apache.org/jira/browse/HIVE-26340)：如果查詢具有大寫視窗函數，向量化 PTF 運算子會失敗 | 
| 錯誤修正 | [HIVE-26184](https://issues.apache.org/jira/browse/HIVE-26184)：當某些金鑰高度偏斜時，使用 GROUP BY 的 COLLECT\$1SET 速度非常慢 | 
| 錯誤修正 | [HIVE-26373](https://issues.apache.org/jira/browse/HIVE-26373)：從具有 Avro 資料的 HBase 資料表中讀取時間戳記時出現 ClassCastException | 
| 錯誤修正 | [HIVE-26388](https://issues.apache.org/jira/browse/HIVE-26388)：當 CTAS 查詢的來源資料表中存在非字串類型資料欄時出現 ClassCastException 升級 [HIVE-26172](https://issues.apache.org/jira/browse/HIVE-26172)：Hive – 由於 CVE-2021-36373 和 CVE-2021-36374，將 Ant 升級至 1.10.11 | 
| 錯誤修正 | [HIVE-26114](https://issues.apache.org/jira/browse/HIVE-26114)：使用具有字首空格的 dfs 命令修正 jdbc 連線 hiveserver2 會導致例外狀況 | 
| 錯誤修正 | [HIVE-26396](https://issues.apache.org/jira/browse/HIVE-26396)：trunc 函數在精確度截取方面存在問題，且結果有許多 0 | 
| 錯誤修正 | [HIVE-26446](https://issues.apache.org/jira/browse/HIVE-26446)：HiveProtoLoggingHook 無法填入分割的資料表的 TablesWritten 欄位。 | 
| 錯誤修正 | [HIVE-26639](https://issues.apache.org/jira/browse/HIVE-26639)：ConstantVectorExpression 和 ExplainTask 不應依賴預設字元集 | 
| 錯誤修正 | [HIVE-22670](https://issues.apache.org/jira/browse/HIVE-22670)：使用向量化讀取器讀取 parquet 檔案時，出現 ArrayIndexOutOfBoundsException | 
| 錯誤修正 | [HIVE-23607](https://issues.apache.org/jira/browse/HIVE-23607)：許可問題：在其他檢視上建立檢視成功，但更改檢視失敗 | 
| 錯誤修正 | [HIVE-25498](https://issues.apache.org/jira/browse/HIVE-25498)：具有超過 31 個計數的不同函數的查詢傳回錯誤結果 | 
| 錯誤修正 | [HIVE-25780](https://issues.apache.org/jira/browse/HIVE-25780)：DistinctExpansion 建立了超過 64 個分組集 II | 
| 錯誤修正 | [HIVE-23868](https://issues.apache.org/jira/browse/HIVE-23868)：視窗化函數規範：支援 0 在之前/之後 | 
| 錯誤修正 | [HIVE-24539](https://issues.apache.org/jira/browse/HIVE-24539)：OrcInputFormat 結構描述產生應遵循資料欄分隔符號 | 
| 錯誤修正 | [HIVE-23476](https://issues.apache.org/jira/browse/HIVE-23476)：LLAP：也要為 mmap 案例預先配置 arenas | 
| 錯誤修正 | [HIVE-25806](https://issues.apache.org/jira/browse/HIVE-25806)：LlapCacheAwareFs 中的可能洩漏 – Parquet、LLAP IO | 
| 錯誤修正 | [HIVE-23498](https://issues.apache.org/jira/browse/HIVE-23498)：在 ThriftHttpCliService 上停用 HTTP 追蹤方法 | 
| 錯誤修正 | [HIVE-25729](https://issues.apache.org/jira/browse/HIVE-25729)：完全初始化後應通知 ThriftUnionObjectInspector | 
| 錯誤修正 | [HIVE-23846](https://issues.apache.org/jira/browse/HIVE-23846)：避免對位向量進行不必要的序列化和還原序列化 | 
| 錯誤修正 | [HIVE-24233](https://issues.apache.org/jira/browse/HIVE-24233)：except 子查詢在停用 cbo 的情況下擲出空指標 | 
| 錯誤修正 | [HIVE-24276](https://issues.apache.org/jira/browse/HIVE-24276)：HiveServer2 loggerconf jsp 跨網站指令碼 (XSS) 漏洞 | 
| 錯誤修正 | [HIVE-25721](https://issues.apache.org/jira/browse/HIVE-25721)：外部聯結結果錯誤 | 
| 錯誤修正 | [HIVE-25223](https://issues.apache.org/jira/browse/HIVE-25223)：具有限制的選取不會在非原生資料表上傳回任何資料列 | 
| 錯誤修正 | [HIVE-25794](https://issues.apache.org/jira/browse/HIVE-25794)：CombineHiveRecordReader：迴圈中的日誌陳述式導致記憶體壓力 | 
| 錯誤修正 | [HIVE-23602](https://issues.apache.org/jira/browse/HIVE-23602)：使用 Java 並行套件作為操作控點集 | 
| 錯誤修正 | [HIVE-24045](https://issues.apache.org/jira/browse/HIVE-24045)：沒有與建立預設資料庫的時間相關的日誌記錄 | 
| 錯誤修正 | [HIVE-24305](https://issues.apache.org/jira/browse/HIVE-24305)：如果將值括在引號中，avro 十進位結構描述無法正確填入小數位數/精確度 | 
| 錯誤修正 | [HIVE-25040](https://issues.apache.org/jira/browse/HIVE-25040)：捨棄資料庫串聯無法移除持久性函數 | 
| 錯誤修正 | [HIVE-23501](https://issues.apache.org/jira/browse/HIVE-23501)：將複雜類型轉換為基本類型時，VectorDeserializeRow 中出現 AOOB | 
| 錯誤修正 | [HIVE-23704](https://issues.apache.org/jira/browse/HIVE-23704)：Thrift HTTP 伺服器無法正確處理身分驗證處理常式 | 
| 錯誤修正 | [HIVE-23529](https://issues.apache.org/jira/browse/HIVE-23529)：使用 row\$1deserialize 時，uniontype 的 CTAS 被破壞 | 
| 錯誤修正 | [HIVE-24144](https://issues.apache.org/jira/browse/HIVE-24144)：HiveDatabaseMetaData 中的 getIdentifierQuoteString 傳回不正確的值 | 
| 錯誤修正 | [HIVE-23850](https://issues.apache.org/jira/browse/HIVE-23850)：當主旨不是具有分組集的資料欄時，允許 PPD | 
| 錯誤修正 | [HIVE-25919](https://issues.apache.org/jira/browse/HIVE-25919)：在 HBaseStorageHandler 中推送布林值資料欄述詞時，出現 ClassCastException | 
| 錯誤修正 | [HIVE-25261](https://issues.apache.org/jira/browse/HIVE-25261)：RetryingHMSHandler 應使用目標的簡短描述來包裝 MetaException | 
| 錯誤修正 | [HIVE-24792](https://issues.apache.org/jira/browse/HIVE-24792)：操作中可能出現執行緒洩漏 | 
| 錯誤修正 | [HIVE-23409](https://issues.apache.org/jira/browse/HIVE-23409)：如果 TezSession 應用程式因時間軸服務關閉而重新開啟失敗，則 SessionPool 中的預設 TezSession 將在重試後關閉 | 
| 錯誤修正 | [HIVE-23615](https://issues.apache.org/jira/browse/HIVE-23615)：不要在 Beeline 命令類別中使用空指標 | 
| 錯誤修正 | [HIVE-24849](https://issues.apache.org/jira/browse/HIVE-24849)：在位置具有大量檔案時，建立外部資料表通訊端逾時 (影響 3.1.2) | 
| 錯誤修正 | [HIVE-25209](https://issues.apache.org/jira/browse/HIVE-25209)：使用 SUM 函數的 SELECT 查詢產生非預期的結果 | 
| 錯誤修正 | [HIVE-23666](https://issues.apache.org/jira/browse/HIVE-23666)：當 groupby 運算子沒有設定分組時，會略過 checkHashModeEfficiency | 
| 錯誤修正 | [HIVE-23873](https://issues.apache.org/jira/browse/HIVE-23873)：當 CBO 關閉時，使用 NPE 查詢 Hive JDBCStorageHandler 資料表失敗 | 
| 錯誤修正 | [HIVE-24149](https://issues.apache.org/jira/browse/HIVE-24149)：HiveStreamingConnection 不關閉 HMS 連線 | 
| 錯誤修正 | [HIVE-25561](https://issues.apache.org/jira/browse/HIVE-25561)：已刪除的任務不應遞交檔案。(影響 2.x 和 3.x 版本) | 
| 錯誤修正 | [HIVE-25683](https://issues.apache.org/jira/browse/HIVE-25683)：在 AcidUtils.isRawFormatFile 中關閉讀取器 | 
| 錯誤修正 | [HIVE-24294](https://issues.apache.org/jira/browse/HIVE-24294)：TezSessionPool 工作階段可能會擲出 AssertionError | 
| 錯誤修正 | [HIVE-24182](https://issues.apache.org/jira/browse/HIVE-24182)：永久 UDF 存在 Ranger 授權問題 | 
| 錯誤修正 | [HIVE-22805](https://issues.apache.org/jira/browse/HIVE-22805)：使用條件陣列或映射的向量化未實作並擲出錯誤 | 
| 錯誤修正 | [HIVE-22828](https://issues.apache.org/jira/browse/HIVE-22828)：Decimal64：NVL 和 CASE 陳述式隱含地將 decimal64 轉換為 128 | 
| 錯誤修正 | [HIVE-21398](https://issues.apache.org/jira/browse/HIVE-21398)：具有預估統計資料的資料欄不應視為唯一金鑰 | 
| 錯誤修正 | [HIVE-22490](https://issues.apache.org/jira/browse/HIVE-22490)：在路徑中新增具有特殊字元的 jar 擲出錯誤 | 
| 錯誤修正 | [HIVE-22700](https://issues.apache.org/jira/browse/HIVE-22700)：未經授權時，壓縮可能會洩漏記憶體 | 
| 錯誤修正 | [HIVE-22053](https://issues.apache.org/jira/browse/HIVE-22053)：建立函數時，函數名稱未標準化 | 
| 錯誤修正 | [HIVE-22595](https://issues.apache.org/jira/browse/HIVE-22595)：在具有外部結構描述的 Avro 資料表上，動態分割區插入失敗 | 
| 錯誤修正 | [HIVE-21795](https://issues.apache.org/jira/browse/HIVE-21795)：在分割的資料表上進行 mapjoin 時，彙總摘要資料列可能會遺失 | 
| 錯誤修正 | [HIVE-22987](https://issues.apache.org/jira/browse/HIVE-22987)：當 DataTypePhysicalVariation 為 Null 時，VectorCoalesce 中出現 ClassCastException | 
| 錯誤修正 | [HIVE-22219](https://issues.apache.org/jira/browse/HIVE-22219)：關閉節點管理器會阻止重新啟動 LLAP 服務 | 
| 錯誤修正 | [HIVE-21793](https://issues.apache.org/jira/browse/HIVE-21793)：即使 hive.stats.fetch.column.stats 設定為 false，CBO 也會擷取資料欄統計資料 | 
| 錯誤修正 | [HIVE-22163](https://issues.apache.org/jira/browse/HIVE-22163)：CBO：啟用 CBO 會開啟統計資料預估，即使停用預估亦如此 | 
| 錯誤修正 | [HIVE-18735](https://issues.apache.org/jira/browse/HIVE-18735)：像遺失交易屬性一樣建立資料表 | 
| 錯誤修正 | [HIVE-22433](https://issues.apache.org/jira/browse/HIVE-22433)：Hive JDBC 儲存處理常式：從 JDBC 資料來源的 BOOLEAN 和 TIMESTAMP DataType 擷取的結果不正確 | 
| 錯誤修正 | [HIVE-19430](https://issues.apache.org/jira/browse/HIVE-19430)：大量待處理事件上存在 ObjectStore.cleanNotificationEvents OutOfMemory | 
| 錯誤修正 | [HIVE-20785](https://issues.apache.org/jira/browse/HIVE-20785)：JDBC DatabaseMetaData.getPrimaryKeys 方法中存在錯誤的金鑰名稱 | 
| 錯誤修正 | [HIVE-16116](https://issues.apache.org/jira/browse/HIVE-16116)：當 beeline.properties 中存在 beeline.hiveconfvariables=\$1\$1 時，beeline 會擲出 NPE | 
| 錯誤修正 | [HIVE-20066](https://issues.apache.org/jira/browse/HIVE-20066)：將 hive.load.data.owner 與完整主體進行比較 | 
| 錯誤修正 | [HIVE-20489](https://issues.apache.org/jira/browse/HIVE-20489)：說明查詢停止回應的計畫 | 
| 錯誤修正 | [HIVE-21033](https://issues.apache.org/jira/browse/HIVE-21033)：忘記關閉操作會切斷更多的 HiveServer2 輸出 | 
| 錯誤修正 | [HIVE-19888](https://issues.apache.org/jira/browse/HIVE-19888)：來自 SessionState 的誤導性「將忽略 METASTORE\$1FILTER\$1HOOK」警告 | 
| 錯誤修正 | [HIVE-20303](https://issues.apache.org/jira/browse/HIVE-20303)：INSERT OVERWRITE TABLE db.table PARTITION (...) IF NOT EXISTS 擲出 InvalidTableException | 
| 錯誤修正 | [HIVE-16144](https://issues.apache.org/jira/browse/HIVE-16144)：CompactionInfo 沒有 equals/hashCode，但在 Set 中使用 | 
| 錯誤修正 | [HIVE-20818](https://issues.apache.org/jira/browse/HIVE-20818)：使用 WHERE 子查詢建立的檢視會將子查詢中參考的檢視視為直接輸入 | 
| 錯誤修正 | [HIVE-21005](https://issues.apache.org/jira/browse/HIVE-21005)：LLAP：每次分割讀取更多條紋會洩漏 ZlibCodecs | 
| 錯誤修正 | [HIVE-20771](https://issues.apache.org/jira/browse/HIVE-20771)：LazyBinarySerDe 在空結構上失敗。 | 
| 錯誤修正 | [HIVE-18852](https://issues.apache.org/jira/browse/HIVE-18852)：更改資料表驗證中出現誤導性錯誤訊息 | 
| 錯誤修正 | [HIVE-21124](https://issues.apache.org/jira/browse/HIVE-21124)：HPL/SQL 不支援 CREATE TABLE LIKE 陳述式 | 
| 錯誤修正 | [HIVE-20935](https://issues.apache.org/jira/browse/HIVE-20935)：在 EC2 中上傳 llap 套件 tarball 失敗，導致 LLAP 服務啟動失敗 | 
| 錯誤修正 | [HIVE-20409](https://issues.apache.org/jira/browse/HIVE-20409)：Hive ACID：更新/刪除/合併無法清理 hdfs 暫存目錄 | 
| 錯誤修正 | [HIVE-20570](https://issues.apache.org/jira/browse/HIVE-20570)：具有 hive.optimize.union.remove=true 的 Union ALL 計畫不正確 | 
| 錯誤修正 | [HIVE-20421](https://issues.apache.org/jira/browse/HIVE-20421)：hive-default.xml.template 中存在非法字元實體 '\$1b' | 
| 錯誤修正 | [HIVE-19133](https://issues.apache.org/jira/browse/HIVE-19133)：HS2 WebUI 分階段效能指標未正確顯示 | 
| 錯誤修正 | [HIVE-18977](https://issues.apache.org/jira/browse/HIVE-18977)：使用 JDO 和直接 SQL 列出分割區會傳回不同的結果 | 
| 錯誤修正 | [HIVE-20034](https://issues.apache.org/jira/browse/HIVE-20034)：復原 MetaStore 例外狀況處理變更以實現回溯相容性 | 
| 錯誤修正 | [HIVE-20672](https://issues.apache.org/jira/browse/HIVE-20672)：LlapTaskSchedulerService 中的日誌記錄執行緒應每隔固定間隔報告一次 | 
| 錯誤修正 | [HIVE-12812](https://issues.apache.org/jira/browse/HIVE-12812)：預設啟用 mapred.input.dir.recursive 以支援與彙總函數的聯集 | 
| 錯誤修正 | [HIVE-20147](https://issues.apache.org/jira/browse/HIVE-20147)：Hive 串流擷取滿足於同步日誌記錄 | 
| 錯誤修正 | [HIVE-19203](https://issues.apache.org/jira/browse/HIVE-19203)：HiveMetaStore 中的執行緒安全問題 | 
| 錯誤修正 | [HIVE-20091](https://issues.apache.org/jira/browse/HIVE-20091)：Tez：為 FileSinkOperator 輸出新增安全憑證 | 
| 錯誤修正 | [HIVE-16906](https://issues.apache.org/jira/browse/HIVE-16906)：在連接至 ATS 之前，Hive ATSHook 應檢查 yarn.timeline-service.enabled | 
| 錯誤修正 | [HIVE-20714](https://issues.apache.org/jira/browse/HIVE-20714)：單一屬性的 SHOW tblproperties 將傳回名稱資料欄中的值 | 
| 錯誤修正 | [HIVE-24730](https://issues.apache.org/jira/browse/HIVE-24730)：Shims 類別以無提示的方式覆寫來自 hive-site.xml 和 tez-site.xml 的值 | 
| 錯誤修正 | [HIVE-22055](https://issues.apache.org/jira/browse/HIVE-22055)：從文字檔案載入資料之後，選取計數提供的結果不正確 | 

# Amazon EMR 6.11.0 – Hive 版本備註
<a name="Hive-release-history-6110"></a>

## Amazon EMR 6.11.0 – Hive 變更
<a name="Hive-release-history-changes-6110"></a>


****  

| Type | 說明 | 
| --- | --- | 
| 改進項目 | 新增了對多執行緒捨棄分割區的支援，以提高捨棄分割區的效能 | 
| 改進項目 | 支援讀取編碼的 Hive 查詢檔案 | 
| 改進項目 | 依預設，為 Hive on Tez 作業啟用 Tez 混洗處理常式 | 
| 錯誤 | [新增了一個選項，以允許在啟用 hive.groupby.skewindata 時對縮減器啟用固定式金鑰分佈，從而修正錯誤結果 (在 HIVE-20220](https://issues.apache.org/jira/browse/HIVE-20220) 中報告) | 
| 錯誤 | 修正了在設定預設分割區名稱時，統計資料運算失敗的問題 | 
| 錯誤 | 遵守在啟用了傳輸中加密的叢集中，以立即可用的方式為 HiveServer2 設定 SSL 時傳遞的任何自訂 SSL 分類參數 | 
| 向後移植 | [HIVE-23617](https://issues.apache.org/jira/browse/HIVE-23617)：修正了 storage-api FindBug 問題 | 
| 向後移植 |  [HIVE-26408](https://issues.apache.org/jira/browse/HIVE-26408)：向量化：修正暫存資料欄的取消配置，不要重複使用子項 ConstantVectorExpression 作為輸出 | 
| 向後移植 | [HIVE-23614](https://issues.apache.org/jira/browse/HIVE-23614)：始終將 HiveConfig 傳遞給 removeTempOrDuplicateFiles | 
| 向後移植 | [HIVE-23354](https://issues.apache.org/jira/browse/HIVE-23354)：從 compareTempOrDuplicateFiles 中移除檔案大小例行性檢查 | 
| 向後移植 | [HIVE-20344](https://issues.apache.org/jira/browse/HIVE-20344)：為擲出 AccessControlException 的 SBA 修正了 PrivilegeSynchronizer。還引入了 hive.privilege.synchronizer 屬性來停用權限同步器 | 
| 向後移植 | [HIVE-15826](https://issues.apache.org/jira/browse/HIVE-15826)：支援為所有 SerDes 設定 'serialization.encoding' | 
| 向後移植 | [HIVE-18284](https://issues.apache.org/jira/browse/HIVE-18284)：修正使用 dynpart 排序優化插入具有 'distribute by' 子句的資料時出現的 NPE | 
| 向後移植 | [HIVE-24930](https://issues.apache.org/jira/browse/HIVE-24930)：在向量化程式碼路徑中不使用來自子操作的 Operator.setDone() 短路 (如果 childSize == 1) | 
| 向後移植 | [HIVE-24523](https://issues.apache.org/jira/browse/HIVE-24523)：LazySimpleSerde 的向量化讀取路徑不支援時間戳記的 SERDEPROPERTIES | 
| 向後移植 | [HIVE-23265](https://issues.apache.org/jira/browse/HIVE-23265)：在設定了「限制」和「位移」的情況下傳回重複的資料列集 | 
| 向後移植 | [HIVE-21492](https://issues.apache.org/jira/browse/HIVE-21492)：VectorizedParquetRecordReader 無法讀取使用 thrift/自訂工具產生的 parquet 檔案 | 
| 向後移植 | [HIVE-22540](https://issues.apache.org/jira/browse/HIVE-22540)：向量化：Decimal64 資料欄不適用於 VectorizedBatchUtil.makeLikeColumnVector() | 
| 向後移植 | [HIVE-22588](https://issues.apache.org/jira/browse/HIVE-22588)：切換向量 groupby 模式時，排清其餘分組集的剩餘資料列 | 
| 向後移植 | [HIVE-22551](https://issues.apache.org/jira/browse/HIVE-22551)：BytesColumnVector initBuffer 應一致地清除向量和長度 | 
| 向後移植 | [HIVE-22448](https://issues.apache.org/jira/browse/HIVE-22448)：CBO：使用 group-by 金鑰擴展多個不同的計數 | 
| 向後移植 | [HIVE-22248](https://issues.apache.org/jira/browse/HIVE-22248)：修正持續存在的統計資料問題 | 
| 向後移植 | [HIVE-22210](https://issues.apache.org/jira/browse/HIVE-22210)：向量化可以重複使用篩選中涉及的運算輸出資料欄 | 
| 向後移植 | [HIVE-21531](https://issues.apache.org/jira/browse/HIVE-21531)：向量化：所有 NULL 雜湊程式碼都不是使用 Murmur3 運算的 | 
| 向後移植 | [HIVE-20419](https://issues.apache.org/jira/browse/HIVE-20419)：向量化：防止在 hashmap 金鑰中使用 VectorPartitionDesc 後發生變動 | 
| 向後移植 | [HIVE-19388](https://issues.apache.org/jira/browse/HIVE-19388)：VectorMapJoinCommonOperator 初始化期間出現 ClassCastException | 
| 向後移植 | [HIVE-21584](https://issues.apache.org/jira/browse/HIVE-21584)：Java 11 準備工作：系統類別載入器不是 URLClassLoader | 
| 向後移植 | [HIVE-25107](https://issues.apache.org/jira/browse/HIVE-25107)：類別路徑日誌記錄應處於 DEBUG 層級 (\$12271) | 
| 向後移植 | [HIVE-22097](https://issues.apache.org/jira/browse/HIVE-22097)：適用於 java 11 的 java.util.ArrayList 不相容 | 
| 向後移植 | [HIVE-23938](https://issues.apache.org/jira/browse/HIVE-23938)：LLAP：JDK11 – 某些 GC 日誌檔案輪換相關的 jvm 引數無法再使用 | 
| 向後移植 | [HIVE-26226](https://issues.apache.org/jira/browse/HIVE-26226)：在 upgrade-acid 中將 jdk.tools dep 從 hive-metastore 中排除 | 
| 向後移植 | [HIVE-17879](https://issues.apache.org/jira/browse/HIVE-17879)：升級 Datanucleus Maven 外掛程式 | 
| 向後移植 | [HIVE-27004](https://issues.apache.org/jira/browse/HIVE-27004)：DateTimeFormatterBuilder\$1appendZoneText 無法在高於 8 的 Java 版本中剖析 'UTC\$1' | 
| 向後移植 | [HIVE-16812](https://issues.apache.org/jira/browse/HIVE-16812)：VectorizedOrcAcidRowBatchReader 無法篩選刪除事件 | 
| 向後移植 | [HIVE-17917](https://issues.apache.org/jira/browse/HIVE-17917)：VectorizedOrcAcidRowBatchReader.computeOffsetAndBucket 優化 | 
| 向後移植 | [HIVE-19985](https://issues.apache.org/jira/browse/HIVE-19985)：ACID：略過解碼唯讀查詢的 ROW\$1\$1ID 區段 | 
| 向後移植 | [HIVE-20635](https://issues.apache.org/jira/browse/HIVE-20635)：VectorizedOrcAcidRowBatchReader 不會篩選原始檔案的刪除事件 | 
| 升級 | 將 Javadoc 升級至 3.3.1 | 
| 升級 | 將 Javassist 升級至 3.24.1-GA | 
| 升級 | 將 apache-directory-server 更新至 2.0.0-M14 | 

## 新組態
<a name="Hive-release-history-changes-6110-new-configurations"></a>


****  

| 名稱 | 分類 | Description | 
| --- | --- | --- | 
| hive.metastore.fs.drop.partition.threads | hive-site | 捨棄分割區執行緒集區中的核心執行緒數量。 | 
| hive.metastore.fs.drop.partition.keepalive.time | hive-site | 閒置的捨棄分割區非同步執行緒 (來自執行緒集區) 在終止之前等待新任務到達的時間 (以秒為單位)。 | 
| hive.metastore.fs.drop.partition.threadpool.max.queue.size | hive-site | 執行緒集區中用於從檔案系統中捨棄分割區的最大佇列大小。 | 
| hive.groupby.enable.deterministic.distribution | hive-site | 啟用將金鑰固定分佈至縮減器。它將在呼叫用於隨機分割的 rand 函數時傳遞固定的種子值。 | 
| hive.privilege.synchronizer | hive-site | 是否在 HiveServer2 中定期同步來自外部授權方的權限。 | 
| hive.cli.query.file.encoding | hive-site | cli 引數中提供的所有類型的查詢檔案 (查詢檔案、init 查詢檔案、rc 檔案等) 的檔案編碼。 | 
| hive.emr.tez.shuffle.enabled | hive-site | Hive on Tez 作業現在預設使用 tez\$1shuffle 而不是 mapreduce\$1shuffle 作為預設混洗處理常式。 | 

## 已棄用組態
<a name="Hive-release-history-changes-6110-old-configurations"></a>

由於 [HIVE-23354](https://issues.apache.org/jira/browse/HIVE-23354)，下列組態屬性已棄用，且 Amazon EMR 6.11.0 版及更高版本不再支援。


| 名稱 | 預設值 | 
| --- | --- | 
| `hive.mapred.reduce.tasks.speculative.execution` | `false` | 
| `tez.am.speculation.enabled` | `false` | 

# Amazon EMR 6.10.0 – Hive 版本備註
<a name="Hive-release-history-6100"></a>

## Amazon EMR 6.10.0 – Hive 變更
<a name="Hive-release-history-changes-6100"></a>


****  

| Type | 說明 | 
| --- | --- | 
| 功能 | 透過 IAM Passthrough (HiveCLI/Steps API) 啟用 Apache Hive 查詢 (寫入) AWS Lake Formation 的存取控制。 [ HiveCLI](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-steps-runtime-roles.html) | 
| 改進 | 預設停用設定 hive.log.explain.output 以減小日誌大小 | 
| 向後移植 | [HIVE-26408](https://issues.apache.org/jira/browse/HIVE-26408)：向量化：修正暫存資料欄的取消配置，不要重複使用子項 ConstantVectorExpression 作為輸出 | 
| 向後移植 | [HIVE-22269](https://issues.apache.org/jira/browse/HIVE-22269)：修正由於 [HIVE-20703](https://issues.apache.org/jira/browse/HIVE-20703) 造成的統計資料遺失，而導致的動態分割區插入查詢中錯誤的縮減器計數。 | 
| 向後移植 | [HIVE-22891](https://issues.apache.org/jira/browse/HIVE-22891)：在非 LLAP 執行模式下略過 CombineHiveRecord 中的 PartitionDesc 擷取  | 
| 向後移植 | [HIVE-23804](https://issues.apache.org/jira/browse/HIVE-23804)：在 Hive 中繼存放區結構描述中為資料欄統計資料特定資料表新增預設資料庫，使其回溯相容 | 
| 向後移植 | [HIVE-25277](https://issues.apache.org/jira/browse/HIVE-25277)：使用昂貴的 ListFiles 的雲端物件存放區緩慢刪除 Hive 分割區 | 
| 向後移植 | [HIVE-19202](https://issues.apache.org/jira/browse/HIVE-19202)：由於 HiveAggregate.isBucketedInput() 中的 NullPointerException，CBO 失敗 | 
| 向後移植 | [HIVE-19048](https://issues.apache.org/jira/browse/HIVE-19048)：修正 beeline Initscript 錯誤被忽略的問題 | 
| 向後移植 | [HIVE-21085](https://issues.apache.org/jira/browse/HIVE-21085)：具體化視觀表登錄檔啟動非外部 tez 工作階段 | 
| 向後移植 | [HIVE-21675](https://issues.apache.org/jira/browse/HIVE-21675)：如果檢視已存在，CREATE VIEW IF NOT EXISTS 將傳回錯誤而非「確定」。這是 Hive 2 的迴歸。 | 
| 向後移植 | [HIVE-21646](https://issues.apache.org/jira/browse/HIVE-21646)：Tez：防止 TezTasks 逸出執行緒日誌記錄內容 | 
| 向後移植 | [HIVE-22054](https://issues.apache.org/jira/browse/HIVE-22054)：避免使用遞迴清單檢查目錄是否為空 | 
| 向後移植 | [HIVE-16587](https://issues.apache.org/jira/browse/HIVE-16587)：插入具有巢狀 Null 值的複雜類型時出現 NPE | 
| 向後移植 | [HIVE-22647](https://issues.apache.org/jira/browse/HIVE-22647)：預設啟用工作階段集區 | 
| 向後移植 | [HIVE-13288](https://issues.apache.org/jira/browse/HIVE-13288)：DagUtils.localizeResource 中存在令人混淆的例外狀況訊息 | 
| 向後移植 | [HIVE-23870](https://issues.apache.org/jira/browse/HIVE-23870)：在 WritableHiveCharObjectInspector.getPrimitiveJavaObject/HiveCharWritable 中優化多個文字轉換 | 
| 向後移植 | [HIVE-21498](https://issues.apache.org/jira/browse/HIVE-21498)：將 Thrift 升級至 0.13.0 | 
| 向後移植 | [HIVE-24378](https://issues.apache.org/jira/browse/HIVE-24378)：在轉換十進位之前，不會移除前置和結尾空格 | 
| 向後移植 | [HIVE-21341](https://issues.apache.org/jira/browse/HIVE-21341)：合理的預設值：hive.server2.idle.operation.timeout 和 hive.server2.idle.session.timeout 過高 | 
| 向後移植 | [HIVE-22465](https://issues.apache.org/jira/browse/HIVE-22465)：在 TezConfigurationFactory 中新增 ssl conf | 
| 向後移植 | [HIVE-24710](https://issues.apache.org/jira/browse/HIVE-24710)：優化 count(\$1) 的 PTF 反覆運算以降低 CPU 和 IO 成本 | 
| 向後移植 | [HIVE-15406](https://issues.apache.org/jira/browse/HIVE-15406)：考慮對新的 'trunc' 函數進行向量化 | 
| 向後移植 | [HIVE-21541](https://issues.apache.org/jira/browse/HIVE-21541)：修正 HIVE-15406 中遺失的 asf 標頭 | 
| 向後移植 | [HIVE-24808](https://issues.apache.org/jira/browse/HIVE-24808)：快取剖析的日期 | 
| 向後移植 | [HIVE-24746](https://issues.apache.org/jira/browse/HIVE-24746)：PTF：TimestampValueBoundaryScanner 可以在範圍運算期間進行優化 | 
| 向後移植 | [HIVE-25059](https://issues.apache.org/jira/browse/HIVE-25059)：在複寫期間，更改事件轉換為重新命名 | 
| 向後移植 | [HIVE-25142](https://issues.apache.org/jira/browse/HIVE-25142)：在映射聯結快速雜湊資料表中重新雜湊會導致大型金鑰損壞 | 
| 向後移植 | [HIVE-23756](https://issues.apache.org/jira/browse/HIVE-23756)：向 package.jdo 檔案新增了更多限制條件 | 
| 向後移植 | [HIVE-25150](https://issues.apache.org/jira/browse/HIVE-25150)：在進行十進位轉換之前不會移除定位字元，類似於作為 HIVE-24378 一部分修正的空格字元 | 
| 向後移植 | [HIVE-25093](https://issues.apache.org/jira/browse/HIVE-25093)：date\$1format() UDF 僅以 UTC 時區傳回輸出 | 
| 向後移植 | [HIVE-25268](https://issues.apache.org/jira/browse/HIVE-25268)：如果當地時區不是 UTC，則對於 1900 年之前的日期，date\$1format udf 將傳回錯誤的結果 | 
| 向後移植 | [HIVE-25338](https://issues.apache.org/jira/browse/HIVE-25338)：如果輸入為空，則在 conv UDF 中出現 AIOBE | 
| 向後移植 | [HIVE-22400](https://issues.apache.org/jira/browse/HIVE-22400)：UDF 分鐘與時間傳回 NULL | 
| 向後移植 | [HIVE-25058](https://issues.apache.org/jira/browse/HIVE-25058)：PTF：TimestampValueBoundaryScanner 可以在範圍運算 pt2 - isDistanceGreater 期間進行優化 | 
| 向後移植 | [HIVE-25449](https://issues.apache.org/jira/browse/HIVE-25449)：datediff() 在某些非 UTC 時區的 tez 任務中執行時提供了錯誤的輸出 | 
| 向後移植 | [HIVE-23688](https://issues.apache.org/jira/browse/HIVE-23688)：向量化：IndexArrayOutOfBoundsException 適用於包含 Null 值的映射類型資料欄 | 
| 向後移植 | [HIVE-22247](https://issues.apache.org/jira/browse/HIVE-22247)：在分割區的任務輸出為空時，HiveHFileOutputFormat 會擲出 FileNotFoundException | 
| 向後移植 | [HIVE-25570](https://issues.apache.org/jira/browse/HIVE-25570)：Hive 應傳送完整的 URL 路徑，以取得命令插入覆寫位置的授權 | 
| 向後移植 | [HIVE-22903](https://issues.apache.org/jira/browse/HIVE-22903)：如果分割區子句中有常數表達式，向量化的 row\$1number() 會在一個批次之後重設資料列編號 | 
| 向後移植 | [HIVE-25549](https://issues.apache.org/jira/browse/HIVE-25549)：在 PARTITION BY 或 ORDER BY 子句中具有表達式的視窗函數的結果錯誤 | 
| 向後移植 | [HIVE-25579](https://issues.apache.org/jira/browse/HIVE-25579)：LOAD 覆寫會附加而非覆寫 | 
| 向後移植 | [HIVE-25659](https://issues.apache.org/jira/browse/HIVE-25659)：應根據 SQL 資料庫允許的最大參數來分割具有 IN/(NOT IN) 的中繼存放區直接 sql 查詢 | 
| 向後移植 | [HIVE-20502](https://issues.apache.org/jira/browse/HIVE-20502)：修正在使用資料欄統計資料情況下執行 skewjoin\$1mapjoin10.q 時出現的 NPE。 | 
| 向後移植 | [HIVE-25765](https://issues.apache.org/jira/browse/HIVE-25765)：在檔案大小較大時，skip.header.line.count 屬性會略過 FetchOperator 中每個區塊的資料列 | 
| 錯誤 | 在 hive.stats.column.autogather 和 hive.groupby.skewindata 都啟用的特定情況下，修正在插入時出現的 NPE  | 
| 錯誤 | 修正在未設定 mapred.tasktracker.expiry.interval 值時出現的 NPE | 

# Amazon EMR 6.9.0 – Hive 版本備註
<a name="Hive-release-history-690"></a>

## Amazon EMR 6.9.0 – Hive 變更
<a name="Hive-release-history-changes-690"></a>


****  

| Type | 說明 | 
| --- | --- | 
| 升級 | 將 Jetty 升級至 [9.4.48.v20220622](https://github.com/eclipse/jetty.project/releases/tag/jetty-9.4.48.v20220622) | 
| 升級 | 支援 Hadoop 3.3.3 | 
| 功能 | Amazon EMR Hive 使用 GCSC API 與 Lake Formation 整合，以實現互動式工作負載。 | 
| 功能 | Amazon EMR Hive 與 Iceberg 整合。 | 
| 改進項目 | 使用 Amazon EMR 安全組態啟用[傳輸中加密](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-data-encryption-options.html#emr-encryption-intransit)後，在 HiveServer2 中啟用 SSL。 | 
| 改進項目 | 依預設，啟用 Hive EMRFS Amazon S3 優化的遞交程式。如需詳細資訊，請參閱 [啟用 Hive EMRFS S3 優化的遞交程式](hive-optimized-committer.md)。 | 
| 改進項目 | 新增僅繼承 InputFormat mapred 版本的 HiveHBaseTableInputFormatV2，以修正 [SPARK-34210](https://issues.apache.org/jira/browse/SPARK-34210)。將 hive.hbase.inputformat.v2 設定為 true，以使用它。 | 
| 改進項目 | 等待 TezAM 在背景中使用 [hive.cli.tez.session.async]() 啟動，而不是終止它後立即啟動新版本。使用 hive.emr.cli.tez.session.open.timeout 設定此逾時 (以秒為單位)。 | 
| 改進項目 | 新增選項 [hive.conf.restricted.list.append]()，以將逗號分隔的組態附加至現有的受限組態清單 hive.conf.restricted.list。 | 
| 改進項目 | 由於未為資料庫定義位置而導致 Hive 查詢失敗時，會出現更清晰的錯誤訊息。 | 
| 向後移植 | [HIVE-24484](https://issues.apache.org/jira/browse/HIVE-24484)：將 Hadoop 升級至 3.3.1，並將 Tez 升級至 0.10.2  | 
| 向後移植 | [HIVE-22398](https://issues.apache.org/jira/browse/HIVE-22398)：透過 ShimLoader 移除 YARN 佇列管理。 | 
| 向後移植 | [HIVE-23190](https://issues.apache.org/jira/browse/HIVE-23190)：LLAP：修改 IndexCache 以將檔案系統物件傳遞至 TezSpillRecord。 | 
| 向後移植 | [HIVE-22185](https://issues.apache.org/jira/browse/HIVE-22185)：HADOOP-15832 會導致使用 MiniYarn 叢集時出現測試問題。 | 
| 向後移植 | [HIVE-21670](https://issues.apache.org/jira/browse/HIVE-21670)：將 mockito-all 取代為 mockito-core 依存項目。 | 
| 向後移植 | [HIVE-24542](https://issues.apache.org/jira/browse/HIVE-24542)：準備 Guava 進行升級。 | 
| 向後移植 | [HIVE-23751](https://issues.apache.org/jira/browse/HIVE-23751)：QTest：覆寫 ProxyFileSystem 中的 \$1mkdirs() 方法以在 HADOOP-16582 之後對齊。 | 
| 向後移植 | [HIVE-21603](https://issues.apache.org/jira/browse/HIVE-21603)：準備 Java 11：更新 powermock 版本。 | 
| 向後移植 | [HIVE-24083](https://issues.apache.org/jira/browse/HIVE-24083)：Hadoop 3.3.0 中出現 hcatalog 錯誤：需要身分驗證類型。 | 
| 向後移植 | [HIVE-24282](https://issues.apache.org/jira/browse/HIVE-24282)：除非明確提及，否則顯示資料欄不應對輸出資料欄進行排序。 | 
| 向後移植 | [HIVE-20656](https://issues.apache.org/jira/browse/HIVE-20656)：合理的預設值：映射彙總記憶體組態過於積極。 | 
| 向後移植 | [HIVE-25443](https://issues.apache.org/jira/browse/HIVE-25443)：如果值超過 1024 個，Arrow SerDe 無法對複雜資料類型進行序列化/還原序列化 | 
| 向後移植 | [HIVE-19792](https://issues.apache.org/jira/browse/HIVE-19792)：將 orc 升級至 1.5.2，並啟用 decimal\$164 結構描述演變測試。 | 
| 向後移植 | [HIVE-20437](https://issues.apache.org/jira/browse/HIVE-20437)：處理從浮點數、雙精度浮點數和十進位數字轉換的結構描述演變。 | 
| 向後移植 | [HIVE-21987](https://issues.apache.org/jira/browse/HIVE-21987)：Hive 無法讀取使用十進位注釋的 Parquet int32。 | 
| 向後移植 | [HIVE-20038](https://issues.apache.org/jira/browse/HIVE-20038)：對非歸納和分割的資料表的更新查詢擲出 NPE。 | 

## Amazon EMR 6.9.0 – Hive 已知問題
<a name="emr-Hive-690-issues"></a>
+ 在 Amazon EMR 6.6.0 至 6.9.x 中，具有動態分割區和 ORDER BY 或 SORT BY 子句的 INSERT 查詢將始終具有兩個縮減器。此問題是因 OSS 變更 [HIVE-20703](https://issues.apache.org/jira/browse/HIVE-20703) 所造成，此變更會將動態排序分割區優化置於成本型決策下。如果您的工作負載不需要對動態分割區進行排序，建議將 `hive.optimize.sort.dynamic.partition.threshold` 屬性設定為 `-1`，以停用新功能並取得計算正確的縮減器數量。此問題已作為 [HIVE-22269](https://issues.apache.org/jira/browse/HIVE-22269) 的一部分在 OSS Hive 中修正，並已在 Amazon EMR 6.10.0 中修正。

# Amazon EMR 6.8.0 – Hive 版本備註
<a name="Hive-release-history-680"></a>

## Amazon EMR 6.8.0 – Hive 變更
<a name="Hive-release-history-changes-680"></a>


| Type | 說明 | 
| --- | --- | 
| 改進項目 | 減少 msck 命令中的檔案系統呼叫。效能改進 (在 1 萬個以上的分割區上提高約 15-20 倍) | 
| 向後移植 | [HIVE-20678](https://issues.apache.org/jira/browse/HIVE-20678)：HiveHBaseTableOutputFormat 應實作 HiveOutputFormat，以確保相容性 | 
| 向後移植 | [HIVE-21040](https://issues.apache.org/jira/browse/HIVE-21040)：msck 在樹狀目錄的最後一層列出不必要的檔案 | 
| 向後移植 | [HIVE-21460](https://issues.apache.org/jira/browse/HIVE-21460)：載入資料後再進行 select \$1 查詢會導致結果不正確 | 
| 向後移植 | [HIVE-21660](https://issues.apache.org/jira/browse/HIVE-21660)：在使用 union all 和 later view with explode 時結果錯誤 | 
| 向後移植 | [HIVE-22505](https://issues.apache.org/jira/browse/HIVE-22505)：ClassCastException 由錯誤的向量化運算子選擇導致 | 
| 向後移植 | [HIVE-22513](https://issues.apache.org/jira/browse/HIVE-22513)：篩選操作中轉換資料欄的持續傳播可能會導致不正確的結果 | 
| 向後移植 | [HIVE-23435](https://issues.apache.org/jira/browse/HIVE-23435)：完整的外部聯結結果遺失資料列 | 
| 向後移植 | [HIVE-24209](https://issues.apache.org/jira/browse/HIVE-24209)：啟用向量化時，NOT BETWEEN 運算的搜尋引數轉換不正確 | 
| 向後移植 | [HIVE-24934](https://issues.apache.org/jira/browse/HIVE-24934)：GenericUDFSQCountCheck 中不需要 VectorizedExpressions 註釋 | 
| 向後移植 | [HIVE-25278](https://issues.apache.org/jira/browse/HIVE-25278)：HiveProjectJoinTransposeRule 可能會使用視窗化表達式進行無效轉換 | 
| 向後移植 | [HIVE-25505](https://issues.apache.org/jira/browse/HIVE-25505)：如果第一行為空，則 header. skip.header.line.count 的結果不正確 | 
| 向後移植 | [HIVE-26080](https://issues.apache.org/jira/browse/HIVE-26080)：將 accumulo-core 升級至 1.10.1 | 
| 向後移植 | [HIVE-26235](https://issues.apache.org/jira/browse/HIVE-26235)：二進位資料欄上的 OR 條件傳回空結果 | 
| 錯誤 | 修正在啟動期間 stderr 中的多個 SLF4J 繫結警告日誌 | 
| 錯誤 | 修正當分割區和資料表位於不同檔案系統時，SHOW TABLE EXTENDED 查詢失敗並顯示 Wrong FS 錯誤的問題。 | 

## Amazon EMR 6.8.0 – Hive 已知問題
<a name="emr-Hive-680-issues"></a>
+ 在 Amazon EMR 6.6.0 至 6.9.x 中，具有動態分割區和 ORDER BY 或 SORT BY 子句的 INSERT 查詢將始終具有兩個縮減器。此問題是因 OSS 變更 [HIVE-20703](https://issues.apache.org/jira/browse/HIVE-20703) 所造成，此變更會將動態排序分割區優化置於成本型決策下。如果您的工作負載不需要對動態分割區進行排序，建議將 `hive.optimize.sort.dynamic.partition.threshold` 屬性設定為 `-1`，以停用新功能並取得計算正確的縮減器數量。此問題已作為 [HIVE-22269](https://issues.apache.org/jira/browse/HIVE-22269) 的一部分在 OSS Hive 中修正，並已在 Amazon EMR 6.10.0 中修正。

# Amazon EMR 6.7.0 – Hive 版本備註
<a name="Hive-release-history-670"></a>

## Amazon EMR 6.7.0 – Hive 變更
<a name="Hive-release-history-changes-670"></a>


| Type | 說明 | 
| --- | --- | 
| 功能 | [Amazon EMR Hive 與 LakeFormation 整合](https://aws.amazon.com/about-aws/whats-new/2022/07/fine-grained-access-controls-job-scoped-iam-roles-integration-aws-lake-formation-apache-spark-hive-amazon-emr-ec2-clusters/)。 | 
| 功能 | 適用於 Hive EMRFS Amazon S3 優化的遞交程式的其他稽核日誌記錄。Hive 組態：hive.blobstore.output-committer.logging，預設值：false | 
| 功能 | 如果在插入覆寫時刪除目標目錄，選擇結果為空，會導致未分割的資料表/靜態分割區的行為與 Hive 2.x 類似。Hive 組態：hive.emr.iow.clean.target.dir，預設值：false | 
| 錯誤 | 修正了在將 Hive EMRFS Amazon S3 優化的遞交程式與分割區儲存貯體排序搭配使用時，出現的間歇性查詢失敗。 | 
| 升級 | 已將 Hive 版本升級至 3.1.3。如需詳細資訊，請參閱 [Apache Hive 3.1.3 版本備註](https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12346277&styleName=Html&projectId=12310843)。 | 
| 升級 | 已將 Parquet 升級至 [1.12.2](https://github.com/apache/parquet-mr/blob/apache-parquet-1.12.2/CHANGES.md)。 | 
| 向後移植 | [HIVE-20065](https://issues.apache.org/jira/browse/HIVE-20065)：中繼存放區不應依賴 jackson 1.x | 
| 向後移植 | [HIVE-20071](https://issues.apache.org/jira/browse/HIVE-20071)：遷移至 jackson 2.x 並阻止使用 | 
| 向後移植 | [HIVE-20607](https://issues.apache.org/jira/browse/HIVE-20607)：TxnHandler 應使用 PreparedStatement 來執行直接 SQL 查詢 | 
| 向後移植 | [HIVE-20740](https://issues.apache.org/jira/browse/HIVE-20740)：移除 ObjectStore.setConf 方法中的全域鎖定 | 
| 向後移植 | [HIVE-20961](https://issues.apache.org/jira/browse/HIVE-20961)：淘汰 NVL 實作 | 
| 向後移植 | [HIVE-22059](https://issues.apache.org/jira/browse/HIVE-22059)：hive-exec jar 不包含 (fasterxml) jackson 程式庫 | 
| 向後移植 | [HIVE-22351](https://issues.apache.org/jira/browse/HIVE-22351)：修正 TestObjectStore 中執行緒化 ObjectStore 的錯誤用量 | 
| 向後移植 | [HIVE-23534](https://issues.apache.org/jira/browse/HIVE-23534)：在擷取 MetaException 時，RetryingMetaStoreClient\$1invoke 中出現 NPE，但無訊息 | 
| 向後移植 | [HIVE-24048](https://issues.apache.org/jira/browse/HIVE-24048)：將 Jackson 元件統一至版本 2.10.latest – Hive | 
| 向後移植 | [HIVE-24768](https://issues.apache.org/jira/browse/HIVE-24768)：在任何地方均使用 jackson-bom 進行版本替代 | 
| 向後移植 | [HIVE-24816](https://issues.apache.org/jira/browse/HIVE-24816)：由於 CVE-2020-25649，將 jackson 升級至 2.10.5.1 或 2.11.0\$1 | 
| 向後移植 | [HIVE-25971](https://issues.apache.org/jira/browse/HIVE-25971)：Tez 任務關閉因快取執行緒集區未關閉而延遲 | 
| 向後移植 | [HIVE-26036](https://issues.apache.org/jira/browse/HIVE-26036)：ObjectStore 中的 getMTable() 導致 NPE | 

## Amazon EMR 6.7.0 – Hive 已知問題
<a name="emr-Hive-670-issues"></a>
+ 如果使用視窗化函數對與聯結相同的資料欄進行查詢，則可能會導致如 [HIVE-25278](https://issues.apache.org/jira/browse/HIVE-25278) 中報告的轉換無效問題，並導致查詢結果不正確或查詢失敗。解決方法是在查詢層級為此類查詢停用 CBO。修正程式將在 6.7.0 之後的 Amazon EMR 發行版本中提供。如需詳細資訊，請聯絡 AWS 支援。
+ 在 Amazon EMR 6.6.0 至 6.9.x 中，具有動態分割區和 ORDER BY 或 SORT BY 子句的 INSERT 查詢將始終具有兩個縮減器。此問題是因 OSS 變更 [HIVE-20703](https://issues.apache.org/jira/browse/HIVE-20703) 所造成，此變更會將動態排序分割區優化置於成本型決策下。如果您的工作負載不需要對動態分割區進行排序，建議將 `hive.optimize.sort.dynamic.partition.threshold` 屬性設定為 `-1`，以停用新功能並取得計算正確的縮減器數量。此問題已作為 [HIVE-22269](https://issues.apache.org/jira/browse/HIVE-22269) 的一部分在 OSS Hive 中修正，並已在 Amazon EMR 6.10.0 中修正。

# Amazon EMR 6.6.0 – Hive 版本備註
<a name="Hive-release-history-660"></a>

## Amazon EMR 6.6.0 – Hive 變更
<a name="Hive-release-history-changes-660"></a>


| Type | 說明 | 
| --- | --- | 
| 升級 |  將 Parquet 升級至 [1.12.1](https://issues.apache.org/jira/browse/HIVE-24408)。  | 
| 升級 |  將 jetty jars 版本升級至 9.4.43.v20210629  | 
| 錯誤 | 修正了在 Hive 叢集上啟用 LLAP 時導致在所有任務/核心節點上安裝 Hive 的問題。 | 
| 向後移植 | [HIVE-25942](https://issues.apache.org/jira/browse/HIVE-25942)：因 CVE-2021-29425 而將 commons-io 升級至 2.8.0 | 
| 向後移植 | [HIVE-25726](https://issues.apache.org/jira/browse/HIVE-25726)：因 CVE-2020-13936 而將速度升級至 2.3 | 
| 向後移植 | [HIVE-25680](https://issues.apache.org/jira/browse/HIVE-25680)：授權 \$1get\$1table\$1meta HiveMetastore 伺服器 API 使用任何 HiveMetastore 授權模型。 | 
| 向後移植 | [HIVE-25554](https://issues.apache.org/jira/browse/HIVE-25554)：將 arrow 版本升級至 0.15 | 
| 向後移植 | [HIVE-25242](https://issues.apache.org/jira/browse/HIVE-25242)：使用 vectorized.adaptor = chosen 時，查詢執行速度極慢 | 
| 向後移植 | [HIVE-25085](https://issues.apache.org/jira/browse/HIVE-25085)：中繼存放區用戶端不再在工作階段之間共用。 | 
| 向後移植 | [HIVE-24827](https://issues.apache.org/jira/browse/HIVE-24827)：Hive 彙總查詢對非文字檔案傳回錯誤結果。 | 
| 向後移植 | [HIVE-24683](https://issues.apache.org/jira/browse/HIVE-24683)：如果路徑不存在，Hadoop23Shims getFileId 容易出現 NPE | 
| 向後移植 | [HIVE-24656](https://issues.apache.org/jira/browse/HIVE-24656)：對於映射和陣列類型為 Null 的查詢，CBO 失敗 | 
| 向後移植 | [HIVE-24556](https://issues.apache.org/jira/browse/HIVE-24556)：對沒有孫項的案例優化 DefaultGraphWalker | 
| 向後移植 | [HIVE-24408](https://issues.apache.org/jira/browse/HIVE-24408)：將 Parquet 升級至 1.11.1 | 
| 向後移植 | [HIVE-24391](https://issues.apache.org/jira/browse/HIVE-24391)：修正 branch-3.1 中的 FIX TestOrcFile 失敗 | 
| 向後移植 | [HIVE-24362](https://issues.apache.org/jira/browse/HIVE-24362)：對於具有大量節點的樹狀目錄而言，AST 樹狀目錄處理欠佳 | 
| 向後移植 | [HIVE-24316](https://issues.apache.org/jira/browse/HIVE-24316)：在 branch-3.1 中，將 ORC 從 1.5.6 升級至 1.5.8 | 
| 向後移植 | [HIVE-24307](https://issues.apache.org/jira/browse/HIVE-24307)：具有 property-file 和 -e 參數的 Beeline 失敗 | 
| 向後移植 | [HIVE-24245](https://issues.apache.org/jira/browse/HIVE-24245)：具有計數和不同分割區的向量化 PTF 會產生錯誤結果。 | 
| 向後移植 | [HIVE-24224](https://issues.apache.org/jira/browse/HIVE-24224)：修正在壓縮檔案上略過 Hive on Tez 的頁首/頁尾 | 
| 向後移植 | [HIVE-24157](https://issues.apache.org/jira/browse/HIVE-24157)：嚴格模式在 CAST 時間戳記 ↔ 數值上失敗 | 
| 向後移植 | [HIVE-24113](https://issues.apache.org/jira/browse/HIVE-24113)：GenericUDFToUnixTimeStamp 中出現 NPE | 
| 向後移植 | [HIVE-23987](https://issues.apache.org/jira/browse/HIVE-23987)：將 arrow 版本升級至 0.11.0 | 
| 向後移植 | [HIVE-23972](https://issues.apache.org/jira/browse/HIVE-23972)：將外部用戶端 ID 新增至 LLAP 外部用戶端 | 
| 向後移植 | [HIVE-23806](https://issues.apache.org/jira/browse/HIVE-23806)：避免在擴展結構描述的情況下清除所有分割區中的資料欄統計資料狀態。這提高了 alter table add columns 陳述式的執行期。 | 
| 向後移植 | [HIVE-23779](https://issues.apache.org/jira/browse/HIVE-23779)：BasicStatsTask 資訊無法在 beeline 主控台中列印 | 
| 向後移植 | [HIVE-23306](https://issues.apache.org/jira/browse/HIVE-23306)：如果 System.getProperty 設定了組態，則 RESET 命令無法運作 | 
| 向後移植 | [HIVE-23164](https://issues.apache.org/jira/browse/HIVE-23164)：由於非常駐程式執行緒，伺服器未正確終止 | 
| 向後移植 | [HIVE-22967](https://issues.apache.org/jira/browse/HIVE-22967)：支援 Hive on Tez 的 hive.reloadable.aux.jars.path | 
| 向後移植 | [HIVE-22934](https://issues.apache.org/jira/browse/HIVE-22934)：Hive 伺服器互動式日誌計數器用於錯誤串流 | 
| 向後移植 | [HIVE-22901](https://issues.apache.org/jira/browse/HIVE-22901)：變數替換可能導致循環參考中出現 OOM | 
| 向後移植 | [HIVE-22769](https://issues.apache.org/jira/browse/HIVE-22769)：在壓縮文字檔案的分割產生期間，出現查詢結果不正確和查詢失敗 | 
| 向後移植 | [HIVE-22716](https://issues.apache.org/jira/browse/HIVE-22716)：ByteBuffer 的讀取在 ParquetFooterInputFromCache 處中斷 | 
| 向後移植 | [HIVE-22648](https://issues.apache.org/jira/browse/HIVE-22648)：將 Parquet 升級至 1.11.0 | 
| 向後移植 | [HIVE-22640](https://issues.apache.org/jira/browse/HIVE-22640)：Decimal64ColumnVector：在分割區資料欄類型為十進位時，出現 ClassCastException | 
| 向後移植 | [HIVE-22621](https://issues.apache.org/jira/browse/HIVE-22621)：不穩定的測試案例：TestLlapSignerImpl.testSigning | 
| 向後移植 | [HIVE-22533](https://issues.apache.org/jira/browse/HIVE-22533)：修正可能出現的 LLAP 常駐程式 Web UI 漏洞 | 
| 向後移植 | [HIVE-22532](https://issues.apache.org/jira/browse/HIVE-22532)：PTFPPD 可能會透過 Rank/DenseRank 函數錯誤地推送限制 | 
| 向後移植 | [HIVE-22514](https://issues.apache.org/jira/browse/HIVE-22514)：HiveProtoLoggingHook 可能會耗用大量記憶體 | 
| 向後移植 | [HIVE-22476](https://issues.apache.org/jira/browse/HIVE-22476)：在 hive.fetch.task.conversion 設定為 none 時，Hive datediff 函數提供的結果不一致 | 
| 向後移植 | [HIVE-22429](https://issues.apache.org/jira/browse/HIVE-22429)：在 hive 3 上透過 bucketing\$1version 1 遷移的叢集資料表使用 bucketing\$1version 2 進行插入 | 
| 向後移植 | [HIVE-22412](https://issues.apache.org/jira/browse/HIVE-22412)：StatsUtils 在解釋期間擲出 NPE | 
| 向後移植 | [HIVE-22360](https://issues.apache.org/jira/browse/HIVE-22360)：如果載入的檔案的資料欄多於資料表結構描述中的資料欄，MultiDelimitSerDe 會在最後一個資料欄傳回錯誤結果 | 
| 向後移植 | [HIVE-22332](https://issues.apache.org/jira/browse/HIVE-22332)：自 ORC-540 以來，Hive 應確保有效的結構描述演變設定 | 
| 向後移植 | [HIVE-22331](https://issues.apache.org/jira/browse/HIVE-22331)：沒有引數的 unix\$1timestamp 以毫秒為單位 (而不是秒) 傳回時間戳記 | 
| 向後移植 | [HIVE-22275](https://issues.apache.org/jira/browse/HIVE-22275)：OperationManager.queryIdOperation 並未正確清除多個 queryId | 
| 向後移植 | [HIVE-22273](https://issues.apache.org/jira/browse/HIVE-22273)：移除暫時目錄時，存取檢查失敗 | 
| 向後移植 | [HIVE-22270](https://issues.apache.org/jira/browse/HIVE-22270)：將 commons-io 升級至 2.6 | 
| 向後移植 | [HIVE-22241](https://issues.apache.org/jira/browse/HIVE-22241)：實作 UDF 以使用內部表示法和 Gregorian-Julian 混合行事暦來解釋日期/時間戳記 | 
| 向後移植 | [HIVE-22241](https://issues.apache.org/jira/browse/HIVE-22241)：實作 UDF 以使用內部表示法和 Gregorian-Julian 混合來解釋日期/時間戳記 | 
| 向後移植 | [HIVE-22232](https://issues.apache.org/jira/browse/HIVE-22232)：在 hive.order.columnalignment 設定為 false 時，出現 NPE | 
| 向後移植 | [HIVE-22231](https://issues.apache.org/jira/browse/HIVE-22231)：透過 knox 進行大量 hive 查詢失敗，並顯示「中斷的管道寫入失敗」 | 
| 向後移植 | [HIVE-22221](https://issues.apache.org/jira/browse/HIVE-22221)：Llap 外部用戶端 – 需要減少 LlapBaseInputFormat\$1getSplits | 
| 向後移植 | [HIVE-22208](https://issues.apache.org/jira/browse/HIVE-22208)：當查詢 (包括在具有遮罩資料欄的資料表上的聯結) 重寫時，具有預留關鍵字的資料欄名稱無法逸出 | 
| 向後移植 | [HIVE-22197](https://issues.apache.org/jira/browse/HIVE-22197)：常見合併聯結擲出類別轉換例外狀況。 | 
| 向後移植 | [HIVE-22170](https://issues.apache.org/jira/browse/HIVE-22170)：from\$1unixtime 和 unix\$1timestamp 應使用使用者工作階段時區 | 
| 向後移植 | [HIVE-22169](https://issues.apache.org/jira/browse/HIVE-22169)：Tez：SplitGenerator 嘗試尋找對 Tez 而言不存在的計畫檔案 | 
| 向後移植 | [HIVE-22168](https://issues.apache.org/jira/browse/HIVE-22168)：從 llap 快取熱路徑中移除極為昂貴的日誌記錄 | 
| 向後移植 | [HIVE-22161](https://issues.apache.org/jira/browse/HIVE-22161)：UDF：FunctionRegistry 在 org.apache.hadoop.hive.ql.udf.UDFType 類別上同步 | 
| 向後移植 | [HIVE-22120](https://issues.apache.org/jira/browse/HIVE-22120)：修正在特定界限條件下的左外部映射聯結中的錯誤結果/ArrayOutOfBound 例外狀況 | 
| 向後移植 | [HIVE-22115](https://issues.apache.org/jira/browse/HIVE-22115)：如果屬性設定為 false，會阻止建立查詢路由附加器 | 
| 向後移植 | [HIVE-22113](https://issues.apache.org/jira/browse/HIVE-22113)：防止在 AMReporter 相關的 RuntimeException 上關閉 LLAP | 
| 向後移植 | [HIVE-22106](https://issues.apache.org/jira/browse/HIVE-22106)：移除 partition-eval 的 cross-query 同步 | 
| 向後移植 | [HIVE-22099](https://issues.apache.org/jira/browse/HIVE-22099)：自 HIVE-20007 以來，數個與日期相關的 UDF 無法正確處理 Julian 日期 | 
| 向後移植 | [HIVE-22037](https://issues.apache.org/jira/browse/HIVE-22037)：HS2 因 OOM 而關閉時，應會記錄 | 
| 向後移植 | [HIVE-21976](https://issues.apache.org/jira/browse/HIVE-21976)：在 Calcite HiveSortLimit 中，位移應為 Null 而不是零 | 
| 向後移植 | [HIVE-21924](https://issues.apache.org/jira/browse/HIVE-21924)：即使存在頁首/頁尾，也可分割文字檔案 | 
| 向後移植 | [HIVE-21913](https://issues.apache.org/jira/browse/HIVE-21913)：GenericUDTFGetSplits 應會以與 LLAP 相同的方式處理使用者名稱 | 
| 向後移植 | [HIVE-21905](https://issues.apache.org/jira/browse/HIVE-21905)：圍繞 FetchOperator 類別的泛型改進 | 
| 向後移植 | [HIVE-21902](https://issues.apache.org/jira/browse/HIVE-21902)：HiveServer2 UI：jetty 回應標頭需要 X-Frame-Options | 
| 向後移植 | [HIVE-21888](https://issues.apache.org/jira/browse/HIVE-21888)：將 hive.parquet.timestamp.skip.conversion 預設為 true | 
| 向後移植 | [HIVE-21868](https://issues.apache.org/jira/browse/HIVE-21868)：向量化 CAST...FORMAT | 
| 向後移植 | [HIVE-21864](https://issues.apache.org/jira/browse/HIVE-21864)：LlapBaseInputFormat\$1closeAll | 
| 向後移植 | [HIVE-21863](https://issues.apache.org/jira/browse/HIVE-21863)：改進 WHEN 表達式的 Vectorizer 類型轉換 | 
| 向後移植 | [HIVE-21862](https://issues.apache.org/jira/browse/HIVE-21862)：ORC ppd 產生具有時間戳記的錯誤結果 | 
| 向後移植 | [HIVE-21846](https://issues.apache.org/jira/browse/HIVE-21846)：在 TezAM 中建立一個定期擷取 LlapDaemon 指標的執行緒 | 
| 向後移植 | [HIVE-21837](https://issues.apache.org/jira/browse/HIVE-21837)：在選取的資料欄完全具有 Null 值時，MapJoin 會擲出例外狀況 | 
| 向後移植 | [HIVE-21834](https://issues.apache.org/jira/browse/HIVE-21834)：避免不必要的呼叫，以簡化篩選條件 | 
| 向後移植 | [HIVE-21832](https://issues.apache.org/jira/browse/HIVE-21832)：取得平均佇列/服務/回應時間的新指標 | 
| 向後移植 | [HIVE-21827](https://issues.apache.org/jira/browse/HIVE-21827)：SemanticAnalyzer 中的多個呼叫未通過 getTableObjectByName 方法 | 
| 向後移植 | [HIVE-21822](https://issues.apache.org/jira/browse/HIVE-21822)：透過新的 API 方法公開 LlapDaemon 指標 | 
| 向後移植 | [HIVE-21818](https://issues.apache.org/jira/browse/HIVE-21818)：CBO：TableRelOptHiveTable 的複製包含中繼存放區流量 | 
| 向後移植 | [HIVE-21815](https://issues.apache.org/jira/browse/HIVE-21815)：ORC 檔案中的統計資料已剖析兩次 | 
| 向後移植 | [HIVE-21805](https://issues.apache.org/jira/browse/HIVE-21805)：HiveServer2：使用快速 ShutdownHookManager API | 
| 向後移植 | [HIVE-21799](https://issues.apache.org/jira/browse/HIVE-21799)：當聯結金鑰位於彙總資料欄時，DynamicPartitionPruningOptimization 中出現 NullPointerException | 
| 向後移植 | [HIVE-21794](https://issues.apache.org/jira/browse/HIVE-21794)：將具體化視觀表參數新增至 sqlStdAuthSafeVarNameRegexes | 
| 向後移植 | [HIVE-21768](https://issues.apache.org/jira/browse/HIVE-21768)：JDBC：去除沒有括起來的 UNION 查詢的預設聯集字首 | 
| 向後移植 | [HIVE-21746](https://issues.apache.org/jira/browse/HIVE-21746)：在停用 CBO 的情況下動態分割雜湊聯結期間，出現 ArrayIndexOutOfBoundsException | 
| 向後移植 | [HIVE-21717](https://issues.apache.org/jira/browse/HIVE-21717)：移動任務中的目錄重新命名失敗。 | 
| 向後移植 | [HIVE-21685](https://issues.apache.org/jira/browse/HIVE-21685)：具有多個 IN 子句的查詢中，出現簡化錯誤 | 
| 向後移植 | [HIVE-21681](https://issues.apache.org/jira/browse/HIVE-21681)：Describe formatted 顯示了多個主索引鍵的錯誤資訊 | 
| 向後移植 | [HIVE-21651](https://issues.apache.org/jira/browse/HIVE-21651)：將 protobuf serde 移到 hive-exec 中。 | 
| 向後移植 | [HIVE-21619](https://issues.apache.org/jira/browse/HIVE-21619)：在 SQL 解釋擴展中的時間戳記類型沒有精確度 | 
| 向後移植 | [HIVE-21592](https://issues.apache.org/jira/browse/HIVE-21592)：如果表達式包含 CONCAT，不會顯示 OptimizedSql | 
| 向後移植 | [HIVE-21576](https://issues.apache.org/jira/browse/HIVE-21576)：引入 CAST...FORMAT 和 SQL:2016 日期時間格式的限制清單 | 
| 向後移植 | [HIVE-21573](https://issues.apache.org/jira/browse/HIVE-21573)：如果身分驗證設定為 delegationToken，二進位傳輸將忽略主體 | 
| 向後移植 | [HIVE-21550](https://issues.apache.org/jira/browse/HIVE-21550)：TestObjectStore 測試不穩定 - 無法在請求的時間內取得鎖定 | 
| 向後移植 | [HIVE-21544](https://issues.apache.org/jira/browse/HIVE-21544)：持續傳播會損毀摺疊期間的 coalesce/case/when 表達式 | 
| 向後移植 | [HIVE-21539](https://issues.apache.org/jira/browse/HIVE-21539)：如果 GroupBy \$1 where 子句在相同資料欄上，會導致錯誤的查詢重寫 | 
| 向後移植 | [HIVE-21538](https://issues.apache.org/jira/browse/HIVE-21538)：Beeline：雖然主控台讀取器未傳遞至連線參數，但會提供密碼來源 | 
| 向後移植 | [HIVE-21509](https://issues.apache.org/jira/browse/HIVE-21509)：LLAP 可能會快取毀損的資料欄向量，並傳回錯誤的查詢結果 | 
| 向後移植 | [HIVE-21499](https://issues.apache.org/jira/browse/HIVE-21499)：如果建立命令失敗並顯示 AlreadyExistsException，則不應從登錄檔中移除函數 | 
| 向後移植 | [HIVE-21496](https://issues.apache.org/jira/browse/HIVE-21496)：自動調整無順序緩衝區大小可能會溢位 | 
| 向後移植 | [HIVE-21468](https://issues.apache.org/jira/browse/HIVE-21468)：JDBC 儲存處理常式的識別符名稱區分大小寫 | 
| 向後移植 | [HIVE-21467](https://issues.apache.org/jira/browse/HIVE-21467)：移除已棄用的 junit.framework.Assert 匯入 | 
| 向後移植 | [HIVE-21435](https://issues.apache.org/jira/browse/HIVE-21435)：在建置 SubmitWorkRequestProto 時，LlapBaseInputFormat 應從 TASK\$1ATTEMPT\$1ID conf 取得任務編號 (如果存在) | 
| 向後移植 | [HIVE-21389](https://issues.apache.org/jira/browse/HIVE-21389)：在 HIVE-21247 後，Hive 分佈遺失 javax.ws.rs-api.jar | 
| 向後移植 | [HIVE-21385](https://issues.apache.org/jira/browse/HIVE-21385)：允許禁止向 JDBC 來源下推不可分割的運算 | 
| 向後移植 | [HIVE-21383](https://issues.apache.org/jira/browse/HIVE-21383)：JDBC 儲存處理常式：使用型錄和結構描述擷取資料表 (如果已指定) | 
| 向後移植 | [HIVE-21382](https://issues.apache.org/jira/browse/HIVE-21382)：Group by 金鑰減少優化 - 在 query23 中未減少金鑰 | 
| 向後移植 | [HIVE-21362](https://issues.apache.org/jira/browse/HIVE-21362)：新增輸入格式和 serde，以從 protobuf 檔案中讀取。 | 
| 向後移植 | [HIVE-21340](https://issues.apache.org/jira/browse/HIVE-21340)：CBO：刪減饋送至 SemiJoin 的非金鑰資料欄 | 
| 向後移植 | [HIVE-21332](https://issues.apache.org/jira/browse/HIVE-21332)：清除非鎖定緩衝區，而不清除鎖定的緩衝區 | 
| 向後移植 | [HIVE-21329](https://issues.apache.org/jira/browse/HIVE-21329)：根據運算子管道，自訂 Tez 執行期無順序輸出緩衝區的大小 | 
| 向後移植 | [HIVE-21295](https://issues.apache.org/jira/browse/HIVE-21295)：StorageHandler 將使用 Hive 慣例將日期轉換為字串 | 
| 向後移植 | [HIVE-21294](https://issues.apache.org/jira/browse/HIVE-21294)：向量化：1-reducer Shuffle 可以略過物件雜湊函數 | 
| 向後移植 | [HIVE-21255](https://issues.apache.org/jira/browse/HIVE-21255)：移除 JdbcStorageHandler 中的 QueryConditionBuilder | 
| 向後移植 | [HIVE-21253](https://issues.apache.org/jira/browse/HIVE-21253)：支援 JDBC StorageHandler 中的 DB2 | 
| 向後移植 | [HIVE-21232](https://issues.apache.org/jira/browse/HIVE-21232)：LLAP：新增友好的快取未中分割親和性提供程式 | 
| 向後移植 | [HIVE-21214](https://issues.apache.org/jira/browse/HIVE-21214)：MoveTask：使用 attemptId 而不是檔案大小，來刪除檔案 compareTempOrDuplicateFiles 的重複資料 | 
| 向後移植 | [HIVE-21184](https://issues.apache.org/jira/browse/HIVE-21184)：新增解釋內容，並解釋具有成本資訊的格式化 CBO 計畫 | 
| 向後移植 | [HIVE-21182](https://issues.apache.org/jira/browse/HIVE-21182)：在計畫期間，略過設定 hive scratch dir | 
| 向後移植 | [HIVE-21171](https://issues.apache.org/jira/browse/HIVE-21171)：如果 RPC 處於開啟狀態，請略過為 tez 建立暫存目錄 | 
| 向後移植 | [HIVE-21126](https://issues.apache.org/jira/browse/HIVE-21126)：允許在 LlapBaseInputFormat\$1getSplit 中進行工作階段層級查詢 | 
| 向後移植 | [HIVE-21107](https://issues.apache.org/jira/browse/HIVE-21107)：在動態分割雜湊聯結期間，發生「找不到欄位」錯誤 | 
| 向後移植 | [HIVE-21061](https://issues.apache.org/jira/browse/HIVE-21061)：CTAS 查詢失敗，且空來源出現 IllegalStateException | 
| 向後移植 | [HIVE-21041](https://issues.apache.org/jira/browse/HIVE-21041)：從邏輯計畫中取得結構描述時，出現 NPE，ParseException | 
| 向後移植 | [HIVE-21013](https://issues.apache.org/jira/browse/HIVE-21013)：JdbcStorageHandler 無法在 Oracle 中尋找分割區資料欄 | 
| 向後移植 | [HIVE-21006](https://issues.apache.org/jira/browse/HIVE-21006)：擴展 SharedWorkOptimizer，以在出現再利用機會時移除半聯結 | 
| 向後移植 | [HIVE-20992](https://issues.apache.org/jira/browse/HIVE-20992)：將組態 hive.metastore.dbaccess.ssl.properties 分割為更有意義的組態 | 
| 向後移植 | [HIVE-20989](https://issues.apache.org/jira/browse/HIVE-20989)：JDBC - GetOperationStatus \$1 日誌可以透過休眠阻止查詢進度 | 
| 向後移植 | [HIVE-20988](https://issues.apache.org/jira/browse/HIVE-20988)：在多資料欄上使用主索引鍵進行 group by 查詢時，結果錯誤 | 
| 向後移植 | [HIVE-20985](https://issues.apache.org/jira/browse/HIVE-20985)：如果 select 運算子輸入是暫時資料欄，向量化可能會重複使用其中一部分作為輸出 | 
| 向後移植 | [HIVE-20978](https://issues.apache.org/jira/browse/HIVE-20978)："hive.jdbc.\$1" 應新增至 sqlStdAuthSafeVarNameRegexes | 
| 向後移植 | [HIVE-20953](https://issues.apache.org/jira/browse/HIVE-20953)：如果在建立某個函數時無法將其新增至中繼存放區，則將此函數從函數登錄檔中移除。 | 
| 向後移植 | [HIVE-20952](https://issues.apache.org/jira/browse/HIVE-20952)：清除 VectorizationContext.java | 
| 向後移植 | [HIVE-20951](https://issues.apache.org/jira/browse/HIVE-20951)：LLAP：始終將 Xms 設定為 50% | 
| 向後移植 | [HIVE-20949](https://issues.apache.org/jira/browse/HIVE-20949)：改進實體規劃中的 PKFK 基數預估 | 
| 向後移植 | [HIVE-20944](https://issues.apache.org/jira/browse/HIVE-20944)：在查詢編譯期間，不驗證統計資料 | 
| 向後移植 | [HIVE-20940](https://issues.apache.org/jira/browse/HIVE-20940)：橋接 Calcite 類型解析比 Hive 更嚴格的案例。 | 
| 向後移植 | [HIVE-20937](https://issues.apache.org/jira/browse/HIVE-20937)：Postgres jdbc 查詢失敗，並顯示「LIMIT 不得為負數」 | 
| 向後移植 | [HIVE-20926](https://issues.apache.org/jira/browse/HIVE-20926)：當 bloom 篩選條件項目較高或沒有統計資料時，半聯結減少提示失敗 | 
| 向後移植 | [HIVE-20920](https://issues.apache.org/jira/browse/HIVE-20920)：使用 SQL 限制條件來改進聯結重新排序演算法 | 
| 向後移植 | [HIVE-20918](https://issues.apache.org/jira/browse/HIVE-20918)：用於啟用/停用將運算從 Calcite 下推到 JDBC 連線的旗標 | 
| 向後移植 | [HIVE-20915](https://issues.apache.org/jira/browse/HIVE-20915)：為 HoS 和 MR 提供動態排序分割區優化 | 
| 向後移植 | [HIVE-20910](https://issues.apache.org/jira/browse/HIVE-20910)：由於動態分割區排序優化，插入歸納資料表失敗 | 
| 向後移植 | [HIVE-20899](https://issues.apache.org/jira/browse/HIVE-20899)：LLAP YARN 服務的 Keytab URI 僅限於支援 HDFS | 
| 向後移植 | [HIVE-20898](https://issues.apache.org/jira/browse/HIVE-20898)：對於時間相關函數，引數不會轉換為非空類型 | 
| 向後移植 | [HIVE-20881](https://issues.apache.org/jira/browse/HIVE-20881)：持續傳播導致投影過度簡化 | 
| 向後移植 | [HIVE-20880](https://issues.apache.org/jira/browse/HIVE-20880)：更新 hive.stats.filter.in.min.ratio 的預設值 | 
| 向後移植 | [HIVE-20873](https://issues.apache.org/jira/browse/HIVE-20873)：對 VectorHashKeyWrapperTwoLong 使用 Murmur 雜湊，以減少雜湊衝突 | 
| 向後移植 | [HIVE-20868](https://issues.apache.org/jira/browse/HIVE-20868)：如果 TezDummyOperator 在 MapRecordProcessor 中的 getFinalOp 中具有子操作，SMB Join 會間歇性失敗 | 
| 向後移植 | [HIVE-20853](https://issues.apache.org/jira/browse/HIVE-20853)：在 llap 常駐程式 API 中公開 ShuffleHandler.registerDag | 
| 向後移植 | [HIVE-20850](https://issues.apache.org/jira/browse/HIVE-20850)：如果可能，將案例條件從投影推送至維度資料表 | 
| 向後移植 | [HIVE-20842](https://issues.apache.org/jira/browse/HIVE-20842)：修正 HIVE-20660 中引入的邏輯，以預估 group by 的統計資料 | 
| 向後移植 | [HIVE-20839](https://issues.apache.org/jira/browse/HIVE-20839)：在動態分割雜湊聯結期間，發生「找不到欄位」錯誤 | 
| 向後移植 | [HIVE-20835](https://issues.apache.org/jira/browse/HIVE-20835)：限制條件與 MV 重寫之間的互動可能會在 Calcite 規劃器中建立迴圈 | 
| 向後移植 | [HIVE-20834](https://issues.apache.org/jira/browse/HIVE-20834)：Hive QueryResultCache 項目保持從快取查詢中參考 SemanticAnalyzer | 
| 向後移植 | [HIVE-20830](https://issues.apache.org/jira/browse/HIVE-20830)：在某些情況下，JdbcStorageHandler 範圍查詢聲明失敗 | 
| 向後移植 | [HIVE-20829](https://issues.apache.org/jira/browse/HIVE-20829)：JdbcStorageHandler 範圍分割擲出 NPE | 
| 向後移植 | [HIVE-20827](https://issues.apache.org/jira/browse/HIVE-20827)：空陣列的結果不一致 | 
| 向後移植 | [HIVE-20826](https://issues.apache.org/jira/browse/HIVE-20826)：增強 HiveSemiJoin 規則，以將左側的 join \$1 group by 轉換為左半聯結 | 
| 向後移植 | [HIVE-20821](https://issues.apache.org/jira/browse/HIVE-20821)：將 SUM0 重寫為 SUM \$1 COALESCE 組合 | 
| 向後移植 | [HIVE-20815](https://issues.apache.org/jira/browse/HIVE-20815)：JdbcRecordReader.next 不會吃掉例外狀況 | 
| 向後移植 | [HIVE-20813](https://issues.apache.org/jira/browse/HIVE-20813)：udf to\$1epoch\$1milli 也需要支援無時區的時間戳記。 | 
| 向後移植 | [HIVE-20804](https://issues.apache.org/jira/browse/HIVE-20804)：透過限制條件進一步改進 group by 優化 | 
| 向後移植 | [HIVE-20792](https://issues.apache.org/jira/browse/HIVE-20792)：插入具有區域的時間戳記會截斷資料 | 
| 向後移植 | [HIVE-20788](https://issues.apache.org/jira/browse/HIVE-20788)：建立篩選條件時，擴展的 SJ 縮減可能導致資料欄錯誤恢復 | 
| 向後移植 | [HIVE-20778](https://issues.apache.org/jira/browse/HIVE-20778)：如果計畫中的所有聯結都是透過解除相關性邏輯建立的，則可能無法觸發聯結重新排序 | 
| 向後移植 | [HIVE-20772](https://issues.apache.org/jira/browse/HIVE-20772)：在 LLAP 中記錄每個任務的 CPU 計數器 | 
| 向後移植 | [HIVE-20768](https://issues.apache.org/jira/browse/HIVE-20768)：新增輪轉視窗 UDF | 
| 向後移植 | [HIVE-20767](https://issues.apache.org/jira/browse/HIVE-20767)：聯結運算子之間的多個專案可能會影響使用限制條件的聯結重新排序 | 
| 向後移植 | [HIVE-20762](https://issues.apache.org/jira/browse/HIVE-20762)：NOTIFICATION\$1LOG 清除時間間隔硬式編碼為 60 秒，時間間隔過小 | 
| 向後移植 | [HIVE-20761](https://issues.apache.org/jira/browse/HIVE-20761)：選取對 notification\$1sequence 資料表進行更新具有重試時間間隔，且重試計數過小 | 
| 向後移植 | [HIVE-20751](https://issues.apache.org/jira/browse/HIVE-20751)：將 arrow 版本升級至 0.10.0 | 
| 向後移植 | [HIVE-20746](https://issues.apache.org/jira/browse/HIVE-20746)：HiveProtoHookLogger 無法在一天結束時關閉檔案。 | 
| 向後移植 | [HIVE-20744](https://issues.apache.org/jira/browse/HIVE-20744)：使用 SQL 限制條件來改進聯結重新排序演算法 | 
| 向後移植 | [HIVE-20740](https://issues.apache.org/jira/browse/HIVE-20740)：移除 ObjectStore.setConf 方法中的全域鎖定。此 cherrypick 會將適用於 Hive 3.2 和 4.x 的 HIVE-20740 向後移植至 3.1.x | 
| 向後移植 | [HIVE-20734](https://issues.apache.org/jira/browse/HIVE-20734)：Beeline：如果 beeline-site.xml 存在並且 hive CLI 重新導向至 beeline，它應使用系統使用者名稱/虛擬密碼，而不會提示輸入此資訊 | 
| 向後移植 | [HIVE-20731](https://issues.apache.org/jira/browse/HIVE-20731)：JdbcStorageHandler 中的金鑰存放區檔案應獲得授權 | 
| 向後移植 | [HIVE-20720](https://issues.apache.org/jira/browse/HIVE-20720)：將分割區資料欄選項新增至 JDBC 處理常式 | 
| 向後移植 | [HIVE-20719](https://issues.apache.org/jira/browse/HIVE-20719)：在 hive.optimize.sort.dynamic.partition 優化和向量化開啟的情況下，SELECT 陳述式在 UPDATE 後失敗 | 
| 向後移植 | [HIVE-20718](https://issues.apache.org/jira/browse/HIVE-20718)：新增具有限制條件的 perf cli 驅動程式 | 
| 向後移植 | [HIVE-20716](https://issues.apache.org/jira/browse/HIVE-20716)：將 hive.cbo.stats.correlated.multi.key.joins 的預設值設定為 true | 
| 向後移植 | [HIVE-20712](https://issues.apache.org/jira/browse/HIVE-20712)：HivePointLookupOptimizer 應會擷取深層案例 | 
| 向後移植 | [HIVE-20710](https://issues.apache.org/jira/browse/HIVE-20710)：常數摺疊可能不會建立沒有類型的 Null 常數 | 
| 向後移植 | [HIVE-20706](https://issues.apache.org/jira/browse/HIVE-20706)：external\$1jdbc\$1table2.q 間歇性失敗 | 
| 向後移植 | [HIVE-20704](https://issues.apache.org/jira/browse/HIVE-20704)：擴展 HivePreFilteringRule 以支援其他功能 | 
| 向後移植 | [HIVE-20703](https://issues.apache.org/jira/browse/HIVE-20703)：將動態排序分割區優化置於成本型決策之下 | 
| 向後移植 | [HIVE-20702](https://issues.apache.org/jira/browse/HIVE-20702)：在 mapjoin 選擇期間，考慮資料結構感知預估的開銷 | 
| 向後移植 | [HIVE-20692](https://issues.apache.org/jira/browse/HIVE-20692)：啟用 NOT x IS (NOT) [TRUE\$1FALSE] 表達式的摺疊 | 
| 向後移植 | [HIVE-20691](https://issues.apache.org/jira/browse/HIVE-20691)：修正 org.apache.hadoop.hive.cli.TestMiniLlapCliDriver.testCliDriver[cttl] | 
| 向後移植 | [HIVE-20682](https://issues.apache.org/jira/browse/HIVE-20682)：如果主執行緒關閉了共用 sessionHive，則非同步查詢執行可能會失敗 | 
| 向後移植 | [HIVE-20676](https://issues.apache.org/jira/browse/HIVE-20676)：HiveServer2：PrivilegeSynchronizer 未設定為常駐程式狀態 | 
| 向後移植 | [HIVE-20660](https://issues.apache.org/jira/browse/HIVE-20660)：可透過將總資料列數綁定至來源資料表，改進 group by 統計資料預估 | 
| 向後移植 | [HIVE-20652](https://issues.apache.org/jira/browse/HIVE-20652)：JdbcStorageHandler 將兩個不同資料來源的聯結推送至 jdbc 驅動器 | 
| 向後移植 | [HIVE-20651](https://issues.apache.org/jira/browse/HIVE-20651)：JdbcStorageHandler 密碼應會進行加密 | 
| 向後移植 | [HIVE-20649](https://issues.apache.org/jira/browse/HIVE-20649)：LLAP 感知記憶體管理員可用於 Orc 寫入器 | 
| 向後移植 | [HIVE-20648](https://issues.apache.org/jira/browse/HIVE-20648)：LLAP：向量 group by 運算子應使用每個執行程式的記憶體 | 
| 向後移植 | [HIVE-20646](https://issues.apache.org/jira/browse/HIVE-20646)：如果分割區篩選條件具有 IS NOT NULL，則不會下推至中繼存放區查詢 | 
| 向後移植 | [HIVE-20644](https://issues.apache.org/jira/browse/HIVE-20644)：避免透過 Hive 執行期例外狀況洩漏敏感資訊 | 
| 向後移植 | [HIVE-20636](https://issues.apache.org/jira/browse/HIVE-20636)：對外部聯結後的 Null 值預估數目進行改進 | 
| 向後移植 | [HIVE-20632](https://issues.apache.org/jira/browse/HIVE-20632)：如果在查詢資料表上建立具體化視觀表，則使用 get\$1splits UDF 查詢會失敗 | 
| 向後移植 | [HIVE-20627](https://issues.apache.org/jira/browse/HIVE-20627)：並行非同步查詢間歇性地失敗並擲出 LockException，同時導致記憶體洩漏 | 
| 向後移植 | [HIVE-20623](https://issues.apache.org/jira/browse/HIVE-20623)：共用工作：擴展 LLAP 中 map-join 快取項目的共用 | 
| 向後移植 | [HIVE-20619](https://issues.apache.org/jira/browse/HIVE-20619)：依預設，在 HiveServer2 中包含 MultiDelimitSerDe | 
| 向後移植 | [HIVE-20618](https://issues.apache.org/jira/browse/HIVE-20618)：在聯結選擇期間，可能會為非歸納資料表選擇 BucketMapJoin | 
| 向後移植 | [HIVE-20617](https://issues.apache.org/jira/browse/HIVE-20617)：修正 IN 表達式中的常數類型，使其具有正確類型 | 
| 向後移植 | [HIVE-20612](https://issues.apache.org/jira/browse/HIVE-20612)：為 CBO 建立新的聯結多金鑰相互關聯旗標 | 
| 向後移植 | [HIVE-20603](https://issues.apache.org/jira/browse/HIVE-20603)：變更資料表位置檔案系統之後，插入分割區時出現「錯誤的 FS」錯誤 | 
| 向後移植 | [HIVE-20601](https://issues.apache.org/jira/browse/HIVE-20601)：DbNotificationListener 中 ALTER\$1PARTITION 事件中的 EnvironmentContext 為 Null | 
| 向後移植 | [HIVE-20583](https://issues.apache.org/jira/browse/HIVE-20583)：僅對 HiveConnection 中的 kerberos 身分驗證使用正規主機名稱 | 
| 向後移植 | [HIVE-20582](https://issues.apache.org/jira/browse/HIVE-20582)：hive proto 日誌記錄中的 hflush 可設定 | 
| 向後移植 | [HIVE-20563](https://issues.apache.org/jira/browse/HIVE-20563)：向量化：如果 THEN/ELSE 類型和結果類型不同，CASE WHEN 表達式會失敗 | 
| 向後移植 | [HIVE-20558](https://issues.apache.org/jira/browse/HIVE-20558)：將 hive.hashtable.key.count.adjustment 的預設值變更為 0.99 | 
| 向後移植 | [HIVE-20552](https://issues.apache.org/jira/browse/HIVE-20552)：更快地從 LogicalPlan 取得結構描述 | 
| 向後移植 | [HIVE-20550](https://issues.apache.org/jira/browse/HIVE-20550)：切換 WebHCat 以使用 beeline 提交 Hive 查詢 | 
| 向後移植 | [HIVE-20537](https://issues.apache.org/jira/browse/HIVE-20537)：使用與 CBO 和 Hive 中不同的不相關資料欄，進行多資料欄聯結預估 | 
| 向後移植 | [HIVE-20524](https://issues.apache.org/jira/browse/HIVE-20524)：在從 Hive 第 2 版升級至第 3 版以從 ALTER TABLE VARCHAR 轉至 DECIMAL 的過程中，結構描述演變檢查中斷 | 
| 向後移植 | [HIVE-20522](https://issues.apache.org/jira/browse/HIVE-20522)：由於欄位可為 Null，HiveFilterSetOpTransposeRule 可能擲出聲明錯誤 | 
| 向後移植 | [HIVE-20521](https://issues.apache.org/jira/browse/HIVE-20521)：HS2 doAs=true 與 hadoop.tmp.dir、MR 和 S3A 檔案系統存在許可問題 | 
| 向後移植 | [HIVE-20515](https://issues.apache.org/jira/browse/HIVE-20515)：使用不同檔案系統中的結果快取、查詢暫時目錄和結果快取目錄時，查詢結果為空 | 
| 向後移植 | [HIVE-20508](https://issues.apache.org/jira/browse/HIVE-20508)：Hive 不支援 "user@realm" 類型的使用者名稱 | 
| 向後移植 | [HIVE-20507](https://issues.apache.org/jira/browse/HIVE-20507)：Beeline：新增公用程式命令以從 beeline-site.xml 中擷取所有 uri | 
| 向後移植 | [HIVE-20505](https://issues.apache.org/jira/browse/HIVE-20505)：將 org.openjdk.jmh:jmh-core 升級至 1.21 | 
| 向後移植 | [HIVE-20503](https://issues.apache.org/jira/browse/HIVE-20503)：在 mapjoin 選擇期間，使用資料結構感知預估 | 
| 向後移植 | [HIVE-20498](https://issues.apache.org/jira/browse/HIVE-20498)：支援資料欄統計資料自動收集的日期類型 | 
| 向後移植 | [HIVE-20496](https://issues.apache.org/jira/browse/HIVE-20496)：向量化：向量化 PTF IllegalStateException | 
| 向後移植 | [HIVE-20494](https://issues.apache.org/jira/browse/HIVE-20494)：GenericUDFRestrictInformationSchema 在 HIVE-19440 後中斷 | 
| 向後移植 | [HIVE-20477](https://issues.apache.org/jira/browse/HIVE-20477)：如果表達式包含 IN，不會顯示 OptimizedSql | 
| 向後移植 | [HIVE-20467](https://issues.apache.org/jira/browse/HIVE-20467)：建立/捨棄資源計畫時，允許 IF NOT EXISTS/IF EXISTS | 
| 向後移植 | [HIVE-20462](https://issues.apache.org/jira/browse/HIVE-20462)：如果檢視已存在，"CREATE VIEW IF NOT EXISTS" 會失敗 | 
| 向後移植 | [HIVE-20455](https://issues.apache.org/jira/browse/HIVE-20455)：來自 security.authorization.PrivilegeSynchonizer.run 的日誌過多 | 
| 向後移植 | [HIVE-20439](https://issues.apache.org/jira/browse/HIVE-20439)：在 llap 的聯結選擇期間，使用膨脹的記憶體限制 | 
| 向後移植 | [HIVE-20433](https://issues.apache.org/jira/browse/HIVE-20433)：字串隱式轉換為時間戳記的速度緩慢 | 
| 向後移植 | [HIVE-20432](https://issues.apache.org/jira/browse/HIVE-20432)：對於整數類型，將 BETWEEN 重寫為 IN 以進行統計預估 | 
| 向後移植 | [HIVE-20423](https://issues.apache.org/jira/browse/HIVE-20423)：將 NULLS LAST 設定為預設 Null 順序 | 
| 向後移植 | [HIVE-20418](https://issues.apache.org/jira/browse/HIVE-20418)：對於未選取資料欄的查詢，LLAP IO 可能無法處理正確停用資料列索引的 ORC 檔案 | 
| 向後移植 | [HIVE-20412](https://issues.apache.org/jira/browse/HIVE-20412): HiveMetaHook 中出現 NPE | 
| 向後移植 | [HIVE-20406](https://issues.apache.org/jira/browse/HIVE-20406)：巢狀 Coalesce 提供錯誤的結果 | 
| 向後移植 | [HIVE-20399](https://issues.apache.org/jira/browse/HIVE-20399)：對於 MM 資料表，不完整的 CTAS w/a 自訂資料表位置失敗 | 
| 向後移植 | [HIVE-20393](https://issues.apache.org/jira/browse/HIVE-20393)：Semijoin Reduction：markSemiJoinForDPP 行為不一致 | 
| 向後移植 | [HIVE-20391](https://issues.apache.org/jira/browse/HIVE-20391)：HiveAggregateReduceFunctionsRule 在分解彙總函數時，可能會推斷出錯誤的傳回類型 | 
| 向後移植 | [HIVE-20383](https://issues.apache.org/jira/browse/HIVE-20383)：hive proto 事件勾點出現無效佇列名稱和同步問題。 | 
| 向後移植 | [HIVE-20367](https://issues.apache.org/jira/browse/HIVE-20367)：向量化：支援 PTF AVG、MAX、MIN、SUM 進行串流 | 
| 向後移植 | [HIVE-20366](https://issues.apache.org/jira/browse/HIVE-20366)：因為篩選條件為 Null，TPC-DS query78 統計資料預估已關閉 | 
| 向後移植 | [HIVE-20364](https://issues.apache.org/jira/browse/HIVE-20364)：更新 hive.map.aggr.hash.min.reduction 的預設值 | 
| 向後移植 | [HIVE-20352](https://issues.apache.org/jira/browse/HIVE-20352)：向量化：支援分組函數 | 
| 向後移植 | [HIVE-20347](https://issues.apache.org/jira/browse/HIVE-20347)：hive.optimize.sort.dynamic.partition 應適用於分割的 CTAS 和 MV | 
| 向後移植 | [HIVE-20345](https://issues.apache.org/jira/browse/HIVE-20345)：如果從不同的呼叫中刪除資料表，則捨棄資料庫可能會當機 | 
| 向後移植 | [HIVE-20343](https://issues.apache.org/jira/browse/HIVE-20343)：Hive 3：CTAS 未遵守 transactional\$1properties | 
| 向後移植 | [HIVE-20340](https://issues.apache.org/jira/browse/HIVE-20340)：在時間戳記函數的輸出用作 Strin 時，Druid 需要從 Timestamp 至 STRING 的明確 CAST | 
| 向後移植 | [HIVE-20339](https://issues.apache.org/jira/browse/HIVE-20339)：向量化：解除不必要的限制，導致某些具有 RANK 的 PTF 無法向量化 | 
| 向後移植 | [HIVE-20337](https://issues.apache.org/jira/browse/HIVE-20337)：CachedStore：getPartitionsByExpr 未正確填入分割區清單 | 
| 向後移植 | [HIVE-20336](https://issues.apache.org/jira/browse/HIVE-20336)：具體化視觀表的遮罩和篩選政策 | 
| 向後移植 | [HIVE-20326](https://issues.apache.org/jira/browse/HIVE-20326)：使用 RELY 作為預設值而不是 NO RELY 建立限制條件 | 
| 向後移植 | [HIVE-20321](https://issues.apache.org/jira/browse/HIVE-20321)：向量化：將 1 col VectorHashKeyWrapper 的記憶體大小減少至 <1 CacheLine | 
| 向後移植 | [HIVE-20320](https://issues.apache.org/jira/browse/HIVE-20320)：開啟 hive.optimize.remove.sq\$1count\$1check 旗標 | 
| 向後移植 | [HIVE-20315](https://issues.apache.org/jira/browse/HIVE-20315)：向量化：修正更多 NULL/錯誤結果問題，並避免不必要的強制轉換/轉換 | 
| 向後移植 | [HIVE-20314](https://issues.apache.org/jira/browse/HIVE-20314)：在具體化視觀表重寫中包含分割區剔除 | 
| 向後移植 | [HIVE-20312](https://issues.apache.org/jira/browse/HIVE-20312)：允許 arrow 用戶端將自己的 BufferAllocator 與 LlapOutputFormatService 搭配使用 | 
| 向後移植 | [HIVE-20302](https://issues.apache.org/jira/browse/HIVE-20302)：LLAP：IO 中的非向量化執行會忽略虛擬資料欄，包括 ROW\$1\$1ID | 
| 向後移植 | [HIVE-20300](https://issues.apache.org/jira/browse/HIVE-20300)：VectorFileSinkArrowOperator | 
| 向後移植 | [HIVE-20299](https://issues.apache.org/jira/browse/HIVE-20299)：LLAP 簽署者單元測試中存在潛在競爭 | 
| 向後移植 | [HIVE-20296](https://issues.apache.org/jira/browse/HIVE-20296)：改進 HivePointLookupOptimizerRule，以能夠從更複雜的內容中擷取 | 
| 向後移植 | [HIVE-20294](https://issues.apache.org/jira/browse/HIVE-20294)：向量化：修正 COALESCE/ELT 中的 NULL/錯誤結果問題 | 
| 向後移植 | [HIVE-20292](https://issues.apache.org/jira/browse/HIVE-20292)：已定義主要限制條件的 tpcds query93 中的聯結排序錯誤 | 
| 向後移植 | [HIVE-20290](https://issues.apache.org/jira/browse/HIVE-20290)：延遲初始化 ArrowColumnarBatchSerDe，因此它不會在 GetSplits 期間配置緩衝區 | 
| 向後移植 | [HIVE-20281](https://issues.apache.org/jira/browse/HIVE-20281)：SharedWorkOptimizer 失敗，並顯示「運算子快取內容與實際計畫不同」 | 
| 向後移植 | [HIVE-20277](https://issues.apache.org/jira/browse/HIVE-20277)：向量化：FILTER 不支援傳回 BOOLEAN 的 Case 表達式 | 
| 向後移植 | [HIVE-20267](https://issues.apache.org/jira/browse/HIVE-20267)：擴展 WebUI，以包含動態設定日誌層級的表單 | 
| 向後移植 | [HIVE-20263](https://issues.apache.org/jira/browse/HIVE-20263)：HiveReduceExpressionsWithStatsRule 變數中有拼寫錯誤 | 
| 向後移植 | [HIVE-20260](https://issues.apache.org/jira/browse/HIVE-20260)：在另一資料欄上的篩選條件變更資料列計數時，不應擴展資料欄的 NDV | 
| 向後移植 | [HIVE-20252](https://issues.apache.org/jira/browse/HIVE-20252)：Semijoin Reduction：如果小型資料表端在上游具有映射聯結，則可能無法偵測到半聯結分支引起的循環。 | 
| 向後移植 | [HIVE-20245](https://issues.apache.org/jira/browse/HIVE-20245)：向量化：修正 BETWEEN/IN 中的 NULL/錯誤結果問題 | 
| 向後移植 | [HIVE-20241](https://issues.apache.org/jira/browse/HIVE-20241)：支援 CTAS 陳述式中的分割規格 | 
| 向後移植 | [HIVE-20240](https://issues.apache.org/jira/browse/HIVE-20240)：半聯結減少：使用本機變數檢查外部資料表條件 | 
| 向後移植 | [HIVE-20226](https://issues.apache.org/jira/browse/HIVE-20226)：在請求 maxEvents 超過資料表的 max\$1rows 時，HMS getNextNotification 會擲出例外狀況 | 
| 向後移植 | [HIVE-20225](https://issues.apache.org/jira/browse/HIVE-20225)：SerDe 支援 Teradata 二進位格式 | 
| 向後移植 | [HIVE-20213](https://issues.apache.org/jira/browse/HIVE-20213)：將 Calcite 升級至 1.17.0 | 
| 向後移植 | [HIVE-20212](https://issues.apache.org/jira/browse/HIVE-20212)：http 模式下的 Hiveserver2 錯誤地發出指標 default.General.open\$1connections | 
| 向後移植 | [HIVE-20210](https://issues.apache.org/jira/browse/HIVE-20210)：在篩選非分割區資料欄且轉換最少時，Simple Fetch 優化工具應會導致 MapReduce | 
| 向後移植 | [HIVE-20209](https://issues.apache.org/jira/browse/HIVE-20209)：在 repl 傾印中，首次嘗試中繼存放區連線失敗 | 
| 向後移植 | [HIVE-20207](https://issues.apache.org/jira/browse/HIVE-20207)：向量化：修正 Filter/Compare 中的 NULL/錯誤結果問題 | 
| 向後移植 | [HIVE-20204](https://issues.apache.org/jira/browse/HIVE-20204)：在 IN 期間進行類型轉換 | 
| 向後移植 | [HIVE-20203](https://issues.apache.org/jira/browse/HIVE-20203)：Arrow SerDe 洩漏 DirectByteBuffer | 
| 向後移植 | [HIVE-20197](https://issues.apache.org/jira/browse/HIVE-20197)：向量化：新增 DECIMAL\$164 測試，新增日期/間隔/時間戳記演算法，並新增更多 GROUP BY 彙總 | 
| 向後移植 | [HIVE-20193](https://issues.apache.org/jira/browse/HIVE-20193)：cboInfo 不在解釋計畫 json 中 | 
| 向後移植 | [HIVE-20192](https://issues.apache.org/jira/browse/HIVE-20192)：HS2 與嵌入式中繼存放區搭配使用時，洩漏 JDOPersistenceManager 物件 | 
| 向後移植 | [HIVE-20183](https://issues.apache.org/jira/browse/HIVE-20183)：如果來源資料表包含空的儲存貯體，則從歸納資料表插入可能會導致資料遺失 | 
| 向後移植 | [HIVE-20177](https://issues.apache.org/jira/browse/HIVE-20177)：向量化：減少 GroupBy 串流模式下的 KeyWrapper 配置 | 
| 向後移植 | [HIVE-20174](https://issues.apache.org/jira/browse/HIVE-20174)：向量化：修正 GROUP BY 彙總函數中的 NULL/錯誤結果問題 | 
| 向後移植 | [HIVE-20172](https://issues.apache.org/jira/browse/HIVE-20172)：StatsUpdater 在嘗試連接至遠端中繼存放區時失敗，並顯示 GSS 例外狀況 | 
| 向後移植 | [HIVE-20153](https://issues.apache.org/jira/browse/HIVE-20153)：在 Hive 2\$1 中，Count 和 Sum UDF 耗用更多記憶體 | 
| 向後移植 | [HIVE-20152](https://issues.apache.org/jira/browse/HIVE-20152)：在 repl 傾印失敗時，重設資料庫狀態，以便可以重新命名資料表 | 
| 向後移植 | [HIVE-20149](https://issues.apache.org/jira/browse/HIVE-20149)：TestHiveCli 失敗/逾時 | 
| 向後移植 | [HIVE-20130](https://issues.apache.org/jira/browse/HIVE-20130)：更好地記錄資訊結構描述同步器 | 
| 向後移植 | [HIVE-20129](https://issues.apache.org/jira/browse/HIVE-20129)：還原至 orc 資料表的位置型結構描述演變 | 
| 向後移植 | [HIVE-20118](https://issues.apache.org/jira/browse/HIVE-20118)：SessionStateUserAuthenticator.getGroupNames | 
| 向後移植 | [HIVE-20116](https://issues.apache.org/jira/browse/HIVE-20116)：TezTask 正在使用父記錄器 | 
| 向後移植 | [HIVE-20115](https://issues.apache.org/jira/browse/HIVE-20115)：Acid 資料表不應使用頁尾掃描進行分析 | 
| 向後移植 | [HIVE-20103](https://issues.apache.org/jira/browse/HIVE-20103)：WM：僅彙總 DAG 計數器 (如果至少使用一個) | 
| 向後移植 | [HIVE-20101](https://issues.apache.org/jira/browse/HIVE-20101)：BloomKFilter：避免完全使用本機 byte[] 陣列 | 
| 向後移植 | [HIVE-20100](https://issues.apache.org/jira/browse/HIVE-20100)：OpTraits：如果偵測到不相符項目，Select Optraits 應停止 | 
| 向後移植 | [HIVE-20098](https://issues.apache.org/jira/browse/HIVE-20098)：統計資料：取得日期資料欄分割區統計資料時，出現 NPE | 
| 向後移植 | [HIVE-20095](https://issues.apache.org/jira/browse/HIVE-20095)：修正將運算推送至 jdbc 外部資料表的功能 | 
| 向後移植 | [HIVE-20093](https://issues.apache.org/jira/browse/HIVE-20093)：LlapOutputFomatService：使用 ArrowBuf 和 Netty 進行會計工作 | 
| 向後移植 | [HIVE-20090](https://issues.apache.org/jira/browse/HIVE-20090)：擴展建立半聯結減少篩選條件，以便探索新機會 | 
| 向後移植 | [HIVE-20088](https://issues.apache.org/jira/browse/HIVE-20088)：Beeline 組態位置路徑組合不正確 | 
| 向後移植 | [HIVE-20082](https://issues.apache.org/jira/browse/HIVE-20082)：HiveDecimal 至字串的轉換無法正確格式化十進位數字 | 
| 向後移植 | [HIVE-20069](https://issues.apache.org/jira/browse/HIVE-20069)：在 DPP 和半聯結優化的情況下，修正重新優化 | 
| 向後移植 | [HIVE-20051](https://issues.apache.org/jira/browse/HIVE-20051)：略過暫時資料表的授權 | 
| 向後移植 | [HIVE-20044](https://issues.apache.org/jira/browse/HIVE-20044)：Arrow Serde 應填補字元值並正確處理空字串 | 
| 向後移植 | [HIVE-20028](https://issues.apache.org/jira/browse/HIVE-20028)：未正確使用中繼存放區用戶端快取設定 | 
| 向後移植 | [HIVE-20025](https://issues.apache.org/jira/browse/HIVE-20025)：清除由 HiveProtoLoggingHook 建立的事件檔案 | 
| 向後移植 | [HIVE-20020](https://issues.apache.org/jira/browse/HIVE-20020)：Hive contrib jar 不應在 lib 中 | 
| 向後移植 | [HIVE-20013](https://issues.apache.org/jira/browse/HIVE-20013)：為 to\$1date 函數新增隱式轉換為日期類型 | 
| 向後移植 | [HIVE-20011](https://issues.apache.org/jira/browse/HIVE-20011)：從 proto 日誌記錄勾點中的附加模式離開 | 
| 向後移植 | [HIVE-20005](https://issues.apache.org/jira/browse/HIVE-20005)：acid\$1table\$1stats、acid\$1no\$1buckets 等 – 分支的查詢結果變更 | 
| 向後移植 | [HIVE-20004](https://issues.apache.org/jira/browse/HIVE-20004)：ConvertDecimal64ToDecimal 使用的錯誤比例導致結果不正確 | 
| 向後移植 | [HIVE-19995](https://issues.apache.org/jira/browse/HIVE-19995)：acid 資料表的彙總資料列流量 | 
| 向後移植 | [HIVE-19993](https://issues.apache.org/jira/browse/HIVE-19993)：無法使用也顯示為資料欄名稱的資料表別名 | 
| 向後移植 | [HIVE-19992](https://issues.apache.org/jira/browse/HIVE-19992)：向量化：HIVE-19951 的後續 --> 向 SchemaEvolution.isOnlyImplicitConversion 新增呼叫，以僅當資料類型轉換不是隱式時停用 ORC 的編碼 LLAP I/O | 
| 向後移植 | [HIVE-19989](https://issues.apache.org/jira/browse/HIVE-19989)：中繼存放區對 HADOOP2 指標使用錯誤的應用程式名稱 | 
| 向後移植 | [HIVE-19981](https://issues.apache.org/jira/browse/HIVE-19981)：由 HiveStrictManagedMigration 公用程式轉換為外部資料表的受管資料表，應設定為在捨棄資料表時刪除資料 | 
| 向後移植 | [HIVE-19967](https://issues.apache.org/jira/browse/HIVE-19967)：SMB 聯結：需要適用於 PTFOperator ala GBY Op 的 Optraits | 
| 向後移植 | [HIVE-19935](https://issues.apache.org/jira/browse/HIVE-19935)：Hive WM 工作階段已終止：無法更新 LLAP 任務計數 | 
| 向後移植 | [HIVE-19924](https://issues.apache.org/jira/browse/HIVE-19924)：標記 Repl Load 執行的 distcp 作業 | 
| 向後移植 | [HIVE-19891](https://issues.apache.org/jira/browse/HIVE-19891)：使用自訂分割區目錄插入外部資料表，可能會導致資料遺失 | 
| 向後移植 | [HIVE-19850](https://issues.apache.org/jira/browse/HIVE-19850)：Tez 中的動態分割區剔除導致「找不到資料表掃描的工作」錯誤 | 
| 向後移植 | [HIVE-19806](https://issues.apache.org/jira/browse/HIVE-19806)：對 qtests 輸出進行排序，以避免測試結果不穩定 | 
| 向後移植 | [HIVE-19770](https://issues.apache.org/jira/browse/HIVE-19770)：支援 CBO，用於 select 中具有多個相同資料欄的查詢 | 
| 向後移植 | [HIVE-19769](https://issues.apache.org/jira/browse/HIVE-19769)：為資料庫和資料表名稱建立專用的物件 | 
| 向後移植 | [HIVE-19765](https://issues.apache.org/jira/browse/HIVE-19765)：向 BlobstoreCliDriver 新增 Parquet 特定的測試 | 
| 向後移植 | [HIVE-19759](https://issues.apache.org/jira/browse/HIVE-19759)：不穩定的測試：TestRpc\$1testServerPort | 
| 向後移植 | [HIVE-19711](https://issues.apache.org/jira/browse/HIVE-19711)：重構 Hive Schema Tool | 
| 向後移植 | [HIVE-19701](https://issues.apache.org/jira/browse/HIVE-19701)：getDelegationTokenFromMetaStore 無需同步 | 
| 向後移植 | [HIVE-19694](https://issues.apache.org/jira/browse/HIVE-19694)：若要建立具體化視觀表陳述式，應在執行 MV 的 SQL 陳述式之前檢查 MV 名稱是否衝突。 | 
| 向後移植 | [HIVE-19674](https://issues.apache.org/jira/browse/HIVE-19674)：Group by 十進位常數下推至 Druid 資料表 | 
| 向後移植 | [HIVE-19668](https://issues.apache.org/jira/browse/HIVE-19668)：重複的 org.antlr.runtime.CommonToken 和重複的字串浪費了超過 30% 的堆積 | 
| 向後移植 | [HIVE-19663](https://issues.apache.org/jira/browse/HIVE-19663)：重構 LAP IO 報告產生 | 
| 向後移植 | [HIVE-19661](https://issues.apache.org/jira/browse/HIVE-20829)：切換 Hive UDF，以使用 Re2J regex 引擎 | 
| 向後移植 | [HIVE-19628](https://issues.apache.org/jira/browse/HIVE-19628)：LLAP testSigning 中可能出現 NPE | 
| 向後移植 | [HIVE-19568](https://issues.apache.org/jira/browse/HIVE-19568)：主動/被動 HS2 HA：禁止直接連接至被動 HS2 執行個體 | 
| 向後移植 | [HIVE-19564](https://issues.apache.org/jira/browse/HIVE-19564)：向量化：修正 Arithmetic 中的 NULL/錯誤結果問題 | 
| 向後移植 | [HIVE-19552](https://issues.apache.org/jira/browse/HIVE-19552)：啟用 TestMiniDruidKafkaCliDriver\$1druidkafkamini\$1basic.q | 
| 向後移植 | [HIVE-19432](https://issues.apache.org/jira/browse/HIVE-19432)：如果 hive 的資料庫和資料表過多，則 GetTablesOperation 過慢 | 
| 向後移植 | [HIVE-19360](https://issues.apache.org/jira/browse/HIVE-19360)：CBO：將 "optimizedSQL" 新增至 QueryPlan 物件 | 
| 向後移植 | [HIVE-19326](https://issues.apache.org/jira/browse/HIVE-19326)：統計資料自動收集：UNION 查詢期間彙總不正確 | 
| 向後移植 | [HIVE-19313](https://issues.apache.org/jira/browse/HIVE-19313)：TestJdbcWithDBTokenStoreNoDoAs 測試失敗 | 
| 向後移植 | [HIVE-19285](https://issues.apache.org/jira/browse/HIVE-19285)：將日誌新增至 MetaDataOperation 的子類別 | 
| 向後移植 | [HIVE-19235](https://issues.apache.org/jira/browse/HIVE-19235)：更新 Minimr 測試的 golden 檔案 | 
| 向後移植 | [HIVE-19104](https://issues.apache.org/jira/browse/HIVE-19104)：在測試 MetaStore 開始並重試時，執行個體應是獨立的 | 
| 向後移植 | [HIVE-18986](https://issues.apache.org/jira/browse/HIVE-18986)：如果資料表包含大量資料欄，資料表重新命名會在 dataNucleus 中執行 java.lang.StackOverflowError | 
| 向後移植 | [HIVE-18920](https://issues.apache.org/jira/browse/HIVE-18920)：CBO：在初次查詢之前初始化 Janino 提供程式 | 
| 向後移植 | [HIVE-18873](https://issues.apache.org/jira/browse/HIVE-18873)：在 HiveInputFormat 處以無提示的方式略過 MR 的述詞下推，可能導致儲存處理常式產生錯誤結果 | 
| 向後移植 | [HIVE-18871](https://issues.apache.org/jira/browse/HIVE-18871)：由於將 hive.aux.jars.path 設定為 hdfs://，導致 hive on tez 執行錯誤 | 
| 向後移植 | [HIVE-18725](https://issues.apache.org/jira/browse/HIVE-18725)：如果存在錯誤的資料欄參考，則改進子查詢的錯誤處理 | 
| 向後移植 | [HIVE-18696](https://issues.apache.org/jira/browse/HIVE-18696)：在 HiveMetaStore.add\$1partitions\$1core 方法中可能無法正確清除分割區資料夾 (如果存在) | 
| 向後移植 | [HIVE-18453](https://issues.apache.org/jira/browse/HIVE-18453)：ACID：新增 "CREATE TRANSACTIONAL TABLE" 語法，以統一 ACID ORC 和 Parquet 支援 | 
| 向後移植 | [HIVE-18201](https://issues.apache.org/jira/browse/HIVE-18201)：對 sq\$1count\$1che 停用 XPROD\$1EDGE | 
| 向後移植 | [HIVE-18140](https://issues.apache.org/jira/browse/HIVE-18140)：在基本統計資料混合大小寫中，分割資料表統計資料可能會出錯 | 
| 向後移植 | [HIVE-17921](https://issues.apache.org/jira/browse/HIVE-17921)：在 LLAP 中使用 struct 彙總會產生錯誤的結果 | 
| 向後移植 | [HIVE-17896](https://issues.apache.org/jira/browse/HIVE-17896)：TopNKey：建立獨立的可向量化的 TopNKey 運算子 | 
| 向後移植 | [HIVE-17840](https://issues.apache.org/jira/browse/HIVE-17840)：如果 transactionalListeners.notifyEvent 失敗，HiveMetaStore 會吃掉例外狀況 | 
| 向後移植 | [HIVE-17043](https://issues.apache.org/jira/browse/HIVE-17043)：如果稍後不參考，會從 group by 金鑰中移除非唯一資料欄 | 
| 向後移植 | [HIVE-17040](https://issues.apache.org/jira/browse/HIVE-17040)：在具有 FK 關係的情況下消除聯結 | 
| 向後移植 | [HIVE-16839](https://issues.apache.org/jira/browse/HIVE-16839)：在同時更改相同分割區時，對 openTransaction/commitTransaction 的呼叫會失衡 | 
| 向後移植 | [HIVE-16100](https://issues.apache.org/jira/browse/HIVE-16100)：動態排序分割區優化工具遺失同級運算子 | 
| 向後移植 | [HIVE-15956](https://issues.apache.org/jira/browse/HIVE-15956)：捨棄大量分割區時，出現 StackOverflowError | 
| 向後移植 | [HIVE-15177](https://issues.apache.org/jira/browse/HIVE-15177)：在 kerberos 身分驗證類型設定為 fromSubject 且主體包含 \$1HOST 時，使用 hive 進行身分驗證失敗 | 
| 向後移植 | [HIVE-14898](https://issues.apache.org/jira/browse/HIVE-14898)：對於空授權標頭錯誤，HS2 不應記錄呼叫堆疊 | 
| 向後移植 | [HIVE-14493](https://issues.apache.org/jira/browse/HIVE-14493)：具體化視觀表的分割支援 | 
| 向後移植 | [HIVE-14431](https://issues.apache.org/jira/browse/HIVE-14431)：將 COALESCE 辨識為 CASE | 
| 向後移植 | [HIVE-13457](https://issues.apache.org/jira/browse/HIVE-13457)：建立 HS2 REST API 端點以監控資訊 | 
| 向後移植 | [HIVE-12342](https://issues.apache.org/jira/browse/HIVE-12342)：將 hive.optimize.index.filter 的預設值設定為 true | 
| 向後移植 | [HIVE-10296](https://issues.apache.org/jira/browse/HIVE-10296)：當 hive 在中繼存放區上執行多聯結查詢時，觀察到轉換例外狀況 | 
| 向後移植 | [HIVE-6980](https://issues.apache.org/jira/browse/HIVE-6980)：使用 direct sql 捨棄資料表 | 

## Amazon EMR 6.6.0 – Hive 組態變更
<a name="emr-Hive-660-configs"></a>
+ 作為 OSS 變更 [HIVE-20703](https://issues.apache.org/jira/browse/HIVE-20703) 的一部分，用於對動態分割區進行排序的屬性 `hive.optimize.sort.dynamic.partition` 已取代為 `hive.optimize.sort.dynamic.partition.threshold`。

  `hive.optimize.sort.dynamic.partition.threshold` 組態具有下列可能值：    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/emr/latest/ReleaseGuide/Hive-release-history-660.html)

## Amazon EMR 6.6.0 – Hive 已知問題
<a name="emr-Hive-660-issues"></a>
+ 如果使用視窗化函數對與聯結相同的資料欄進行查詢，則可能會導致如 [HIVE-25278](https://issues.apache.org/jira/browse/HIVE-25278) 中報告的轉換無效問題，並導致查詢結果不正確或查詢失敗。作為解決方法，您可以在查詢層級為此類查詢停用 CBO。如需詳細資訊，請聯絡 AWS 支援。
+  Amazon EMR 6.6.0 包含 Hive 軟體版本 3.1.2。Hive 3.1.2 引入了一項功能，如果文字檔案包含頁首和頁尾時，則可分割文字檔案 ([HIVE-21924](https://issues.apache.org/jira/browse/HIVE-21924))。Apache Tez App Master 會讀取您的每個檔案，以確定資料範圍內的位移點。如果您的查詢讀取大量小型文字檔案，這些行為結合起來可能會對效能產生負面影響。解決方法是，使用 `CombineHiveInputFormat` 並透過設定下列屬性調校最大分割大小：

  ```
  SET hive.tez.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;
  SET mapreduce.input.fileinputformat.split.maxsize=16777216;
  ```
+ 在 Amazon EMR 6.6.0 至 6.9.x 中，具有動態分割區和 ORDER BY 或 SORT BY 子句的 INSERT 查詢將始終具有兩個縮減器。此問題是因 OSS 變更 [HIVE-20703](https://issues.apache.org/jira/browse/HIVE-20703) 所造成，此變更會將動態排序分割區優化置於成本型決策下。如果您的工作負載不需要對動態分割區進行排序，建議將 `hive.optimize.sort.dynamic.partition.threshold` 屬性設定為 `-1`，以停用新功能並取得計算正確的縮減器數量。此問題已作為 [HIVE-22269](https://issues.apache.org/jira/browse/HIVE-22269) 的一部分在 OSS Hive 中修正，並已在 Amazon EMR 6.10.0 中修正。