

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Presto
<a name="emr-presto"></a>

**重要**  
Trino の以前のバージョンである Presto は、Amazon EMR で引き続き使用できます。ただし今後は、Amazon EMR で Trino を使用することを強くお勧めします。また、Trino と Presto を同じクラスターで同時に実行できません。詳細については、「[Trino](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-trino.html)」を参照してください。

[Presto](https://aws.amazon.com/big-data/what-is-presto/) は、複数のソースからの大量のデータセットの対話型分析クエリ用に設計された高速の SQL クエリエンジンです。詳細については、[Presto のウェブサイト](https://prestodb.io/)を参照してください。Presto は、Amazon EMR リリース 5.0.0 以降に含まれています。以前のリリースには、サンドボックスアプリケーションとして Presto が含まれています。詳細については、「[Amazon EMR 4.x リリースバージョン](emr-release-4x.md)」を参照してください。Amazon EMR リリースバージョン 6.1.0 以降では、Presto に加えて [Trino](https://trino.io/) がサポートされています。詳細については、「[PrestoDB のインストール](emr-presto-considerations.md#emr-prestodb-prestosql)」を参照してください。

次の表は、Amazon EMR 7.x シリーズの最新リリースに含まれている Presto のバージョンと、Amazon EMR で Presto と共にインストールされるコンポーネントを示しています。

このリリースで Presto と共にインストールされるコンポーネントのバージョンについては、[「リリース 7.12.0 コンポーネントバージョン](emr-7120-release.md)」を参照してください。


**emr-7.12.0 の Presto バージョン情報**  

| Amazon EMR リリースラベル | Presto バージョン | Presto でインストールされるコンポーネント | 
| --- | --- | --- | 
| emr-7.12.0 | Presto 0.287-amzn-6 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-hdfs-zkfc, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 

次の表は、Amazon EMR 6.x シリーズの最新リリースに含まれている Presto のバージョンと、Amazon EMR で Presto と共にインストールされるコンポーネントを示しています。

このリリースで Presto と共にインストールされるコンポーネントのバージョンについては、「[リリース 6.15.0 コンポーネントバージョン](emr-6150-release.md)」を参照してください。


**emr-6.15.0 の Presto バージョン情報**  

| Amazon EMR リリースラベル | Presto バージョン | Presto でインストールされるコンポーネント | 
| --- | --- | --- | 
| emr-6.15.0 | Presto 0.283-amzn-0 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 

次の表は、Amazon EMR 5.x シリーズの最新リリースに含まれている Presto のバージョンと、Amazon EMR で Presto と共にインストールされるコンポーネントを示しています。

このリリースで Presto と共にインストールされるコンポーネントのバージョンについては、「[Release 5.36.2 Component Versions](emr-5362-release.md)」を参照してください。


**emr-5.36.2 の Presto バージョン情報**  

| Amazon EMR リリースラベル | Presto バージョン | Presto でインストールされるコンポーネント | 
| --- | --- | --- | 
| emr-5.36.2 | Presto 0.267-amzn-1 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 

**Topics**
+ [Glue データカタログでの Presto AWS の使用](emr-presto-glue.md)
+ [S3 Select Pushdown と Presto を使用してパフォーマンスを向上させる](emr-presto-s3select.md)
+ [データベースコネクタの追加](presto-adding-db-connectors.md)
+ [Amazon EMR での SSL/TLS の使用と Presto による LDAPS の設定](presto-ssl.md)
+ [Presto 厳格モードを有効にする](presto-strict-mode.md)
+ [Presto でのスポットインスタンス損失の処理](presto-spot-loss.md)
+ [グレースフルな廃止による Presto Auto Scaling の使用](presto-graceful-autoscale.md)
+ [Amazon EMR での Presto に関する考慮事項](emr-presto-considerations.md)
+ [Presto リリース履歴](Presto-release-history.md)

# Glue データカタログでの Presto AWS の使用
<a name="emr-presto-glue"></a>

Amazon EMR リリースバージョン 5.10.0 以降では、Presto のデフォルトの Hive メタストアとして AWS Glue データカタログを指定できます。永続的なメタストア、またはさまざまなクラスター、サービス、アプリケーション、あるいは AWS アカウントで共有されるメタストアが必要である場合は、この設定をお勧めします。

AWS Glue はフルマネージド型の抽出、変換、ロード (ETL) サービスです。シンプルで費用対効果の高い方法で、データを分類し、クリーンアップし、強化し、さまざまなデータストア間で確実に移動できます。 AWS Glue Data Catalog は、Amazon EMR、Amazon RDS、Amazon Redshift、Redshift Spectrum、Athena、および Apache Hive メタストアと互換性のあるすべてのアプリケーションと統合して、さまざまなデータソースとデータ形式にわたって統合されたメタデータリポジトリを提供します。 AWS Glue クローラは、Amazon S3 のソースデータからスキーマを自動的に推測し、関連するメタデータをデータカタログに保存できます。データカタログの詳細については、「 [Glue デベロッパーガイド AWS 」の「 Glue データカタログ](https://docs.aws.amazon.com/glue/latest/dg/populate-data-catalog.html)の入力」を参照してください。 *AWS *

Glue AWS には個別の料金が適用されます。データカタログにメタデータを保存してアクセスするための月額料金、Glue ETL AWS ジョブとクローラランタイムに対して 1 分あたりに課金される時間料金、プロビジョニングされた開発エンドポイントごとに 1 分あたりに課金される時間料金があります。Data Catalog では、最大 100 万個までのオブジェクトを無料で保存できます。100 万を超えるオブジェクトを保存した場合は、100,000 オブジェクトごとに 1 USD が課金されます。Data Catalog 内のオブジェクトは、テーブル、パーティション、またはデータベースです。詳細については、「[Glue 料金表](https://aws.amazon.com/glue/pricing)」を参照してください。

**重要**  
2017 年 8 月 14 日より前に Amazon Athena または Amazon Redshift Spectrum を使用してテーブルを作成した場合、データベースとテーブルは AWS Glue データカタログとは別の Athena 管理カタログに保存されます。Amazon EMR をこれらのテーブルと統合するには、 AWS Glue データカタログにアップグレードする必要があります。詳細については、[「Amazon Athena ユーザーガイド」の「 AWS Glue データカタログへのアップグレード](https://docs.aws.amazon.com/athena/latest/ug/glue-upgrade.html)」を参照してください。 *Amazon Athena *

## AWS Glue データカタログをメタストアとして指定する
<a name="emr-presto-glue-configure"></a>

、、または Amazon EMR API を使用して AWS マネジメントコンソール AWS CLI、 AWS Glue データカタログをメタストアとして指定できます。CLI または API を使用する場合は、Presto の設定分類を使用してデータカタログを指定します。さらに、Amazon EMR 5.16.0 以降では、設定分類を使用して別の でデータカタログを指定できます AWS アカウント。コンソールを使用する場合は、**[Advanced Options]** (詳細オプション) または **[Quick Options]** (クイックオプション) を使用して、Data Catalog を指定できます。

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

**新しいコンソールで AWS Glue データカタログを Hive メタストアとして指定するには**

1. にサインインし AWS マネジメントコンソール、[https://console.aws.amazon.com/emr](https://console.aws.amazon.com/emr) で Amazon EMR コンソールを開きます。

1. 左側のナビゲーションペインの **[EMR on EC2]** で、**[クラスター]** を選択し、**[クラスターの作成]** を選択します

1. **[アプリケーションバンドル]** で **[Presto]** を選択します。

1. **[AWS Glue Data Catalog 設定]** で **[Presto テーブルメタデータに使用]** チェックボックスをオンにします。

1. クラスターに適用するその他のオプションを選択します。

1. クラスターを起動するには、**[クラスターの作成]** を選択します。

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

**を使用して AWS Glue データカタログをデフォルトの Hive メタストアとして指定するには AWS CLI**

クラスターの作成時に以下の設定分類を指定する方法の例については、「[アプリケーションの設定](emr-configure-apps.md)」を参照してください。

**Amazon EMR 5.16.0 以降**
+ 以下の JSON の例に示すように、`hive.metastore` プロパティを `glue` に設定します。

  ```
  [
    {
      "Classification": "presto-connector-hive",
      "Properties": {
        "hive.metastore": "glue"
      }
    }
  ]
  ```

  別の でデータカタログを指定するには AWS アカウント、次の JSON の例に示すように `hive.metastore.glue.catalogid`プロパティを追加します。`acct-id` は、データカタログの AWS アカウントに置き換えます。Amazon EMR バージョン 5.15.0 以前では、別の AWS アカウント のデータカタログは使用できません。

  ```
  [
    {
      "Classification": "presto-connector-hive",
      "Properties": {
        "hive.metastore": "glue",
        "hive.metastore.glue.catalogid": "acct-id"
      }
    }
  ]
  ```

  **Amazon EMR 5.10.0 ～ 5.15.0**

  以下の JSON の例に示すように、`hive.metastore.glue.datacatalog.enabled` プロパティを `true` に設定します。

  ```
  [
    {
      "Classification": "presto-connector-hive",
      "Properties": {
        "hive.metastore.glue.datacatalog.enabled": "true"
      }
    }
  ]
  ```

  **Amazon EMR 6.1.0 以降で PrestoSQL (Trino) を使用**

  EMR バージョン 6.1.0 以降、PrestoSQL は Glue もデフォルトの Hive メタストアとしてサポートしています。以下の JSON の例に示されているように、`prestosql-connector-hive` 設定分類を使用し、`hive.metastore` プロパティを `glue` に設定します。

  Amazon EMR バージョン 6.4.0 以降では、PrestoSQL ではなく、新しい名称の Trino を使用します。Trino を使用する場合、以下の設定分類で `prestosql-connector-hive` を `trino-connector-hive` に置き換えてください。

  ```
  [
    {
      "Classification": "prestosql-connector-hive",
      "Properties": {
        "hive.metastore": "glue"
      }
    }
  ]
  ```

長時間稼働クラスターでメタストアを切り替えるには、マスターノードに接続して `/etc/presto/conf/catalog/hive.properties` ファイルのプロパティ値を直接編集し、Presto サーバー (`sudo restart presto-server`) を再起動することにより、リリースバージョンに最適な値を手動で設定できます。この方法を Amazon EMR 5.15.0 以前のバージョンで使用する場合は、`hive.table-statistics-enabled` が `false` に設定されていることを確認します。リリースバージョン 5.16.0 以降を使用する場合、この設定は必要ありません。ただし、テーブルとパーティションの統計はサポートされません。

------

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

クラスターの EC2 インスタンスプロファイルには、 Glue アクションの AWS IAM アクセス許可が必要です。さらに、 Glue Data Catalog オブジェクト AWS の暗号化を有効にする場合は、暗号化 AWS KMS key に使用される の暗号化、復号、生成もロールに許可する必要があります。

### Glue AWS アクションのアクセス許可
<a name="emr-hive-glue-permissions-actions"></a>

Amazon EMR の デフォルトの EC2 インスタンスプロファイルを使用する場合、アクションは必要ありません。にアタッチされている `AmazonElasticMapReduceforEC2Role`マネージドポリシーは、必要なすべての Glue AWS アクション`EMR_EC2_DefaultRole`を許可します。ただし、カスタム EC2 インスタンスプロファイルとアクセス許可を指定する場合は、適切な AWS Glue アクションを設定する必要があります。開始点として `AmazonElasticMapReduceforEC2Role` 管理ポリシーを使用します。詳細については、「*Amazon EMR 管理ガイド*」の「[クラスター EC2 インスタンスのサービスロール (EC2 インスタンスプロファイル)](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-iam-role-for-ec2.html)」を参照してください。

### AWS Glue Data Catalog を暗号化および復号するためのアクセス許可
<a name="emr-hive-glue-permissions-encrypt"></a>

インスタンスプロファイルには、キーを使用してデータを暗号化および復号するためのアクセス許可が必要です。以下のステートメントが両方とも適用される場合、これらのアクセス許可を設定する必要は*ありません*。
+ Glue AWS のマネージドキーを使用して、 AWS Glue Data Catalog オブジェクトの暗号化を有効にします。
+  AWS Glue データカタログ AWS アカウント と同じ にあるクラスターを使用します。

それ以外の場合は、EC2 インスタンスプロファイルにアタッチされたアクセス許可ポリシーに次のステートメントを追加する必要があります。

 AWS Glue データカタログの暗号化の詳細については、*AWS 「 Glue デベロッパーガイド*[」の「データカタログの暗号化](https://docs.aws.amazon.com/glue/latest/dg/encrypt-glue-data-catalog.html)」を参照してください。

### リソースベースのアイデンティティアクセス許可
<a name="emr-hive-glue-permissions-resource"></a>

Amazon EMR で AWS 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 アカウント ID AWS とは異なる場合があります。これにより、さまざまなアカウントで EMR クラスターからアクセスできます。異なるアカウントから、複数のプリンシパルを指定できます。

## AWS Glue データカタログを使用する際の考慮事項
<a name="emr-presto-glue-knownissues"></a>

Presto でメタストアとして AWS Glue データカタログを使用する場合は、次の項目を考慮してください。
+ Glue AWS 内からのテーブルの名前変更はサポートされていません。
+ `LOCATION` を指定せずに Hive テーブルを作成すると、テーブルデータは、`hive.metastore.warehouse.dir` プロパティによって指定された場所に保管されます。デフォルトでは、これは HDFS 内の場所です。別のクラスターがテーブルにアクセスする必要がある場合、テーブルを作成したクラスターに対する適切なアクセス許可がない限り、処理に失敗します。さらに、HDFS ストレージは一時的であるため、クラスターが終了すると、テーブルデータは失われ、テーブルを再作成する必要があります。Glue を使用して Hive テーブルを作成するときは、Amazon S3 AWS `LOCATION`で を指定することをお勧めします。または、`hive-site` 設定分類を使用して、`hive.metastore.warehouse.dir` の Amazon S3 で場所を指定できます。これは、すべての Hive テーブルに適用されます。テーブルが HDFS ロケーションで作成され、テーブルを作成したクラスターがまだ実行されている場合は、 Glue 内からテーブルロケーションを Amazon S3 AWS に更新できます。詳細については、「 [AWS Glue デベロッパーガイド」の「 Glue コンソールでのテーブルの操作](https://docs.aws.amazon.com/glue/latest/dg/console-tables.html)」を参照してください。 *AWS *
+ 引用符とアポストロフィを含むパーティション値はサポートされていません(例: `PARTITION (owner="Doe's").`)。
+ [列統計](https://cwiki.apache.org/confluence/display/Hive/StatsDev#StatsDev-ColumnStatistics)は、emr-5.31.0 以降でサポートされています。
+ [Hive 認可](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Authorization)の使用はサポートされていません。代替策として、[AWS Glue リソースベースのポリシー](https://docs.aws.amazon.com/glue/latest/dg/glue-resource-policies.html)を使用することを検討してください。詳細については、「Use [Resource-Based Policies for Amazon EMR Access to AWS Glue Data Catalog](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-iam-roles-glue.html)」を参照してください。

# S3 Select Pushdown と Presto を使用してパフォーマンスを向上させる
<a name="emr-presto-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 以降では、Amazon EMR での Presto を使用した [S3 select](https://aws.amazon.com/blogs/aws/s3-glacier-select/) プッシュダウンを使用できます。この機能により、Presto から Amazon S3 に (`SELECT` などの) 射影演算と (`WHERE` などの) 述語演算の計算処理を「プッシュダウン」できます。これにより、一部のアプリケーションではクエリで Amazon S3から必要なデータだけを取得してパフォーマンスを向上させ、Amazon EMR と Amazon S3 間で転送されるデータの量を減らすことができます。

## S3 Select Pushdown が使用するアプリケーションに適しているかどうかを確認する
<a name="emr-presto-s3select-apps"></a>

S3 Select Pushdown が使用するアプリケーションに適しているかどうかを確認するために、S3 Select Pushdown を使用した場合と使用しない場合のアプリケーションのベンチマークを行うことをお勧めします。

アプリケーションが S3 Select を使用する候補となるかどうかを判断するには、次のガイドラインを使用します。
+ クエリは元のデータセットの半分以上を除外する。
+ クエリのフィルター述語では、Presto と S3 Select がサポートするデータ型を持つ列が使用されます。S3 Select Pushdown では、タイムスタンプデータ型、実データ型、および倍精度浮動小数点データ型はサポートされません。数値データには小数データ型を使用することをお勧めします。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-presto-s3select-considerations"></a>
+ CSV 形式で保存されたオブジェクトのみがサポートされます。オブジェクトは解凍するか、必要に応じて gzip または bzip2 で圧縮できます。
+ `AllowQuotedRecordDelimiters` プロパティはサポートされていません。このプロパティを指定した場合、クエリは失敗します。
+ お客様が用意した暗号化キーを使用した Amazon S3 サーバー側の暗号化 (SSE-C) とクライアント側の暗号化はサポートされていません。
+ S3 Select Pushdown は、ORC や Parquet などの列または圧縮ファイル形式には適していません。
+ Amazon S3 Select は、Presto および Trino のクロスリージョンクエリをサポートしていません。

## PrestoDB または Trino で S3 Select Pushdown を有効にする
<a name="emr-presto-s3select-specify"></a>

Amazon EMR で PrestoDB の S3 Select Pushdown を有効にするには、以下の例に示されているように、`presto-connector-hive` 設定分類を使用して `hive.s3select-pushdown.enabled` を `true` に設定します。詳細については、「[アプリケーションの設定](emr-configure-apps.md)」を参照してください。hive.s3select-pushdown.max-connections 値も設定する必要があります。ほとんどのアプリケーションでは、デフォルト設定の `500` で十分です。詳細については、以下の [hive.s3select-pushdown.max-connections の理解と調整](#emr-presto-s3select-max) を参照してください。

EMR バージョン 6.1.0 - 6.3.0 での PrestoSQL の場合、以下の例で `presto-connector-hive` を `prestosql-connector-hive` に置き換えます。

Amazon EMR バージョン 6.4.0 以降では、PrestoSQL ではなく、新しい名称の Trino を使用します。Trino を使用する場合、以下の例の `presto-connector-hive` を `trino-connector-hive` に置き換えます

```
[
    {
        "classification": "presto-connector-hive",
        "properties": {
            "hive.s3select-pushdown.enabled": "true",
            "hive.s3select-pushdown.max-connections": "500"
        }
    }
]
```

### hive.s3select-pushdown.max-connections の理解と調整
<a name="emr-presto-s3select-max"></a>

デフォルトでは、Presto はファイルシステムとして EMRFS を使用します。`emrfs-site` 設定分類の設定 `fs.s3.maxConnections` により、Presto の EMRFS を使用した Amazon S3 へのクライアント接続の最大許容数が指定されます。デフォルトでは 500 です。述語演算のために Amazon S3 にアクセスすると、S3 Select Pushdown は EMRFS をバイパスします。この場合、`hive.s3select-pushdown.max-connections` の値によってワーカーノードからのオペレーションに使用可能なクライアント接続の最大数が決まります。ただし、(GET オペレーションなどの) プッシュダウンされていない Presto から Amazon S3 へのリクエストは、引き続き `fs.s3.maxConnections` の値に従います。

アプリケーションでエラー「Timeout waiting for connection from pool」が発生する場合は、`hive.s3select-pushdown.max-connections` と `fs.s3.maxConnections` 両方の値を増やします。

# データベースコネクタの追加
<a name="presto-adding-db-connectors"></a>

クラスターの作成時に設定分類を使用して JDBC コネクターのプロパティを設定できます。設定分類は `presto-connector` で始まります (例: `presto-connector-postgresql`)。Amazon EMR リリースバージョンによって使用可能な設定分類は異なります。最新のリリースバージョンで使用可能な設定分類については、Amazon EMR 5.36.2 の「[5.36.2 設定分類](emr-5362-release.md#emr-5362-class)」を参照してください。Amazon EMR の別のバージョンを使用している場合は、「[Amazon EMR 5.x リリースバージョン](emr-release-5x.md)」の設定分類を参照してください。各コネクターで設定できるプロパティの詳細については、[https://prestodb.io/docs/current/connector.html](https://prestodb.io/docs/current/connector.html) を参照してください。

**Example PostgreSQL JDBC コネクターでのクラスターの設定**  
PostgreSQL コネクターがインストールおよび設定されたクラスターを起動するには、(`myConfig.json` などの) 設定分類を指定する、以下の内容が含まれた JSON ファイルを作成してからローカルに保存します。  
Presto ドキュメントの「[PostgreSQL Connector](https://prestodb.io/docs/current/connector/postgresql.html)」トピックに示されているように、必要に応じてセットアップの接続プロパティを置き換えます。  

```
[
  {
    "Classification": "presto-connector-postgresql",
    "Properties": {
      "connection-url": "jdbc:postgresql://example.net:5432/database",
      "connection-user": "MYUSER",
      "connection-password": "MYPASS"
    },
    "Configurations": []
  }
]
```
クラスターを作成するときは、以下の例に示すように `--configurations` オプションを使用して JSON ファイルへのパスを参照します。`myConfig.json` は、コマンドを実行したのと同じディレクトリにあります。  

```
aws emr create-cluster --name PrestoConnector --release-label emr-5.36.2 --instance-type m5.xlarge \
--instance-count 2 --applications Name=Hadoop Name=Hive Name=Pig Name=Presto \
--use-default-roles --ec2-attributes KeyName=myKey \
--log-uri s3://amzn-s3-demo-bucket/logs --enable-debugging \
--configurations file://myConfig.json
```

# Amazon EMR での SSL/TLS の使用と Presto による LDAPS の設定
<a name="presto-ssl"></a>

Amazon EMR リリースバージョン 5.6.0 以降では、Presto ノード間の[セキュアな内部通信](https://prestodb.io/docs/current/security/internal-communication.html)のために SSL/TLS を有効にできます。これを行うには、転送時の暗号化のセキュリティ設定を指定します。詳細については、「*Amazon EMR 管理ガイド*」の「[暗号化オプション](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-data-encryption-options.html)」および「[セキュリティ設定を使用してクラスターセキュリティをセットアップする](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-security-configurations.html)」を参照してください。

セキュリティ設定を転送時の暗号化に使用すると、Amazon EMR は Presto に対して以下を実行します。
+ 転送時の暗号化に指定した暗号化アーティファクトまたは証明書を、Presto クラスター全体に分散します。詳細については、「[伝送中のデータの暗号化のための証明書を提供する](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-encryption-enable.html#emr-encryption-certificates)」を参照してください。
+ `presto-config` 設定分類を使用して、次のプロパティを設定します。これは Presto の `config.properties` ファイルに対応します。
  + すべてのノードで `http-server.http.enabled` を `false` に設定します。これにより、HTTP を無効にして HTTPS を使用します。これには、伝送中の暗号化のセキュリティ構成を設定するときに、パブリック DNS とプライベート DNS で動作する証明書を提供する必要があります。これを行う方法の 1 つは、複数のドメインをサポートする SAN (サブジェクトの別名) 証明書を使用することです。
  + `http-server.https.*` 値を設定します。設定の詳細については、Presto ドキュメントの「[LDAP Authentication](https://prestodb.io/docs/current/security/ldap.html)」を参照してください。

さらに、Amazon EMR リリースバージョン 5.10.0 以降では、HTTPS を使用した Presto コーディネーターへのクライアント接続に [LDAP 認証](https://prestodb.io/docs/current/security/ldap.html)を設定できます。このセットアップでは、安全な LDAP (LDAPS) を使用します。LDAP サーバーで TLS を有効にする必要があります。また、Presto クラスターは転送時のデータの暗号化を有効にして、セキュリティ設定を使用する必要があります。その他の設定も必要です。設定オプションは、使用する Amazon EMR のリリースバージョンに応じて異なります。詳細については、「[Amazon EMR の Presto に LDAP 認証を使用する](emr-presto-ldap.md)」を参照してください。

Amazon EMR の Presto は、デフォルトでは内部 HTTPS にポート 8446 を使用します。内部通信に使用するポートは、Presto コーディネーターへのクライアント HTTPS アクセスに使用するものと同じポートである必要があります。`http-server.https.port` 設定分類の `presto-config` プロパティでは、ポートが指定されます。

# Amazon EMR の Presto に LDAP 認証を使用する
<a name="emr-presto-ldap"></a>

このセクションのステップに従って、LDAP を設定します。例および詳細へのリンクについては、各ステップを参照してください。

**Topics**
+ [ステップ 1: LDAP サーバーに関する情報を収集し、サーバー証明書を Amazon S3 にコピーする](#emr-presto-ldap-server-prereq)
+ [ステップ 2: セキュリティ設定をセットアップする](#emr-presto-ldap-seccfg)
+ [ステップ 3: LDAP 用の Presto プロパティで設定 JSON を作成する](#emr-presto-ldap-prestoconfig)
+ [ステップ 4: LDAP サーバー証明書をコピーするスクリプトを作成し、Amazon S3 にアップロードする](#emr-presto-ldap-servercert)
+ [ステップ 5: クラスターを作成する](#emr-presto-ldap-createcluster)

## ステップ 1: LDAP サーバーに関する情報を収集し、サーバー証明書を Amazon S3 にコピーする
<a name="emr-presto-ldap-server-prereq"></a>

LDAP 認証を設定するには、LDAP サーバーから次のセクションの情報と項目が必要になります。

### LDAP サーバーの IP アドレスまたはホスト名
<a name="w2aac60c39c13b7b5"></a>

Amazon EMR マスターノードの Presto コーディネーターは、指定された IP アドレスまたはホスト名で LDAP サーバーに到達できる必要があります。デフォルトでは、Presto はポート 636 経由で LDAPS を使用して LDAP サーバーと通信します。LDAP 実装でカスタムポートが必要になる場合は、Amazon EMR 5.16.0 以降で `ldap.url` プロパティを使用するか、以前のバージョンで `authentication.ldap.url` を使用してレポートを指定できます。「`636`」の `presto-config` の設定分類の例に示すように、[ステップ 3: LDAP 用の Presto プロパティで設定 JSON を作成する](#emr-presto-ldap-prestoconfig) のカスタムポートを置き換えます。ファイアウォールやセキュリティグループにより、ポート 636 (またはカスタムポート) およびポート 8446 (またはカスタムポート) でインバウンドおよびアウトバウンドトラフィックが許可されることを確認します。これは内部クラスター通信に使用されます。

### LDAP サーバー証明書
<a name="w2aac60c39c13b7b7"></a>

証明書ファイルを Amazon S3 の安全な場所にアップロードする必要があります。詳細については、「*Amazon Simple Storage Service ユーザーガイド*」の「[S3 バケットにファイルとフォルダをアップロードする方法](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html)」を参照してください。クラスターの起動時に、この証明書を Amazon S3 からクラスター内の各ノードにコピーするブートストラップアクションを作成します。「[ステップ 4: LDAP サーバー証明書をコピーするスクリプトを作成し、Amazon S3 にアップロードする](#emr-presto-ldap-servercert)」で、証明書の例は *s3://amzn-s3-demo-bucket/ldap\$1server.crt* です。

### 匿名バインド用の LDAP サーバーの設定
<a name="w2aac60c39c13b7b9"></a>

PrestoDB で匿名バインドが無効になっている場合は、LDAP サーバーにバインドし、PrestoDB サーバーが接続を確立できるようにするアクセス権限があるアカウントのユーザー ID (UID) とパスワードが必要です。UID とパスワードは、`internal-communication.authentication.ldap.user` 分類設定の `internal-communication.authentication.ldap.password` および `presto-config` プロパティを使用して指定します。Amazon EMR 5.10.0 はこれらの設定をサポートしないため、このリリースバージョンを使用するときは、匿名バインドが LDAP サーバーでサポートされている必要があります。

Trino では匿名バインディングを設定する必要はありません。

**LDAP サーバーで匿名バインドのステータスを取得するには**
+ 次の例に示すように、Linux クライアントから [ldapwhoami](https://linux.die.net/man/1/ldapwhoami) コマンドを使用します。

  ```
  ldapwhoami -x -H ldaps://LDAPServerHostNameOrIPAddress
  ```

  匿名バインドが許可されない場合、コマンドの出力は次のようになります。

  ```
  ldap_bind: Inappropriate authentication (48)
  additional info: anonymous bind disallowed
  ```

**アカウントに、シンプルな認証を使用する LDAP サーバーへのアクセス権限があることを確認するには**
+ 次の例に示すように、Linux クライアントから [ldapwhoami](https://linux.die.net/man/1/ldapwhoami) コマンドを使用します。この例では、架空のユーザー *presto* を使用します。このユーザーは、EC2 インスタンスで実行されている Open LDAP サーバー (架空のホスト名 *ip-xxx-xxx-xxx-xxx.ec2.internal*) に保存されます。このユーザーは組織単位 (OU) *admins* とパスワード *123456* に関連付けられています。

  ```
  ldapwhoami -x -w "123456" -D uid=presto,ou=admins,dc=ec2,dc=internal -H ldaps://ip-xxx-xxx-xxx-xxx.ec2.internal 
  ```

  アカウントが有効であり、適切なアクセス権限がある場合、コマンドの出力は次のようになります。

  ```
  dn:uid=presto,ou=admins,dc=ec2,dc=internal
  ```

[ステップ 3: LDAP 用の Presto プロパティで設定 JSON を作成する](#emr-presto-ldap-prestoconfig) の設定例には、わかりやすくするためにこのアカウントが含まれています。ただし、5.10.0 の例は例外で、サポートされていません。LDAP サーバーが匿名バインドを使用する場合は、`internal-communication.authentication.ldap.user` と `internal-communication.authentication.ldap.password` の名前と値のペアを削除します。

### Presto ユーザーの LDAP 識別名 (DN)
<a name="w2aac60c39c13b7c11"></a>

Presto の LDAP 設定を指定するときは、`${USER}` と組織単位 (OU)、および追加のドメインコンポーネント (DC) で構成されるバインドパターンを指定します。Presto は、パスワードの認証中に `${USER}` を各ユーザーの実際のユーザー ID (UID) に置き換え、このバインドパターンが指定する識別名 (DN) に一致させます。対象のユーザーが属している OU とその DC が必要です。たとえば、`admins` ドメインの `corp.example.com` OU のユーザーが Presto に対して認証されるようにするには、ユーザーバインドパターンとして `${USER},ou=admins,dc=corp,dc=example,dc=com` を指定します。

**注記**  
を使用する場合 AWS CloudFormation、 を実際のユーザー ID (UID) `${USER}`に置き換えるには、Fn::Sub 関数を使用する必要があります。詳細については、「*AWS CloudFormation ユーザーガイド*」の「[Fn::Sub](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-sub.html)」トピックを参照してください。

Amazon EMR 5.10.0 を使用する場合、このようなパターンを 1 つだけ指定できます。Amazon EMR 5.11.0 以降を使用して、複数のパターンをコロン (:) で区切って指定できます。Presto に対して認証を試みるユーザーは最初のパターンと比較されてから、2 番目のパターンに比較され、以降も同様に比較されます。例については、[ステップ 3: LDAP 用の Presto プロパティで設定 JSON を作成する](#emr-presto-ldap-prestoconfig)を参照してください。

## ステップ 2: セキュリティ設定をセットアップする
<a name="emr-presto-ldap-seccfg"></a>

転送時の暗号化を有効にして、セキュリティ設定を作成します。詳細については、「*Amazon EMR 管理ガイド*」の「[セキュリティ設定を作成する](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-create-security-configuration.html)」を参照してください。転送時の暗号化を設定する際に指定する暗号化アーティファクトは、Presto のノード間の内部通信を暗号化するために使用されます。詳細については、「[伝送中のデータの暗号化のための証明書を提供する](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-encryption-enable.html#emr-encryption-certificates)」を参照してください。LDAP サーバー証明書は、Presto サーバーへのクライアント接続を認証するために使用されます。

## ステップ 3: LDAP 用の Presto プロパティで設定 JSON を作成する
<a name="emr-presto-ldap-prestoconfig"></a>

LDAP 用の Presto プロパティを設定するには、`presto-config` 設定分類を使用します。`presto-config` の形式と内容は、Amazon EMR のリリースバージョンと Presto のインストール済み環境 (PrestoDB または Trino) によって若干異なります。設定の違いの例については、このセクションの後半で示します。詳細については、「[アプリケーションの設定](emr-configure-apps.md)」を参照してください。

以下のステップは、JSON データを *MyPrestoConfig.json* ファイルに保存することを前提としています。コンソールを使用する場合、Amazon S3 の安全な場所にファイルをアップロードし、クラスターを作成するときに参照できるようにします。を使用する場合は AWS CLI、ファイルをローカルで参照できます。

**Example Amazon EMR 6.1.0 以降で PrestoSQL (Trino) を使用**  
次の例では、[ステップ 1: LDAP サーバーに関する情報を収集し、サーバー証明書を Amazon S3 にコピーする](#emr-presto-ldap-server-prereq) の LDAP ホスト名を使用して、バインドのために LDAP サーバーに対して認証を行います。2 つのユーザーバインドパターンが指定され、それにより、`admins` OU 内のユーザーと LDAP サーバーの `datascientists` OU は、ユーザーとして Trino サーバーへの認証の対象となります。バインドパターンはコロン (`:`) で区切られます。  
Amazon EMR バージョン 6.4.0 以降では、PrestoSQL ではなく、新しい名称の Trino を使用します。Trino を使用する場合、以下の設定分類で *`prestosql-config`* を `trino-config` に置き換え、`prestosql-password-authenticator` を `trino-password-authenticator` に置き換えてください。  

```
[
   {
      "Classification":"prestosql-config",
      "Properties":{
         "http-server.authentication.type":"PASSWORD"
      }
   },
   {
      "Classification":"prestosql-password-authenticator",
      "Properties":{
         "password-authenticator.name":"ldap",
         "ldap.url":"ldaps://ip-xxx-xxx-xxx-xxx.ec2.internal:636",
         "ldap.user-bind-pattern": "uid=${USER},ou=admins,dc=ec2,dc=internal:uid=${USER},ou=datascientists,dc=ec2,dc=internal"
      }
   }
]
```

**Example Amazon EMR 5.16.0 以降**  
次の例では、LDAP ユーザー ID とパスワード、および「[ステップ 1: LDAP サーバーに関する情報を収集し、サーバー証明書を Amazon S3 にコピーする](#emr-presto-ldap-server-prereq)」の LDAP ホスト名を使用して、バインドのために LDAP サーバーに対して認証を行います。2 つのユーザーバインドパターンが指定され、それにより、`admins` OU 内のユーザーと LDAP サーバーの `datascientists` OU は、ユーザーとして Presto サーバーへの認証の対象となります。バインドパターンはコロン (`:`) で区切られます。  

```
[{
        "Classification": "presto-config",
                "Properties": {
                        "http-server.authentication.type": "PASSWORD"
                }
        },
        {
                "Classification": "presto-password-authenticator",
                "Properties": {
                        "password-authenticator.name": "ldap",
                        "ldap.url": "ldaps://ip-xxx-xxx-xxx-xxx.ec2.internal:636",
                        "ldap.user-bind-pattern": "uid=${USER},ou=admins,dc=ec2,dc=internal:uid=${USER},ou=datascientists,dc=ec2,dc=internal",
                        "internal-communication.authentication.ldap.user": "presto",
                        "internal-communication.authentication.ldap.password": "123456"
                }
        }]
```

**Example Amazon EMR 5.11.0 ～ 5.15.0**  
`presto-config `設定分類の形式は、これらのリリースバージョンごとに少し異なります。次の例では、前の例と同じパラメータを指定します。  

```
[{
        "Classification": "presto-config",
                "Properties": {
                        "http-server.authentication.type": "LDAP",
                        "authentication.ldap.url": "ldaps://ip-xxx-xxx-xxx-xxx.ec2.internal:636",
                        "authentication.ldap.user-bind-pattern": "uid=${USER},ou=admins,dc=ec2,dc=internal:uid=${USER},ou=datascientists,dc=ec2,dc=internal",
                        "internal-communication.authentication.ldap.user": "presto",
                        "internal-communication.authentication.ldap.password": "123456"
                }
        }]
```

**Example Amazon EMR 5.10.0**  
Amazon EMR 5.10.0 は匿名バインドのみをサポートするため、これらのエントリは省略されます。さらに、指定できるバインドパターンは 1 つのみです。  

```
[{
        "Classification": "presto-config",
                "Properties": {
                        "http-server.authentication.type": "LDAP",
                        "authentication.ldap.url": "ldaps://ip-xxx-xxx-xxx-xxx.ec2.internal:636",
                        "ldap.user-bind-pattern": "uid=${USER},ou=prestousers,dc=ec2,dc=internal"
                }
        }]
```

## ステップ 4: LDAP サーバー証明書をコピーするスクリプトを作成し、Amazon S3 にアップロードする
<a name="emr-presto-ldap-servercert"></a>

クラスターの各ノードに証明書ファイルをコピーするスクリプトを作成し、キーストアに追加します。テキストエディタを使用してスクリプトを作成し、保存した後、Amazon S3 にアップロードします。「[ステップ 5: クラスターを作成する](#emr-presto-ldap-createcluster)」では、スクリプトファイルは *s3://amzn-s3-demo-bucket/LoadLDAPCert.sh* として参照されます。

次の例では、スクリプトはデフォルトのキーストアパスワード *changeit* を使用します。クラスターの作成後にマスターノードに接続し、keytool コマンドを使用してキーストアパスワードを変更することをお勧めします。

```
#!/bin/bash
aws s3 cp s3://amzn-s3-demo-bucket/ldap_server.crt .
sudo keytool -import -keystore /usr/lib/jvm/jre-1.8.0-openjdk.x86_64/lib/security/cacerts -trustcacerts -alias ldap_server -file ./ldap_server.crt -storepass changeit -noprompt
```



## ステップ 5: クラスターを作成する
<a name="emr-presto-ldap-createcluster"></a>

クラスターを作成するときは、Presto と、Amazon EMR でインストールする他のアプリケーションを選択します。次の例では、JSON 内で設定分類プロパティを参照していますが、インラインで設定分類を指定することもできます。

**Amazon EMR コンソールを使用して LDAP 認証により Presto クラスターを作成するには**

1. 新しい Amazon EMR コンソールに移動し、サイドナビゲーションから **[古いコンソールに切り替え]** を選択します。古いコンソールに切り替えたときの動作の詳細については、「[Using the old console](https://docs.aws.amazon.com/emr/latest/ManagementGuide/whats-new-in-console.html#console-opt-in)」を参照してください。

1. [**Create cluster (クラスターの作成)**]、[**Go to advanced options (詳細オプションに移動する)**] の順に選択します。

1. **Presto** と、Amazon EMR でインストールする他のアプリケーションを選択し、[**ソフトウェア設定**] で、使用する Amazon EMR の [**リリース**] を選択します。LDAP 認証は Amazon EMR 5.10.0 以降でのみサポートされます。

1. **[Edit software settings]** (ソフトウェア設定の編集) で **[Load JSON from S3]** (S3 からの JSON のロード) を選択し、「[ステップ 3: LDAP 用の Presto プロパティで設定 JSON を作成する](#emr-presto-ldap-prestoconfig)」で作成した JSON 設定ファイルの Amazon S3 の場所を入力し、**[Next]** (次へ) を選択します。

1. クラスターハードウェアおよびネットワークを設定し、[**次へ**] を選択します。

1. [**ブートストラップアクション**] を選択します。[**ブートストラップアクションを追加する**] で [**カスタムアクション**]、[**設定と追加**] の順に選択します。

1. ブートストラップアクションの **[名前]** を入力し、「[ステップ 4: LDAP サーバー証明書をコピーするスクリプトを作成し、Amazon S3 にアップロードする](#emr-presto-ldap-servercert)」で作成した **[スクリプトの場所]** を入力 (例: **s3://amzn-s3-demo-bucket/LoadLDAPCert.sh**) してから、**[追加]** を選択します。

1. [**汎用オプション**]、[**タグ**]、[**追加のオプション**] で、アプリケーションに最適な設定を選択し、[**次へ**] を選択します。

1. [**認証と暗号化**] を選択し、「**」で作成した [**セキュリティ設定[ステップ 2: セキュリティ設定をセットアップする](#emr-presto-ldap-seccfg)] を選択します。

1. アプリケーションに最適な他のセキュリティオプションを選択し、[**クラスターの作成**] を選択します。

**を使用して LDAP 認証で Presto クラスターを作成するには AWS CLI**
+ `aws emr create-cluster` コマンドを使用します。少なくとも、Presto アプリケーションと、前のステップで作成した Presto 設定分類、ブートストラップスクリプト、およびセキュリティ設定を指定します。次の例では、コマンドを実行するのと同じディレクトリに JSON ファイルとして保存されている設定ファイルを参照します。一方、ブートストラップスクリプトは、Amazon S3 に保存する必要があります。次の例では `s3://amzn-s3-demo-bucket/LoadLDAPCert.sh` を使用しています。
**注記**  
読みやすくするために、Linux 行連続文字 (\$1) が含まれています。Linux コマンドでは、これらは削除することも、使用することもできます。Windows の場合、削除するか、キャレット (^) に置き換えてください。

  ```
  aws emr create-cluster  --applications Name=presto --release-label emr-5.16.0 \
  --use-default-roles --ec2-attributes KeyName=MyKeyPair,SubnetId=subnet-1234ab5 \ --instance-count 3 --instance-type m5.xlarge --region us-west-2 --name "MyPrestoWithLDAPAuth" \
  --bootstrap-actions Name="Distribute LDAP server cert",Path="s3://amzn-s3-demo-bucket/LoadLDAPCert.sh" \
  --security-configuration MyPrestoLDAPSecCfg --configurations file://MyPrestoConfig.json
  ```

# Presto 厳格モードを有効にする
<a name="presto-strict-mode"></a>

特定の状況では、クエリを長時間実行するとコストが高くなり、Amazon EMR がより多くのクラスターリソースを使用する可能性があります。これにより、クラスター上の他のワークロードからリソースが奪われます。Amazon EMR バージョン 6.8 以降では、次のような長時間実行されるクエリを拒否または警告する厳格モード機能を使用できます。
+ パーティション化された列に述語がないクエリ。これにより大量のデータがテーブルスキャンされます
+ 2 つの大きなテーブルを相互結合するクエリ
+ 多数の行を無制限にソートするクエリ

Presto がクエリプランを完全に最適化すると、厳格モードが実行されます。厳格モードを使用してクエリのニーズに合わせてカスタマイズするには、以下の方法で Presto を設定できます。


**厳格モードのための Presto 設定**  

| 設定 | 説明 | デフォルト | 
| --- | --- | --- | 
| strict-mode-enabled | 厳格モードのオンとオフを切り替えます。true の値は厳格モードがオンであることを示します。 | false | 
| strict-mode-fail-query | 厳格モードでは実行時間が長くなりそうなクエリが検出された場合、クエリを拒否します。false の場合、Amazon EMR は警告を発するだけです。 | false | 
| strict-mode-restrictions | 厳格モードを有効にするときに適用する制限を指定します。厳格モードでは次の制限がサポートされます: MANDATORY\$1PARTITION\$1PREDICATE、DISALLOW\$1CROSS\$1JOIN、LIMITED\$1SORT。 |  MANDATORY\$1PARTITION\$1PREDICATE、DISALLOW\$1CROSS\$1JOIN、LIMITED\$1SORT  | 

厳格モードを試してみるには、これらの設定をオーバーライドするか、Presto クライアントを使用するときにセッションプロパティとして設定します。

**を使用してクラスターの作成時に設定を設定するには AWS マネジメントコンソール**

1. **[クラスターの作成]** を選択し、Amazon EMR バージョン 6.8.0、および Presto または Trino を選択します。詳細については、「[PrestoDB と Trino をインストールする](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-presto-considerations.html#emr-prestodb-prestosql)」を参照してください。

1. 厳格モードの設定プロパティを直接指定するか、JSON ファイルを Amazon S3 にアップロードします。必要に応じて、メタストアの AWS Glue データカタログを選択します。VPC、サブネット、ブートストラップアクション、キーペア、セキュリティグループを指定します。クラスターを作成するには、**[クラスターの作成]** を選択します。

1. クラスターのプライマリノードにログインし、`presto-cli` または `trino-cli` を実行します。

1. クエリを送信します。厳格モードは各クエリを検証し、実行時間が長いかどうかを判断します。`strict-mode-fail-query` 設定に応じて、Amazon EMR はクエリを拒否するか、警告を発します。

1. クエリが完了したら、クラスターを終了し、リソースを削除します。

**を使用して実行中のクラスターで設定を設定するには AWS CLI**

1. を使用してクラスターのプライマリノードにログイン AWS CLI し、 `presto-cli`または を実行します`trino-cli`。

1. 以下のコマンドを希望する値で実行します。

   ```
   set session strict_mode_enabled = true; 
   set session strict_mode_fail_query = false;
   set session strict_mode_restrictions = 'DISALLOW_CROSS_JOIN,LIMITED_SORT';
   ```

## 考慮事項
<a name="presto-strict-mode-considerations"></a>

厳格モードを使用する場合は、次の点を考慮してください。
+ 厳格モードでは、リソースをあまり消費しない短時間のクエリを拒否できる場合があります。例えば、小さなテーブルのクエリでは、動的フィルタリングは適用されず、内部結合をクロス結合に置き換えることもありません。これにより、クエリで必須パーティション述語が使用されたり、クロス結合が禁止されたりする可能性があります。この場合、厳格モードではクエリが拒否されます。
+ 厳格モードのチェックは、SELECT、INSERT、CREATE TABLE AS SELECT、および EXPLAIN ANALYZE クエリタイプにのみ適用されます。
+ 必須パーティション述語の制限は Hive コネクタでのみ使用できます。

# Presto でのスポットインスタンス損失の処理
<a name="presto-spot-loss"></a>

Amazon EMR のスポットインスタンスを使用すると、予備の Amazon EC2 キャパシティでビッグデータワークロードを低コストで実行できます。Amazon EC2 は、コスト削減と引き換えに、2 分間の通知により、スポットインスタンスを中断できます。ノードを終了すると、Presto がエラーを返すまでに最大 10 分かかることがあります。これにより、エラー報告が不必要に遅れたり、再試行されたりする可能性があります。クイック終了は、終了したノードを Presto が処理する方法を制御できる機能です。

Presto コーディネーターの仕事は、定期的にステータスをポーリングしてすべてのワーカーノードを追跡することです。クイック終了がなければ、コーディネーターは各ノードのステータスを YARN NodeManager に問い合わせません。これにより、クエリが失敗するまでの再試行ループが長くなる可能性があります。クイック終了では、Presto コーディネーターは、ポーリングがホストに到達できないとすぐに NodeManager でノードのステータスを調べます。NodeManager がノードが非アクティブであることを示した場合、Presto はそれ以上の再試行を中止し、クエリに失敗して、`NODE_DECOMMISSIONED` エラーを返します。

以下の設定パラメータセットにより、ノード終了時の Presto の動作を制御およびカスタマイズできます。


**ノード障害処理用の Presto 設定**  

| 設定 | 説明 | デフォルト | 
| --- | --- | --- | 
| query.remote-task.max-backoff-duration | コーディネーターがワーカーノードからリモートタスクのステータスを取得しようとし続ける時間。 | 10 分 | 
| query.remote-task.quick-terminate-node-failure |  コーディネーターがノードに到達できない場合や、そのノードで実行されているワーカーに接続できない場合に、クイックノード障害を有効にします。`query.remote-task.terminate-on-connect-exception` の値によって、コーディネーターがノードに到達する必要があるのか、ワーカーに接続する必要があるのかが決まります。 ノードはクエリに失敗し、Amazon EMR は利用可能なワーカーのリストからノードを削除します。この場合、ノードを使用して新しいクエリをスケジュールすることはできません。 この値を `false` に設定すると、Presto コーディネーターが再びノードにアクセスしようとする (`query.remote-task.max-backoff-duration` の場合)、以前の動作に戻ります。その後、ノードが使用不可とマークされ、ノード上で実行中のクエリが失敗します。  | true | 
| query.remote-task.terminate-on-connect-exception | ホストには接続可能だが、コーディネーターがホストのワーカープロセスに接続できない場合に Amazon EMR がノードを処理する必要があるかどうかを指定します。この値を true に設定すると、ホストにアクセスできない場合にクイッククエリ障害が有効になります。 | false | 

# グレースフルな廃止による Presto Auto Scaling の使用
<a name="presto-graceful-autoscale"></a>

Amazon EMR リリースバージョン 5.30.0 以降には、特定のスケーリングアクションの猶予期間を設定する機能が含まれています。猶予期間を使用することで、スケールインサイズ変更アクションまたは自動スケーリングポリシーリクエストによってノードが終了するまで Presto タスクの実行を続けることができます。スケーリングルールの詳細については、「*Amazon EMR 管理ガイド*」の「[自動スケーリングルールについて](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-automatic-scaling.html#emr-scaling-rules)」を参照してください。グレースフルな廃止を使用する Presto Auto Scaling では、廃止処理中のノードでの新しいタスクのスケジューリングを回避するとともに、シャットダウンタイムアウトに達する前に、既に実行中のタスクを完了できます。実行中のクエリは、ノードが廃止される前に実行を完了します。Autoscaling は、インスタンスフリートではサポートされていません。

自動スケーリングのシャットダウンリクエストが受け取られた後、Presto タスクが完了するまでの許容時間を制御できます。デフォルトでは、Amazon EMR のシャットダウンタイムアウトは `0` 分です。この場合、スケールインリクエストで必要になると、Amazon EMR によってノードとそのノードで実行されている Presto タスクが直ちに終了します。実行中のクエリをクラスターのスケールダウン前に完了できるように、Amazon EMR で Presto タスクのタイムアウトを長く設定するには、`presto-config` 設定分類を使用して、`graceful-shutdown-timeout` パラメータを 0 より大きい値 (秒単位または分単位) に設定します。詳細については、「[アプリケーションの設定](emr-configure-apps.md)」を参照してください。

例えば、`graceful-shutdown-timeout` 値を `"30m"` に増加すると、30 分間のタイムアウト期間が指定されます。シャットダウンタイムアウト期間が終了すると、廃止対象としてマークされたノードは、クエリタスクの完了を待機していても強制的に終了され、クエリは失敗します。クエリタスクが 5 分後に終了した場合、他の YARN アプリケーションが実行を完了していれば、廃止対象としてマークされたノードは終了します。

**Example グレースフルな廃止による Presto 自動スケーリング設定の例**  
`graceful-shutdown-timeout` 値を、設定に適した分数に置き換えます。決められた最大値はありません。次の例では、タイムアウト値を `1800` 秒 (30 分) に設定します。  

```
[
    {
        "classification": "presto-config",
        "properties": {
            "graceful-shutdown-timeout": "1800s"
        }
    }
]
```

**制限事項**

PrestoDB のグレースフルな廃止は、HTTP 接続が無効になっている EMR クラスターでは動作しません (`http-server.http.enabled` が `false` に設定されている場合など)。Trino では、`http-server.http.enabled` の設定に関係なく、グレースフルな廃止はサポートされていません。

# Amazon EMR での Presto に関する考慮事項
<a name="emr-presto-considerations"></a>

Amazon EMR での [Presto](https://aws.amazon.com/big-data/what-is-presto/) を実行するときは、次の制限について考慮してください。

## Presto コマンドライン実行可能ファイル
<a name="emr-presto-command-line-cli"></a>

Amazon EMR では、以下の例に示されているように、PrestoDB と Trino は両方とも同じコマンドライン実行可能ファイル `presto-cli` を使用します。

```
presto-cli --catalog hive
```

## Presto デプロイプロパティは設定可能ではない
<a name="emr-presto-deployment-config"></a>

ご使用の Amazon EMR のバージョンによって、使用可能な Presto デプロイ設定が決まります。これらの設定プロパティについては、Presto ドキュメントの「[Deploying Presto](https://prestodb.io/docs/current/installation/deployment.html)」を参照してください。次の表に、Presto `properties` ファイルのさまざまな設定オプションを示します。


| システム | 設定可能 | 
| --- | --- | 
|  `log.properties`  |  PrestoDB: Amazon EMR バージョン 4.0.0 以降で設定可能です。`presto-log` 設定分類を使用します。  | 
|  `config.properties`  |  PrestoDB: Amazon EMR バージョン 4.0.0 以降で設定可能です。`presto-config` 設定分類を使用します。  | 
|  `hive.properties`  |  PrestoDB: Amazon EMR バージョン 4.1.0 以降で設定可能です。`presto-connector-hive` 設定分類を使用します。  | 
|  `node.properties`  |  PrestoDB: Amazon EMR バージョン 5.6.0 以降で設定可能です。`presto-node` 設定分類を使用します。  | 
|  `jvm.config`  |  設定可能ではありません。  | 

## PrestoDB のインストール
<a name="emr-prestodb-prestosql"></a>

アプリケーション名 *Presto* は、クラスターに PrestoDB をインストールするために引き続き使用されます。

PrestoDB または Trino のいずれかをインストールできますが、両方を単一のクラスターにインストールすることはできません。クラスターを作成しようとしたときに PrestoDB と Trino の両方を指定すると、検証エラーが発生し、クラスター作成リクエストは失敗します。

## EMRFS と PrestoS3FileSystem の設定
<a name="emr-presto-prestos3"></a>

Amazon EMR バージョン 5.12.0 以降では、PrestoDB は EMRFS を使用できます。詳細については、「*Amazon EMR 管理ガイド*」の「[EMR ファイルシステム (EMRFS)](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-fs)」を参照してください。Amazon EMR の以前のバージョンでは、PrestoS3FileSystem が唯一の設定オプションです。

セキュリティ設定を使用して、Amazon S3 で EMRFS データの暗号化を設定できます。また、Amazon S3 への EMRFS リクエストに IAM ロールを使用することもできます。詳細については、「*Amazon EMR 管理ガイド*」の「[暗号化オプションを理解する](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-data-encryption-options.html)」および「[Amazon S3 への EMRFS リクエストの IAM ロールを設定する](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-emrfs-iam-roles.html)」を参照してください。

**注記**  
Amazon EMR バージョン 5.12.0 を使用して Amazon S3 で基盤となるデータをクエリするときに、Presto エラーが発生することがあります。これは、Presto が `emrfs-site.xml` から設定分類値を取得できないためです。回避策として、`usr/lib/presto/plugin/hive-hadoop2/` の下に `emrfs` サブディレクトリを作成し、既存の `/usr/share/aws/emr/emrfs/conf/emrfs-site.xml` ファイルへのシンボリックリンクを `usr/lib/presto/plugin/hive-hadoop2/emrfs` に作成します。次に presto-server プロセスを再起動します (`sudo presto-server stop` に続いて `sudo presto-server start`)。

EMRFS のデフォルトをオーバーライドして、代わりに PrestoS3FileSystem を使用できます。これを行うには、次の例に示すように `presto-connector-hive` 設定分類を使用して、`hive.s3-file-system-type` を `PRESTO` に設定します。詳細については、「[アプリケーションの設定](emr-configure-apps.md)」を参照してください。

```
[
   {
      "Classification": "presto-connector-hive",
      "Properties": {
         "hive.s3-file-system-type": "PRESTO"
      }
   }
]
```

PrestoS3FileSystem を使用する場合、`presto-connector-hive` 設定分類を使用して PrestoS3FileSystem プロパティを設定します。使用可能なプロパティの詳細については、Presto ドキュメントの「Hive Connector」セクションにある「[Amazon S3 の設定](https://prestodb.io/docs/current/connector/hive.html#amazon-s3-configuration)」を参照してください。これらの設定は EMRFS には適用されません。

## エンドユーザー偽装のデフォルト設定
<a name="emr-presto-end-user-impersonation"></a>

デフォルトでは、Amazon EMR バージョン 5.12.0 以降では、エンドユーザーが HDFS にアクセスするための偽装を行うことができます。詳細については、Presto のドキュメントの「[エンドユーザー偽装](https://prestodb.io/docs/current/connector/hive-security.html#end-user-impersonation)」を参照してください。この設定を `presto-config` 設定分類を使用して変更するには、`hive.hdfs.impersonation.enabled` プロパティを `false` に設定します。

## Presto ウェブインターフェイス用のデフォルトポート
<a name="emr-presto-default-web-port"></a>

デフォルトでは、Amazon EMR はポート 8889 を使用するように Presto コーディネーターの Presto ウェブインターフェイスを設定します (PrestoDB および Trino の場合)。このポートを変更するには、`presto-config` 設定分類を使用して `http-server.http.port` プロパティを設定します。詳細については、Presto ドキュメントの「*Deploying Presto*」セクションの「[Config properties](https://prestodb.io/docs/current/installation/deployment.html#config-properties)」を参照してください。

## 一部のリリースでの Hive バケットの実行に関する問題
<a name="emr-presto-bucket-execution"></a>

Presto バージョン 152.3 には、特定の状況で Presto のクエリパフォーマンスを大幅に低下させる Hive バケットの実行に問題があります。Amazon EMR リリース 5.0.3、5.1.0、および 5.2.0 には、このバージョンの Presto が含まれています。この問題を軽減するには、次の例に示すように `presto-connector-hive` 設定分類を使用して、`hive.bucket-execution` プロパティを `false` に設定します。

```
[
   {
      "Classification": "presto-connector-hive",
      "Properties": {
         "hive.bucket-execution": "false"
      }
   }
]
```

# Presto リリース履歴
<a name="Presto-release-history"></a>

次の表は、Amazon EMR の各リリースに含まれている Presto のバージョンと、アプリケーションと共にインストールされるコンポーネントを示しています。各リリースのコンポーネントバージョンについては、[Amazon EMR 7.x リリースバージョン](emr-release-7x.md)、[Amazon EMR 6.x リリースバージョン](emr-release-6x.md) または [Amazon EMR 5.x リリースバージョン](emr-release-5x.md) でリリースに応じたコンポーネントバージョンのセクションを参照してください。


**Presto バージョン情報**  

| Amazon EMR リリースラベル | Presto バージョン | Presto でインストールされるコンポーネント | 
| --- | --- | --- | 
| emr-7.12.0 | 0.287-amzn-6 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-hdfs-zkfc, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-7.11.0 | 0.287-amzn-5 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-hdfs-zkfc, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-7.10.0 | 0.287-amzn-4 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-7.9.0 | 0.287-amzn-3 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-7.8.0 | 0.287-amzn-2 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-7.7.0 | 0.287-amzn-1 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-7.6.0 | 0.287-amzn-1 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-7.5.0 | 0.287-amzn-0 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-7.4.0 | 0.287-amzn-0 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-7.3.0 | 0.285-amzn-1 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-7.2.0 | 0.285-amzn-0 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-5.36.2 | 0.267-amzn-1 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-7.1.0 | 0.284-amzn-0 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-7.0.0 | 0.283-amzn-1 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-6.15.0 | 0.283-amzn-0 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-6.14.0 | 0.281-amzn-2 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-6.13.0 | 0.281-amzn-1 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-6.12.0 | 0.281-amzn-0 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-6.11.1 | 0.279-amzn-0 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-6.11.0 | 0.279-amzn-0 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-6.10.1 | 0.278.1-amzn-0 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-6.10.0 | 0.278.1-amzn-0 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-6.9.1 | 0.276-amzn-0 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-6.9.0 | 0.276-amzn-0 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-6.8.1 | 0.273.3-amzn-0 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-6.8.0 | 0.273.3-amzn-0 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-6.7.0 | 0.272-amzn-0 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-5.36.1 | 0.267-amzn-1 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-5.36.0 | 0.267-amzn-1 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-6.6.0 | 0.267-amzn-0 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-5.35.0 | 0.266-amzn-0 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-6.5.0 | 0.261-amzn-0 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-6.4.0 | 0.254.1-amzn-0 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-6.3.1 | 0.245.1-amzn-0 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-6.3.0 | 0.245.1-amzn-0 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-6.2.1 | 0.238.3-amzn-1 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-6.2.0 | 0.238.3-amzn-1 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-6.1.1 | 0.232 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-6.1.0 | 0.232 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-6.0.1 | 0.230 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-6.0.0 | 0.230 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-5.34.0 | 0.261-amzn-0 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-5.33.1 | 0.245.1-amzn-0 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-5.33.0 | 0.245.1-amzn-0 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-5.32.1 | 0.240.1-amzn-0 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-5.32.0 | 0.240.1-amzn-0 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-5.31.1 | 0.238.3-amzn-0 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-5.31.0 | 0.238.3-amzn-0 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-5.30.2 | 0.232 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-5.30.1 | 0.232 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-5.30.0 | 0.232 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mariadb-server, presto-coordinator, presto-worker | 
| emr-5.29.0 | 0.227 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.28.1 | 0.227 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.28.0 | 0.227 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hudi, hudi-presto, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.27.1 | 0.224 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.27.0 | 0.224 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.26.0 | 0.220 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.25.0 | 0.220 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.24.1 | 0.219 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.24.0 | 0.219 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.23.1 | 0.215 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.23.0 | 0.215 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.22.0 | 0.215 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.21.2 | 0.215 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.21.1 | 0.215 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.21.0 | 0.215 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.20.1 | 0.214 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.20.0 | 0.214 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.19.1 | 0.212 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.19.0 | 0.212 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.18.1 | 0.210 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.18.0 | 0.210 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.17.2 | 0.206 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.17.1 | 0.206 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.17.0 | 0.206 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.16.1 | 0.203 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.16.0 | 0.203 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.15.1 | 0.194 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.15.0 | 0.194 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.14.2 | 0.194 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.14.1 | 0.194 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.14.0 | 0.194 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.13.1 | 0.194 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.13.0 | 0.194 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.12.3 | 0.188 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.12.2 | 0.188 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.12.1 | 0.188 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.12.0 | 0.188 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.11.4 | 0.187 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.11.3 | 0.187 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.11.2 | 0.187 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.11.1 | 0.187 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.11.0 | 0.187 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.10.1 | 0.187 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.10.0 | 0.187 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.9.1 | 0.184 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.9.0 | 0.184 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.8.3 | 0.170 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.8.2 | 0.170 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.8.1 | 0.170 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.8.0 | 0.170 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.7.1 | 0.170 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.7.0 | 0.170 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.6.1 | 0.170 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.6.0 | 0.170 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.5.4 | 0.170 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.5.3 | 0.170 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.5.2 | 0.170 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.5.1 | 0.170 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.5.0 | 0.170 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.4.1 | 0.166 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.4.0 | 0.166 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.3.2 | 0.157.1 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.3.1 | 0.157.1 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.3.0 | 0.157.1 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.2.3 | 0.157.1 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.2.2 | 0.157.1 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.2.1 | 0.157.1 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.2.0 | 0.152.3 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.1.1 | 0.152.3 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.1.0 | 0.152.3 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.0.3 | 0.152.3 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.0.2 | 0.150 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.0.1 | 0.150 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 
| emr-5.0.0 | 0.150 | emrfs, emr-goodies, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hive-client, hcatalog-server, mysql-server, presto-coordinator, presto-worker | 