

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 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이 Presto를 통해 설치하는 구성 요소와 함께 Amazon EMR 7.x 시리즈의 최신 릴리스에 포함된 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이 Presto를 통해 설치하는 구성 요소와 함께 Amazon EMR 6.x 시리즈의 최신 릴리스에 포함된 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이 Presto를 통해 설치하는 구성 요소와 함께 Amazon EMR 5.x 시리즈의 최신 릴리스에 포함된 Presto의 버전이 나열되어 있습니다.

이 릴리스에서 Presto와 함께 설치된 구성 요소의 버전은 [릴리스 5.36.2 구성 요소 버전](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**
+ [AWS Glue 데이터 카탈로그에서 Presto 사용](emr-presto-glue.md)
+ [S3 Select Pushdown과 함께 Presto를 사용하여 성능 향상](emr-presto-s3select.md)
+ [데이터베이스 커넥터 추가](presto-adding-db-connectors.md)
+ [Amazon EMR 기반 Presto를 통해 SSL 및 TLS 사용과 LDAPS 구성](presto-ssl.md)
+ [Presto 엄격한 모드 활성화](presto-strict-mode.md)
+ [Presto에서 스팟 인스턴스 손실 처리](presto-spot-loss.md)
+ [단계적 서비스 해제 기능이 있는 자동 조정 사용](presto-graceful-autoscale.md)
+ [Amazon EMR 기반 Presto에 대한 고려 사항](emr-presto-considerations.md)
+ [Presto 릴리스 기록](Presto-release-history.md)

# AWS Glue 데이터 카탈로그에서 Presto 사용
<a name="emr-presto-glue"></a>

Amazon EMR 릴리스 버전 5.10.0 이상을 사용하여 AWS Glue 데이터 카탈로그를 Presto의 기본 Hive 메타스토어로 지정할 수 있습니다. 영구 메타스토어가 필요하거나 여러 클러스터, 서비스, 애플리케이션 또는 AWS 계정에서 메타스토어를 공유해야 하는 경우에 이 구성을 사용하는 것이 좋습니다.

AWS Glue는 완전 관리형 추출, 변환 및 로드(ETL) 서비스로, 데이터를 분류하고 정리하고 보강하고 다양한 데이터 스토어 간에 안정적으로 이동할 수 있는 간단하고 비용 효율적입니다. Glue 데이터 카탈로그는 Amazon EMR뿐만 아니라 Amazon RDS, Amazon Redshift, Redshift Spectrum, Athena 및 Apache Hive AWS 메타스토어와 호환되는 모든 애플리케이션과 통합되는 다양한 데이터 소스 및 데이터 형식에 걸쳐 통합된 메타데이터 리포지토리를 제공합니다. AWS Glue 크롤러는 Amazon S3의 소스 데이터에서 스키마를 자동으로 추론하고 관련 메타데이터를 데이터 카탈로그에 저장할 수 있습니다. 데이터 카탈로그에 대한 자세한 내용은 [AWS Glue 개발자 안내서의 Glue 데이터 카탈로그 채우기를](https://docs.aws.amazon.com/glue/latest/dg/populate-data-catalog.html) 참조하세요. *AWS * 

 AWS Glue에는 별도의 요금이 적용됩니다. 데이터 카탈로그의 메타데이터 저장 및 액세스에 대한 월별 요금, Glue ETL 작업 및 AWS 크롤러 런타임에 대해 분당 청구되는 시간당 요금, 프로비저닝된 각 개발 엔드포인트에 대해 분당 청구되는 시간당 요금이 있습니다. 데이터 카탈로그에는 최대 100만 개의 객체를 무료로 저장할 수 있습니다. 100만 개 이상의 객체를 저장하는 경우, 100만 이상의 객체 100,000개마다 1USD가 부과됩니다. 데이터 카탈로그의 객체로는 테이블, 파티션 또는 데이터베이스가 있습니다. 자세한 내용은 [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) 참조하세요.

## Glue 데이터 카탈로그를 AWS 메타스토어로 지정
<a name="emr-presto-glue-configure"></a>

 AWS Management Console AWS CLI또는 Amazon EMR API를 사용하여 AWS Glue 데이터 카탈로그를 메타스토어로 지정할 수 있습니다. CLI 또는 API를 사용할 때 Presto에 대한 구성 분류를 사용하여 데이터 카탈로그를 지정합니다. 또한 Amazon EMR 5.16.0 이상에서는 구성 분류를 사용하여 다른에서 데이터 카탈로그를 지정할 수 있습니다 AWS 계정. 콘솔을 사용할 때 **고급 옵션** 또는 **빠른 옵션**을 사용하여 데이터 카탈로그를 지정할 수 있습니다.

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

**새 콘솔을 사용하여 AWS Glue 데이터 카탈로그를 Hive 메타스토어로 지정하려면**

1. 에 로그인 AWS Management Console하고 [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"
      }
    }
  ]
  ```

  다른에서 데이터 카탈로그를 지정하려면 다음 JSON 예제와 같이 `hive.metastore.glue.catalogid` 속성을 AWS 계정추가합니다. `acct-id`를 데이터 카탈로그의 AWS 계정으로 바꿉니다. 다른 AWS 계정 에서 데이터 카탈로그를 사용하면 Amazon EMR 버전 5.15.0 및 이전 버전을 사용할 수 없습니다.

  ```
  [
    {
      "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"
      }
    }
  ]
  ```

  **PrestoSQL(Trino)을 사용하는 Amazon EMR 6.1.0 이상**

  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 인스턴스 프로파일에는 AWS Glue 작업에 대한 IAM 권한이 있어야 합니다. 또한 AWS Glue Data Catalog 객체에 대한 암호화를 활성화하는 경우 역할은 암호화에 AWS KMS key 사용되는를 암호화, 복호화 및 생성할 수 있어야 합니다.

### AWS Glue 작업에 대한 권한
<a name="emr-hive-glue-permissions-actions"></a>

Amazon EMR에 대한 기본 EC2 인스턴스 프로파일을 사용할 경우 어떤 작업도 필요하지 않습니다. 에 연결된 `AmazonElasticMapReduceforEC2Role` 관리형 정책은 필요한 모든 AWS Glue 작업을 `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 데이터 카탈로그 암호화 및 복호화 권한
<a name="emr-hive-glue-permissions-encrypt"></a>

인스턴스 프로파일에 키를 사용하여 데이터를 암호화하고 복호화할 수 있는 권한이 필요합니다. 다음 두 설명이 모두 적용되는 경우에는 이러한 권한을 구성할 필요가 *없습니다*.
+  AWS Glue용 관리형 키를 사용하여 AWS Glue Data Catalog 객체에 대한 암호화를 활성화합니다.
+ Glue 데이터 카탈로그 AWS 계정 와 동일한 AWS 에 있는 클러스터를 사용합니다.

그렇지 않으면 EC2 인스턴스 프로파일에 연결된 권한 정책에 다음 명령을 추가해야 합니다.

Glue 데이터 카탈로그 암호화에 대한 자세한 내용은 AWS *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는 리소스 기반 정책을 지원하여 데이터 카탈로그 리소스에 대한 액세스를 제어합니다. 이러한 리소스에는 데이터베이스, 테이블, 연결 및 사용자 정의 기능이 포함됩니다. 자세한 내용은 *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*는 AWS Glue 계정 ID와 다를 수 있습니다. 그러면 다른 계정의 EMR 클러스터에서 액세스할 수 있습니다. 각각 다른 계정에서 여러 보안 주체를 지정할 수 있습니다.

## AWS Glue 데이터 카탈로그 사용 시 고려 사항
<a name="emr-presto-glue-knownissues"></a>

Presto에서 AWS Glue 데이터 카탈로그를 메타스토어로 사용할 때는 다음 항목을 고려하세요.
+  AWS Glue 내에서 테이블 이름을 바꾸는 것은 지원되지 않습니다.
+ `LOCATION`을 지정하지 않고 Hive 테이블을 생성하면 테이블 데이터가 `hive.metastore.warehouse.dir` 속성을 통해 지정된 위치에 저장됩니다. 기본적으로 HDFS에 있는 위치입니다. 다른 클러스터가 테이블에 액세스해야 하는 경우, 테이블을 생성한 클러스터에 대한 적절한 권한이 없으면 실패합니다. 또한 HDFS 스토리지는 일시적이기 때문에, 클러스터가 종료되는 경우 테이블 데이터가 손실되고 테이블을 다시 생성해야 합니다. Glue를 사용하여 Hive 테이블을 생성할 때 Amazon S3`LOCATION`에서 AWS 를 지정하는 것이 좋습니다. 또는 `hive-site` 구성 분류를 사용하여 모든 Hive 테이블에 적용되는 Amazon S3에서 `hive.metastore.warehouse.dir`에 대한 위치를 지정할 수도 있습니다. HDFS 위치에 테이블이 생성되고 테이블을 생성한 클러스터가 여전히 실행 중인 경우 AWS Glue 내에서 테이블 위치를 Amazon S3로 업데이트할 수 있습니다. 자세한 내용은 [Glue 개발자 안내서의 AWS 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) 사용을 고려합니다. 자세한 내용은 [AWS Glue 데이터 카탈로그에 대한 Amazon EMR 액세스를 위한 리소스 기반 정책 사용을 참조하세요](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/) 푸시다운을 사용할 수 있습니다. 이 기능을 사용하면 프로젝션 작업의 계산 작업(예: `SELECT`)과 조건자 작업(예: `WHERE`)을 Amazon S3로 '푸시다운'할 수 있습니다. 이를 통해 쿼리는 Amazon S3에서 필요한 데이터만 검색할 수 있으므로 일부 애플리케이션에서 성능을 향상시키고 Amazon EMR과 Amazon S3 사이에 전송되는 데이터의 양을 줄일 수 있습니다.

## 내 애플리케이션에 S3 Select Pushdown이 적합한가요?
<a name="emr-presto-s3select-apps"></a>

S3 Select Pushdown 사용 여부에 관계없이 애플리케이션을 벤치마킹하여 애플리케이션에 적합한지 여부를 확인하는 것이 좋습니다.

다음 지침을 사용하여 애플리케이션과 함께 S3 Select를 사용할 수 있는지 확인하세요.
+ 쿼리가 원본 데이터 세트 중 반 이상을 필터링합니다.
+ 쿼리 필터 조건자는 Presto 및 S3 Select에서 지원하는 데이터 형식의 열을 사용합니다. 타임스탬프, real 및 double 데이터 형식은 S3 Select Pushdown에서 지원되지 않습니다. 숫자 데이터에는 10진수 데이터 형식을 사용하는 것이 좋습니다. 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 Pushdow은 ORC 또는 Parquet과 같은 열 또는 압축 파일 형식 대신 사용할 수 없습니다.
+ Amazon S3 Select는 Presto 및 Trino에 대한 리전 간 쿼리를 지원하지 않습니다.

## Presto 또는 Trino를 사용하여 S3 Select Pushdown 활성화
<a name="emr-presto-s3select-specify"></a>

Amazon EMR에서 Presto에 대해 S3 Select Pushdown을 활성화하려면 아래 예제와 같이 `hive.s3select-pushdown.enabled` 구성 분류를 사용하여 `presto-connector-hive`를 `true`로 설정합니다. 자세한 내용은 [애플리케이션 구성](emr-configure-apps.md) 단원을 참조하십시오. hive.s3select-pushdown.max-connections 값도 설정해야 합니다. 대부분의 애플리케이션에서는 기본 설정 `500`이 적합합니다. 자세한 내용은 아래 [hive.s3select-pushdown.max-connections 이해 및 튜닝](#emr-presto-s3select-max) 섹션을 참조하세요.

EMR 버전 6.1.0\$16.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입니다. S3 Select Pushdown은 조건자 작업에 대해 Amazon S3에 액세스할 때 EMRFS를 우회합니다. 이 경우 `hive.s3select-pushdown.max-connections` 값은 작업자 노드에서 이러한 작업에 허용되는 최대 클라이언트 연결 수를 결정합니다. 하지만 Presto가 시작하고 푸시다운되지 않은 Amazon S3에 대한 모든 요청(예: GET 작업)은 계속해서 `fs.s3.maxConnections`의 값으로 관리됩니다.

애플리케이션에서 "풀에서의 연결 대기 시간이 초과되었습니다"라는 오류가 발생하면 `hive.s3select-pushdown.max-connections` 및 `fs.s3.maxConnections` 값을 모두 늘립니다.

# 데이터베이스 커넥터 추가
<a name="presto-adding-db-connectors"></a>

클러스터를 생성할 때 구성 분류를 사용하여 JDBC 커넥터 속성을 구성할 수 있습니다. 구성 분류는 `presto-connector-postgresql`과 같이 `presto-connector`로 시작합니다. 사용 가능한 구성 분류는 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 기반 Presto를 통해 SSL 및 TLS 사용과 LDAPS 구성
<a name="presto-ssl"></a>

Amazon EMR 릴리스 버전 5.6.0 이상으로 SSL 및 TLS를 활성화하면 Presto 노드 사이에서 [안전한 내부 통신](https://prestodb.io/docs/current/security/internal-communication.html)이 가능합니다. 이렇게 하려면 전송 중 데이터 암호화를 위한 보안 구성을 설정합니다. 자세한 내용은 *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에 대해 다음을 수행합니다.
+ 전송 중 데이터 암호화를 위해 지정하는 암호화 아티팩트 또는 아티팩트를 Pedro 클러스터 전체로 분산시킵니다. 자세한 내용은 [전송 중 데이터 암호화에 대한 인증서 제공](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-encryption-enable.html#emr-encryption-certificates)을 참조하세요.
+ Presto에 대한 `presto-config`에 상응하는 `config.properties` 구성 분류를 사용하여 다음 속성을 설정합니다.
  + 모든 노드에서 `http-server.http.enabled`를 `false`로 설정하여 HTTPS를 사용할 수 있도록 HTTP를 비활성화합니다. 이를 위해 전송 중 암호화를 위한 보안 구성을 설정할 때 퍼블릭 및 프라이빗 DNS에 사용할 수 있는 인증서를 제공해야 합니다. 이를 위한 한 가지 방법은 여러 도메인을 지원하는 주체 대체 이름(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는 LDAPS를 사용하여 포트 636을 통해 LDAP 서버와 통신합니다. LDAP 실행에 사용자 지정 포트가 필요한 경우 Amazon EMR 5.16.0 이상의 `ldap.url` 속성을 사용하거나 이전 버전의 `authentication.ldap.url`을 사용하여 포트를 지정할 수 있습니다. [3단계: LDAP에 대한 Presto 속성을 통한 구성 JSON 생성](#emr-presto-ldap-prestoconfig)의 `presto-config` 구성 분류 예제에 표시된 대로 `636` 사용자 지정 포트를 대체합니다. 모든 방화벽 및 보안 그룹에서 포트 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에서 클러스터의 각 노드로 복사하는 부트스트랩 작업을 생성합니다. In [4단계: 스크립트를 생성하여 LDAP 인증서를 복사하여 Amazon S3로 업로드](#emr-presto-ldap-servercert). 예제 인증서는 *s3://amzn-s3-demo-bucket/ldap\$1server.crt*입니다.

### 익명 바인딩을 위한 LDAP 서버 설정
<a name="w2aac60c39c13b7b9"></a>

익명 바인딩을 PrestoDB에서 비활성화한 경우 LDAP 서버와의 바인딩이 허가된 계정의 사용자 ID(UID) 및 암호가 있어야 PrestoDB 서버가 연결을 설정할 수 있습니다. `internal-communication.authentication.ldap.user` 구성 분류에서 `internal-communication.authentication.ldap.password` 및 `presto-config` 속성을 사용하여 UID 및 암호를 지정해야 합니다. 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) 명령을 사용합니다. 이 예제에서는 가상의 호스트 이름 *ip-xxx-xxx-xxx-xxx.ec2.internal*의 EC2 인스턴스에서 실행 중인 Open LDAP 서버에 저장된 가상의 사용자, *presto*를 사용합니다. 사용자는 조직 단위(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`를 사용자 바인드 패턴으로 지정해야 합니다.

**참고**  
를 사용할 때를 실제 사용자 ID(UID)`${USER}`로 바꾸려면 Fn::Sub 함수를 사용해야 AWS CloudFormation합니다. 자세한 내용은 *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에 인정받으려는 사용자를 첫 번째 패턴과 대조한 다음 두 번째 패턴과 대조한 후에 또 그와 같은 과정을 반복하는 식으로 진행합니다. 예제는 [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>

`presto-config` 구성 분류를 사용하여 LDAP에 대한 Presto 속성을 설정합니다. `presto-config`의 형식과 콘텐츠는 Amazon EMR 릴리스 버전과 Presto 설치(PrestoDB 또는 Trino)에 따라 조금씩 다릅니다. 이 섹션의 뒷부분에서 구성 차이의 예를 제공합니다. 자세한 내용은 [애플리케이션 구성](emr-configure-apps.md) 단원을 참조하십시오.

다음 단계에서는 사용자가 JSON 데이터를 *MyPrestoConfig.json* 파일에 저장했다고 가정합니다. 콘솔을 사용하는 경우 클러스터를 생성할 때 파일을 참조할 수 있도록 파일을 Amazon S3의 안전한 위치에 업로드해야 합니다. 를 사용하는 경우 파일을 로컬에서 참조 AWS CLI할 수 있습니다.

**Example PrestoSQL(Trino)을 지원하는 Amazon EMR 6.1.0 이상**  
다음 예제에서는 [1단계: LDAP 서버에 대한 정보를 수집하고 서버 인증서를 Amazon S3로 복사](#emr-presto-ldap-server-prereq)의 LDAP 호스트 이름을 사용하여 바인딩을 위해 LDAP 서버에 인증합니다. 2가지 사용자 바인드 패턴을 지정하여 LDAP 서버의 `admins` OU 및 `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가지 사용자 바인드 패턴을 지정하여 LDAP 서버의 `admins` OU 및 `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은 익명 바인딩만을 지원하므로 그러한 항목은 생략됩니다. 또한 단일 바인드 패턴만 지정할 수 있습니다.  

```
[{
        "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>

클러스터를 생성할 때 Amazon EMR을 설치할 Presto와 기타 애플리케이션을 지정합니다. 또한 다음 예에서는 JSON 내의 구성 분류 속성을 참조하지만, 구성 분류 인라인을 지정할 수도 있습니다.

**Amazon EMR 관리 콘솔을 사용하여 LDAP 인증을 통해 Presto 클러스터를 생성하는 방법**

1. 새 Amazon EMR 콘솔로 이동하고 측면 탐색에서 **이전 콘솔로 전환**을 선택합니다. 이전 콘솔로 전환할 때 예상되는 사항에 대한 자세한 내용은 [이전 콘솔 사용](https://docs.aws.amazon.com/emr/latest/ManagementGuide/whats-new-in-console.html#console-opt-in)을 참조하세요.

1. **클러스터 생성** 및 **고급 옵션으로 이동**을 선택합니다.

1. 설치할 Amazon EMR용 다른 애플리케이션과 함께 **Presto**를 선택하고 **소프트웨어 구성**에서 사용할 Amazon EMR **릴리스**를 선택합니다. LDAP 인증은 Amazon EMR 5.10.0 이상에서만 지원됩니다.

1. **소프트웨어 설정 편집**에서 **S3로부터 JSON 로드**를 선택하고 [3단계: LDAP에 대한 Presto 속성을 통한 구성 JSON 생성](#emr-presto-ldap-prestoconfig)에서 생성한 JSON 구성 파일의 Amazon S3 위치를 입력한 후 **다음**을 선택합니다.

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 이상에서는 다음과 같은 유형의 장기 실행 쿼리를 거부하거나 경고하는 엄격한 모드 기능을 사용할 수 있습니다.
+ 파티셔닝된 열에 조건자가 없는 쿼리는 테이블에서 대량의 데이터를 스캔하게 됩니다.
+ 두 개의 대형 테이블 간 교차 조인이 있는 쿼리
+ 많은 행을 제한 없이 정렬하는 쿼리

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 Management Console**

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. 엄격한 모드의 구성 속성을 직접 지정하거나 Amazon S3에 JSON 파일을 업로드합니다. 선택적으로 메타스토어의 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 | 

# 단계적 서비스 해제 기능이 있는 자동 조정 사용
<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 자동 조정을 사용하면 서비스 해제 중인 노드에 새 작업이 예약되지 않도록 하는 동시에 종료 제한 시간에 도달하기 전에 이미 실행 중인 작업이 완료되도록 할 수 있습니다. 실행 중인 쿼리는 노드에 대해 서비스 해제가 수행되기 전에 실행을 완료합니다. 자동 조정은 인스턴스 플릿에서 지원되지 않습니다.

자동 조정 종료 요청을 받은 후 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 애플리케이션이 실행을 완료하면 서비스 해제 중으로 표시된 노드가 5분되는 시점에 종료됩니다.

**Example 단계적 서비스 해제가 있는 Presto 자동 조정 구성 예제**  
`graceful-shutdown-timeout` 값을 설정에 적절한 시간(분)으로 바꿉니다. 최대값이 없습니다. 다음 예제에서는 `1800`초(30분)의 제한 시간 값을 설정합니다.  

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

**제한 사항 **

PrestoDB 단계적 서비스 해제는 `http-server.http.enabled`가 `false`로 설정된 경우와 같이 HTTP 연결이 비활성화된 EMR 클러스터에서는 작동하지 않습니다. 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/lib/presto/plugin/hive-hadoop2/emrfs`에서 기존 `/usr/share/aws/emr/emrfs/conf/emrfs-site.xml` 파일에 대한 기호 링크를 생성합니다. 그런 다음, 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 configuration](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 설명서에서 [End user impersonation](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은 기본적으로 PrestoDB 및 Trino에 대해 Presto 코디네이터의 Presto 웹 인터페이스에서 포트 8889를 사용하도록 구성합니다. 포트를 변경하려면 `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 | 