

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

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

**Importante**  
O Presto, versão anterior do Trino, ainda está disponível para uso com o Amazon EMR. Porém, é altamente recomendável usar o Trino no futuro com o Amazon EMR. Observe também que o Trino e o Presto não podem ser executados ao mesmo tempo no mesmo cluster. Para obter mais informações, consulte [Trino](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-trino.html).

[O Presto é um mecanismo de consulta SQL rápido, projetado para consultas analíticas interativas em grandes conjuntos de dados de várias fontes. ](https://aws.amazon.com/big-data/what-is-presto/) Para obter mais informações, consulte o [Site do Presto](https://prestodb.io/). O Presto está incluído nas versões 5.0.0 e posteriores do Amazon EMR. As versões anteriores incluem o Presto como um aplicação em sandbox. Para obter mais informações, consulte [Versões de lançamento 4.x do Amazon EMR](emr-release-4x.md). As versões 6.1.0 e posteriores do Amazon EMR são compatíveis com o [Trino](https://trino.io/), além do Presto. Para obter mais informações, consulte [Instalação do PrestoDB](emr-presto-considerations.md#emr-prestodb-prestosql).

A tabela a seguir lista a versão do Presto incluída na versão mais recente da série 7.x do Amazon EMR, além dos componentes que o Amazon EMR instala com o Presto.

Para a versão dos componentes instalados com o Presto nesta versão, consulte Versões de componentes da [versão 7.12.0](emr-7120-release.md).


**Informações sobre a versão do Presto para o emr-7.12.0**  

| Rótulo de versão do Amazon EMR | Versão do Presto | Componentes instalados com o 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 | 

A tabela a seguir lista a versão do Presto incluída na versão mais recente da série 6.x do Amazon EMR, além dos componentes que o Amazon EMR instala com o Presto.

Para obter a versão dos componentes instalados com o Presto nessa versão, consulte [Release 6.15.0 Component Versions](emr-6150-release.md).


**Informações de versão do Presto para o emr-6.15.0**  

| Rótulo de versão do Amazon EMR | Versão do Presto | Componentes instalados com o 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 | 

A tabela a seguir lista a versão do Presto incluída na versão mais recente da série 5.x do Amazon EMR, além dos componentes que o Amazon EMR instala com o Presto.

Para obter a versão dos componentes instalados com o Presto nesse lançamento, consulte [Release 5.36.2 Component Versions](emr-5362-release.md).


**Informações de versão do Presto para o emr-5.36.2**  

| Rótulo de versão do Amazon EMR | Versão do Presto | Componentes instalados com o 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**
+ [

# Usando o Presto com o AWS Glue Data Catalog
](emr-presto-glue.md)
+ [

# Usar S3 Select Pushdown com o Presto para melhorar a performance
](emr-presto-s3select.md)
+ [

# Adicionar conectores de banco de dados
](presto-adding-db-connectors.md)
+ [

# Usando SSL/TLS e configurando o LDAPS com o Presto no Amazon EMR
](presto-ssl.md)
+ [

# Ativar o modo estrito do Presto
](presto-strict-mode.md)
+ [

# Lidar com a perda de instâncias spot no Presto
](presto-spot-loss.md)
+ [

# Usar a escalabilidade automática do Presto com desativação tranquila
](presto-graceful-autoscale.md)
+ [

# Considerações com o Presto no Amazon EMR
](emr-presto-considerations.md)
+ [

# Histórico de versões do Presto
](Presto-release-history.md)

# Usando o Presto com o AWS Glue Data Catalog
<a name="emr-presto-glue"></a>

Usando a versão 5.10.0 e posterior do Amazon EMR, você pode especificar o AWS Glue Data Catalog como o metastore padrão do Hive para o Presto. Recomendamos essa configuração quando você precisa de um metastore persistente ou de um metastore compartilhado por diferentes clusters, serviços, aplicações ou Contas da AWS.

AWS O Glue é um serviço de extração, transformação e carregamento (ETL) totalmente gerenciado que torna simples e econômico categorizar seus dados, limpá-los, enriquecê-los e movê-los de forma confiável entre vários armazenamentos de dados. O AWS Glue Data Catalog fornece um repositório unificado de metadados em uma variedade de fontes e formatos de dados, integrando-se ao Amazon EMR, bem como ao Amazon RDS, Amazon Redshift, Redshift Spectrum, Athena e qualquer aplicativo compatível com o metastore Apache Hive. AWS Os rastreadores do Glue podem inferir automaticamente o esquema dos dados de origem no Amazon S3 e armazenar os metadados associados no catálogo de dados. Para obter mais informações sobre o Catálogo de Dados, consulte [Preenchendo o Catálogo de Dados do AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/populate-data-catalog.html) no *Guia do Desenvolvedor do AWS Glue*.

Taxas separadas se aplicam ao AWS Glue. Há uma taxa mensal para armazenar e acessar os metadados no Catálogo de Dados, uma taxa horária cobrada por minuto pelas tarefas do AWS Glue ETL e pelo tempo de execução do rastreador, e uma taxa horária cobrada por minuto para cada endpoint de desenvolvimento provisionado. O Catálogo de Dados permite o armazenamento de até um milhão de objetos gratuitamente. Se você armazenar mais de um milhão de objetos, será cobrado uma taxa de USD\$11 por cada 100.000 objetos em mais de um milhão. Um objeto no Catálogo de Dados é uma tabela, uma partição ou um banco de dados. Para obter mais informações, consulte [Definição de preço do Glue](https://aws.amazon.com/glue/pricing).

**Importante**  
Se você criou tabelas usando o Amazon Athena ou o Amazon Redshift Spectrum antes de 14 de agosto de 2017, bancos de dados e tabelas são armazenados em um catálogo gerenciado pelo Athena, que é separado do Glue Data Catalog. AWS Para integrar o Amazon EMR a essas tabelas, você deve fazer o upgrade para o AWS Glue Data Catalog. Para obter mais informações, consulte [Atualização para o catálogo de dados AWS Glue no Guia](https://docs.aws.amazon.com/athena/latest/ug/glue-upgrade.html) do usuário do *Amazon Athena*.

## Especificando o AWS Glue Data Catalog como metastore
<a name="emr-presto-glue-configure"></a>

Você pode especificar o AWS Glue Data Catalog como metastore usando a API Console de gerenciamento da AWS AWS CLI, ou Amazon EMR. Ao usar a CLI ou a API, você usa a classificação de configuração do Presto para especificar o Catálogo de Dados. Além disso, com o Amazon EMR 5.16.0 e versões posteriores, você pode usar a classificação de configuração para especificar um catálogo de dados em outro. Conta da AWS Ao usar o console, você pode especificar o Catálogo de Dados usando **Opções avançadas** ou **Opções rápidas**.

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

**Para especificar o AWS Glue Data Catalog como o metastore do Hive com o novo console**

1. [Faça login no e abra Console de gerenciamento da AWS o console do Amazon EMR em https://console.aws.amazon.com /emr.](https://console.aws.amazon.com/emr)

1. Em **EMR no EC2**, no painel de navegação esquerdo, escolha **Clusters** e depois **Criar cluster**.

1. Em **Pacote de aplicações**, escolha **Presto**.

1. Em **Configurações do Catálogo de Dados do AWS Glue**, marque a caixa de seleção **Usar para metadados de tabelas do Presto**.

1. Escolha qualquer outra opção que se aplique ao cluster. 

1. Para iniciar o cluster, escolha **Criar cluster**.

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

**Para especificar o AWS Glue Data Catalog como o metastore padrão do Hive usando o AWS CLI**

Para obter exemplos de como especificar as classificações de configuração a seguir ao criar um cluster, consulte [Configurar aplicações](emr-configure-apps.md).

**Versões 5.16.0 e posteriores do Amazon EMR**
+ Defina a propriedade `hive.metastore` como `glue`, conforme mostrado no exemplo JSON a seguir.

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

  Para especificar um catálogo de dados em outro Conta da AWS, adicione a `hive.metastore.glue.catalogid` propriedade conforme mostrado no exemplo de JSON a seguir. Substitua `acct-id` pela conta da AWS do Catálogo de Dados. O uso de um Catálogo de Dados em outra Conta da AWS não está disponível nas versões 5.15.0 e anteriores do Amazon EMR.

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

  **Amazon EMR 5.10.0 a 5.15.0**

  Defina a propriedade `hive.metastore.glue.datacatalog.enabled` como `true`, conforme mostrado no exemplo JSON a seguir:

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

  **Versões 6.1.0 e posteriores do Amazon EMR usando PrestoSQL (Trino)**

  Desde a versão 6.1.0 do EMR, o PrestoSQL também é compatível com o Glue como o metastore padrão do Hive. Use a classificação de configuração `prestosql-connector-hive` e defina a propriedade `hive.metastore` como `glue`, conforme mostrado no exemplo de JSON a seguir.

  As versões 6.4.0 e posteriores do Amazon EMR usam o novo nome Trino em vez de PrestoSQL. Se você usa o Trino, substitua `prestosql-connector-hive` na seguinte classificação de configuração por `trino-connector-hive`.

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

Para alternar entre metastores em um cluster de execução prolongada, você pode definir esses valores manualmente, conforme apropriado para a sua versão, conectando-se ao nó principal, editando os valores de propriedade diretamente no arquivo `/etc/presto/conf/catalog/hive.properties` e reiniciando o servidor Presto (`sudo restart presto-server`). Se você usar esse método com o as versões 5.15.0 e anteriores do Amazon EMR, certifique-se de que `hive.table-statistics-enabled` esteja definido como `false`. Essa configuração não é necessária ao usar versões 5.16.0 e posteriores. No entanto, as estatísticas de tabela e de partição não são compatíveis.

------

## permissões do IAM
<a name="emr-hive-glue-permissions"></a>

O perfil da instância EC2 de um cluster deve ter permissões do IAM para ações do AWS Glue. Além disso, se você habilitar a criptografia para objetos do AWS Glue Data Catalog, a função também deverá ter permissão para criptografar, descriptografar e gerar o AWS KMS key usado para criptografia.

### Permissões para ações do AWS Glue
<a name="emr-hive-glue-permissions-actions"></a>

Se você usar o perfil de instância padrão do EC2 para o Amazon EMR, nenhuma ação será necessária. A política `AmazonElasticMapReduceforEC2Role` gerenciada anexada ao `EMR_EC2_DefaultRole` permite todas as ações necessárias do AWS Glue. No entanto, se você especificar um perfil e permissões de instância EC2 personalizados, deverá configurar as ações apropriadas do AWS Glue. Use a política gerenciada `AmazonElasticMapReduceforEC2Role` como ponto de partida. Para obter mais informações, consulte [Perfil de serviço para instâncias do EC2 de cluster (perfil de instância do EC2)](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-iam-role-for-ec2.html) no *Guia de gerenciamento do Amazon EMR*.

### Permissões para criptografar e descriptografar o Glue Data Catalog AWS
<a name="emr-hive-glue-permissions-encrypt"></a>

O perfil de instância precisa de permissão para criptografar e descriptografar dados usando a chave. Você *não* precisa configurar essas permissões se as duas instruções a seguir se aplicarem:
+ Você ativa a criptografia para objetos do AWS Glue Data Catalog usando chaves gerenciadas para o AWS Glue.
+ Você usa um cluster que está no mesmo catálogo Conta da AWS de dados do AWS Glue.

Caso contrário, você deverá adicionar a seguinte instrução à política de permissões anexada ao perfil de instância do EC2. 

Para obter mais informações sobre a criptografia do AWS Glue Data Catalog, consulte [Criptografando seu catálogo de dados](https://docs.aws.amazon.com/glue/latest/dg/encrypt-glue-data-catalog.html) no *AWS Glue Developer Guide*.

### Permissões baseadas em recursos
<a name="emr-hive-glue-permissions-resource"></a>

Se você usa o AWS Glue em conjunto com o Hive, o Spark ou o Presto no Amazon EMR AWS , o Glue oferece suporte a políticas baseadas em recursos para controlar o acesso aos recursos do catálogo de dados. Esses recursos incluem bancos de dados, tabelas, conexões e funções definidas pelo usuário. Para obter mais informações, consulte [Políticas baseadas em recursos no AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/glue-resource-policies.html) no *Guia do desenvolvedor do AWS Glue*.

Ao usar políticas baseadas em recursos para limitar o acesso ao AWS Glue de dentro do Amazon EMR, o principal que você especifica na política de permissões deve ser o ARN da função associado ao perfil de instância do EC2 que é especificado quando um cluster é criado. Por exemplo, para uma política baseada em recursos anexada a um catálogo, você pode especificar o ARN da função para a função de serviço padrão para instâncias EC2 de cluster, *EMR\$1EC2\$1DefaultRole* como a`Principal`, usando o formato mostrado no exemplo a seguir:

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

*acct-id*Pode ser diferente do ID da conta AWS Glue. Isso possibilita o acesso de clusters do EMR em outras contas. Você pode especificar várias entidades principais, cada uma de uma conta diferente.

## Considerações ao usar o AWS Glue Data Catalog
<a name="emr-presto-glue-knownissues"></a>

Considere os seguintes itens ao usar o AWS Glue Data Catalog como metastore com o Presto:
+ Não há suporte para renomear tabelas de dentro do AWS Glue.
+ Quando você cria uma tabela do Hive sem especificar um `LOCATION`, os dados da tabela são armazenados no local especificado pela propriedade `hive.metastore.warehouse.dir`. Por padrão, esse é um local no HDFS. Se outro cluster precisar acessar a tabela, ele apresentará falha, a menos que tenha permissões adequadas para o cluster que criou a tabela. Além disso, como o armazenamento do HDFS é transitório, se o cluster for encerrado, os dados da tabela serão perdidos e a tabela precisará ser recriada. Recomendamos que você especifique a `LOCATION` no Amazon S3 ao criar uma tabela do Hive usando o Glue. AWS Como alternativa, você pode usar a classificação de configuração `hive-site` para especificar um local no Amazon S3 para `hive.metastore.warehouse.dir`, que se aplica a todas as tabelas do Hive. Se uma tabela for criada em um local do HDFS e o cluster que a criou ainda estiver em execução, você poderá atualizar o local da tabela para o Amazon S3 a partir AWS do Glue. Para obter mais informações, consulte Como [trabalhar com tabelas no console do AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/console-tables.html) no *Guia do desenvolvedor do AWS Glue*. 
+ Valores de partição contendo aspas e apóstrofos não são compatíveis, por exemplo, `PARTITION (owner="Doe's").`
+ [As estatísticas de coluna](https://cwiki.apache.org/confluence/display/Hive/StatsDev#StatsDev-ColumnStatistics) são têm suporte para o emr-5.31.0 e versões posteriores.
+ O uso da [autorização do Hive](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Authorization) não é compatível. Como alternativa, considere usar as [Políticas baseadas em recursos do AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/glue-resource-policies.html). Para obter mais informações, consulte [Usar políticas baseadas em recursos para o Amazon EMR Access to AWS Glue](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-iam-roles-glue.html) Data Catalog.

# Usar S3 Select Pushdown com o Presto para melhorar a performance
<a name="emr-presto-s3select"></a>

**Importante**  
O Amazon S3 Select não está mais disponível para novos clientes. Os clientes existentes do Amazon S3 Select podem continuar usando o recurso normalmente. [Saiba mais](https://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/) 

Com as versões 5.18.0 e posteriores do Amazon EMR, você pode usar [S3 Select](https://aws.amazon.com/blogs/aws/s3-glacier-select/) Pushdown com Presto no Amazon EMR. Esse atributo permite que o Presto “empurre” o trabalho de computação de operações de projeção (por exemplo, `SELECT`) e operações de predicado (por exemplo, `WHERE`) para o Amazon S3. Isso permite que as consultas recuperem apenas os dados necessários do Amazon S3, o que pode melhorar a performance e reduzir a quantidade de dados transferidos entre o Amazon EMR e o Amazon S3 em algumas aplicações.

## O S3 Select Pushdown é adequado para minha aplicação?
<a name="emr-presto-s3select-apps"></a>

Recomendamos que você avalie seus aplicativos com e sem o S3 Selecione Pushdown para ver se o uso pode ser adequado para o aplicativo.

Use as seguintes diretrizes para determinar se o seu aplicativo é adequado para o uso do S3 Select:
+ Sua consulta filtra mais de metade do conjunto de dados original.
+ Os predicados do filtro de consulta usam colunas que têm um tipo de dados compatível com o Presto e o S3 Select. Os tipos de dados real e duplo e o carimbo de data e hora não têm suporte no S3 Select Pushdown. É recomendável usar o tipo de dados decimal para dados numéricos. Para obter mais informações sobre tipos de dados compatíveis com o S3 Select, consulte [Tipos de dados](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-glacier-select-sql-reference-data-types.html) no *Guia do usuário do Amazon Simple Storage Service*.
+ Sua conexão de rede entre o Amazon S3 e o cluster do Amazon EMR tem boa velocidade de transferência e largura de banda disponível. O Amazon S3 não compacta respostas HTTP. Portanto, é provável que o tamanho da resposta aumente para arquivos de entrada compactados.

## Considerações e limitações
<a name="emr-presto-s3select-considerations"></a>
+ Somente objetos armazenados em formato CSV têm suporte. Os objetos podem ser descompactados ou compactados com gzip ou bzip2.
+ A propriedade `AllowQuotedRecordDelimiters` não é compatível. Se essa propriedade for especificada, a consulta falhará.
+ A criptografia do lado do servidor do Amazon S3 com chaves de criptografia fornecidas pelo cliente (SSE-C) e a criptografia do lado do cliente não são compatíveis. 
+ O S3 Select Pushdown não é um substituto para o uso de formatos de arquivo colunar ou compactado, como ORC ou Parquet.
+ O Amazon S3 Select não oferece suporte a consultas entre regiões para o Presto e o Trino.

## Habilitar o S3 Select Pushdown com o PrestoDB ou Trino
<a name="emr-presto-s3select-specify"></a>

Para habilitar o S3 Select Pushdown para Presto no Amazon EMR, use a classificação de configuração `presto-connector-hive` para definir `hive.s3select-pushdown.enabled` como `true`, conforme mostrado no exemplo a seguir. Para obter mais informações, consulte [Configurar aplicações](emr-configure-apps.md). O valor hive.s3select-pushdown.max-connections também deve ser definido. Para a maioria dos aplicativos, a configuração padrão de `500` deve ser adequada. Para obter mais informações, consulte [Noções básicas e ajuste do hive.s3select-pushdown.max-connections](#emr-presto-s3select-max) abaixo.

No PrestoSQL nas versões 6.1.0 a 6.3.0 do EMR, substitua `presto-connector-hive` no exemplo abaixo por `prestosql-connector-hive`.

As versões 6.4.0 e posteriores do Amazon EMR usam o novo nome Trino em vez de PrestoSQL. Se você usa o Trino, substitua `presto-connector-hive` no exemplo abaixo por `trino-connector-hive`

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

### Noções básicas e ajuste do hive.s3select-pushdown.max-connections
<a name="emr-presto-s3select-max"></a>

Por padrão, o Presto usa o EMRFS como seu sistema de arquivos. A configuração `fs.s3.maxConnections` na classificação de configuração `emrfs-site` especifica o máximo permitido de conexões de cliente com o Amazon S3 por meio do EMRFS para Presto. Por padrão, é 500. O S3 Select Pushdown ignora o EMRFS ao acessar o Amazon S3 para operações de predicado. Nesse caso, o valor de `hive.s3select-pushdown.max-connections` determina o número máximo de conexões de cliente permitidas para essas operações de nós do operador. No entanto, quaisquer solicitações para o Amazon S3 que o Presto inicia que não são enviadas, como operações GET, continuam a ser regidas pelo valor de `fs.s3.maxConnections`.

Se o seu aplicativo tiver o erro "Tempo limite atingido em espera para conexão do grupo", aumente o valor de `hive.s3select-pushdown.max-connections` e `fs.s3.maxConnections`.

# Adicionar conectores de banco de dados
<a name="presto-adding-db-connectors"></a>

Você pode usar classificações de configuração para configurar as propriedades do conector JDBC ao criar um cluster. As classificações de configuração começam com `presto-connector`, por exemplo, `presto-connector-postgresql`. As classificações de configuração disponíveis dependem da versão do Amazon EMR. Para obter as classificações de configuração disponíveis com a versão mais recente, consulte [Classificações de configuração 5.36.2](emr-5362-release.md#emr-5362-class) para Amazon EMR 5.36.2. Se você estiver usando uma versão diferente do Amazon EMR, consulte [Versões de lançamento 5.x do Amazon EMR](emr-release-5x.md) para conhecer as classificações de configuração. Para obter mais informações sobre as propriedades que podem ser configuradas com cada conector, consulte [https://prestodb.io/docs/current/connector.html](https://prestodb.io/docs/current/connector.html). 

**Example — configurar um cluster com o conector JDBC do PostgreSQL**  
Para iniciar um cluster com o conector do PostgreSQL instalado e configurado, crie um arquivo JSON que especifique a classificação de configuração, por exemplo, `myConfig.json` com o seguinte conteúdo e salve-o localmente.  
Substitua as propriedades da conexão, conforme apropriado para sua configuração e como mostrado no tópico [Conectos do PostgreSQL](https://prestodb.io/docs/current/connector/postgresql.html) na documentação do Presto.  

```
[
  {
    "Classification": "presto-connector-postgresql",
    "Properties": {
      "connection-url": "jdbc:postgresql://example.net:5432/database",
      "connection-user": "MYUSER",
      "connection-password": "MYPASS"
    },
    "Configurations": []
  }
]
```
Quando você cria o cluster, referencie o caminho para o arquivo JSON usando a opção `--configurations`, conforme mostrado no exemplo a seguir, em que `myConfig.json` está no mesmo diretório onde você executa o comando:  

```
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
```

# Usando SSL/TLS e configurando o LDAPS com o Presto no Amazon EMR
<a name="presto-ssl"></a>

Com a versão 5.6.0 e posterior do Amazon EMR, você pode ajudar a [proteger SSL/TLS a comunicação interna entre](https://prestodb.io/docs/current/security/internal-communication.html) os nós do Presto. Você pode fazer isso definindo uma configuração de segurança para criptografia em trânsito. Para obter mais informações, consulte [Opções de criptografia](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-data-encryption-options.html) e [Usar configurações de segurança para definir a segurança do cluster](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-security-configurations.html) no *Guia de gerenciamento do Amazon EMR*.

Quando você usa uma configuração de segurança com criptografia em trânsito, o Amazon EMR faz o seguinte para o Presto:
+ Distribui os artefatos ou certificados de criptografia que você especifica para a criptografia em trânsito em todo o cluster do Presto. Para obter mais informações, consulte [Fornecer certificados para criptografia de dados em trânsito](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-encryption-enable.html#emr-encryption-certificates).
+ Define as seguintes propriedades usando a classificação de configuração `presto-config`, que corresponde ao arquivo `config.properties` para o Presto:
  + Define `http-server.http.enabled` como `false` em todos os nós, o que desabilita HTTP em favor de HTTPS. Isso exige que você forneça certificados que funcionem para DNS público e privado quando definir a configuração de segurança para criptografia em trânsito. Uma maneira de fazer isso é usar certificados SAN (Subject Alternative Name), compatíveis com vários domínios.
  + Define os valores `http-server.https.*`. Para obter detalhes da configuração, consulte [Autenticação LDAP](https://prestodb.io/docs/current/security/ldap.html) na documentação do Presto.

Além disso, com as versões 5.10.0 e posteriores do Amazon EMR, você pode configurar a [autenticação LDAP](https://prestodb.io/docs/current/security/ldap.html) para conexões de clientes ao coordenador do Presto usando HTTPS. Essa configuração usa um LDAP seguro (LDAPS). O TLS deve ser habilitado no servidor LDAP, e o cluster do Presto deve usar uma configuração de segurança com a criptografia de dados em trânsito habilitada. Configurações adicionais são necessárias. As opções de configuração são diferentes de acordo com a versão do Amazon EMR que você usa. Para obter mais informações, consulte [Usar autenticação LDAP para o Presto no Amazon EMR](emr-presto-ldap.md).

O Presto no Amazon EMR usa a porta 8446 para HTTPS interno por padrão. A porta usada para comunicação interna deve ser a mesma usada para o acesso HTTPS de clientes ao coordenador do Presto. A propriedade `http-server.https.port` na classificação de configuração `presto-config` especifica a porta.

# Usar autenticação LDAP para o Presto no Amazon EMR
<a name="emr-presto-ldap"></a>

Siga as etapas nesta seção para configurar LDAP. Consulte cada etapa para obter exemplos e links para mais informações.

**Topics**
+ [

## Etapa 1: coletar informações sobre o servidor LDAP e copiar o certificado do servidor para o Amazon S3
](#emr-presto-ldap-server-prereq)
+ [

## Etapa 2: definir uma configuração de segurança
](#emr-presto-ldap-seccfg)
+ [

## Etapa 3: criar uma configuração JSON com propriedades do Presto para LDAP
](#emr-presto-ldap-prestoconfig)
+ [

## Etapa 4: criar o script para copiar o certificado do servidor LDAP e carregá-lo no Amazon S3
](#emr-presto-ldap-servercert)
+ [

## Etapa 5: criar um cluster
](#emr-presto-ldap-createcluster)

## Etapa 1: coletar informações sobre o servidor LDAP e copiar o certificado do servidor para o Amazon S3
<a name="emr-presto-ldap-server-prereq"></a>

Você precisará dos itens e informações na seção a seguir do seu servidor LDAP para configurar a autenticação LDAP.

### O endereço IP ou o nome do host do servidor LDAP
<a name="w2aac60c39c13b7b5"></a>

O coordenador do Presto no nó principal do Amazon EMR deve ser capaz de acessar o servidor LDAP no endereço IP ou nome de host especificado. Por padrão, o Presto se comunica com o servidor LDAP usando LDAPS pela porta 636. Se sua implementação do LDAP exige uma porta personalizada, você pode especificá-la usando a propriedade `ldap.url` com as versões 5.16.0 ou posteriores do Amazon EMR ou usando `authentication.ldap.url` com versões anteriores. Substitua a porta personalizada em `636`, conforme mostrado nos exemplos da classificação de configuração `presto-config` em [Etapa 3: criar uma configuração JSON com propriedades do Presto para LDAP](#emr-presto-ldap-prestoconfig). Verifique se todos os firewalls e grupos de segurança permitem o tráfego de entrada e saída na porta 636 (ou na porta personalizada) e também na porta 8446 (ou na porta personalizada), que é usada para comunicações do cluster interno.

### O certificado do servidor LDAP
<a name="w2aac60c39c13b7b7"></a>

Você deve carregar o arquivo do certificado em um local seguro no Amazon S3. Para obter mais informações, consulte [Como carregar arquivos e pastas em um bucket do S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html) no *Guia do usuário do Amazon Simple Storage Service*. Crie uma ação de bootstrap que copie esse certificado do Amazon S3 em cada nó do cluster quando esse cluster é iniciado. Em [Etapa 4: criar o script para copiar o certificado do servidor LDAP e carregá-lo no Amazon S3](#emr-presto-ldap-servercert). O certificado de exemplo é*s3://amzn-s3-demo-bucket/ldap\$1server.crt*.

### As configurações do servidor LDAP para associação anônima
<a name="w2aac60c39c13b7b9"></a>

Se a associação anônima estiver desabilitada no PrestoDB, você precisará do ID de usuário (UID) e da senha de uma conta com permissões para associação ao servidor LDAP, para que o servidor PrestoDB possa estabelecer uma conexão. Especifique o UID e a senha usando as propriedades `internal-communication.authentication.ldap.user` e `internal-communication.authentication.ldap.password` na classificação de configuração `presto-config`. O Amazon EMR 5.10.0 não é compatível com essas configurações, portanto, a associação anônima deve ser compatível com o servidor LDAP quando você usa esta versão.

Observe que o Trino não exige a configuração de vinculação anônima.

**Para obter o status da associação anônima no servidor LDAP**
+ Use o comando [ldapwhoami](https://linux.die.net/man/1/ldapwhoami) do cliente Linux, conforme mostrado no exemplo a seguir:

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

  Se a associação anônima não for permitida, o comando retornará o seguinte:

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

**Para verificar se uma conta tem as permissões para um servidor LDAP que usa autenticação simples**
+ Use o comando [ldapwhoami](https://linux.die.net/man/1/ldapwhoami) do cliente Linux, conforme mostrado no exemplo a seguir. O exemplo usa um usuário fictício,*presto*, armazenado em um servidor Open LDAP executado em uma instância EC2 com o nome de host fictício. *ip-xxx-xxx-xxx-xxx.ec2.internal* O usuário está associado à unidade organizacional (OU) *admins* e à senha*123456*:

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

  Se a conta for válida e tiver as permissões adequadas, o comando retornará:

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

As configurações de exemplo em [Etapa 3: criar uma configuração JSON com propriedades do Presto para LDAP](#emr-presto-ldap-prestoconfig) incluem essa conta para maior clareza, com exceção do exemplo de 5.10.0, em que ela não é compatível. Se o servidor LDAP usar associação anônima, remova os pares `internal-communication.authentication.ldap.user` e. `internal-communication.authentication.ldap.password` name/value 

### O nome diferenciado (DN) LDAP para usuários do Presto
<a name="w2aac60c39c13b7c11"></a>

Ao especificar a configuração LDAP para o Presto, você especifica um padrão de associação que consiste `${USER}` em uma unidade organizacional (OU) e componentes de domínio adicionais (). DCs O Presto substitui `${USER}` pelo ID de usuário (UID) real de cada usuário durante a autenticação de senha para corresponder ao nome diferenciado (DN) que esse padrão de associação especifica. Você precisa do OUs que os usuários qualificados pertencem e deles DCs. Por exemplo, para permitir que os usuários da OU `admins` no domínio `corp.example.com` autentiquem para o Presto, especifique `${USER},ou=admins,dc=corp,dc=example,dc=com` como o padrão de associação do usuário.

**nota**  
Ao usar AWS CloudFormation, você precisa usar a função Fn: :Sub para substituí-la pela `${USER}` ID de usuário (UID) real. Para obter mais informações, consulte o tópico [Fn::Sub](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-sub.html) no *Guia do usuário do AWS CloudFormation *.

Ao usar o Amazon EMR 5.10.0, você só pode especificar um padrão desse tipo. Ao usar as versões 5.11.0 ou posteriores do Amazon EMR, você pode especificar vários padrões separados por dois-pontos (:). Os usuários que tentam autenticar para o Presto são comparados com o primeiro padrão, o segundo, e assim por diante. Para ver um exemplo, consulte [Etapa 3: criar uma configuração JSON com propriedades do Presto para LDAP](#emr-presto-ldap-prestoconfig).

## Etapa 2: definir uma configuração de segurança
<a name="emr-presto-ldap-seccfg"></a>

Crie uma configuração de segurança com a criptografia em trânsito habilitada. Para obter mais informações, consulte [Criar uma configuração de segurança](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-create-security-configuration.html) no *Guia de gerenciamento do Amazon EMR*. Os artefatos de criptografia que você fornece ao configurar a criptografia em trânsito são usados para criptografar a comunicação interna entre os nós Presto. Para obter mais informações, consulte [Fornecer certificados para criptografia de dados em trânsito](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-encryption-enable.html#emr-encryption-certificates). O certificado do servidor LDAP é usado para autenticar conexões de clientes ao servidor Presto.

## Etapa 3: criar uma configuração JSON com propriedades do Presto para LDAP
<a name="emr-presto-ldap-prestoconfig"></a>

Você pode usar a classificação de configuração `presto-config` para definir as propriedades do Presto para LDAP. O formato e o conteúdo de `presto-config` são ligeiramente diferentes, dependendo da versão do Amazon EMR e da instalação do Presto (PrestoDB ou Trino). Exemplos de diferenças de configuração serão fornecidos posteriormente nesta seção. Para obter mais informações, consulte [Configurar aplicações](emr-configure-apps.md).

As etapas a seguir pressupõem que você salve os dados JSON em um arquivo,*MyPrestoConfig.json*. Se você usa o console, carregue o arquivo em um local seguro no Amazon S3 para poder fazer referência a ele quando criar o cluster. Se você usar o AWS CLI, poderá referenciar o arquivo localmente.

**Example Versões 6.1.0 e posteriores do Amazon EMR com PrestoSQL (Trino)**  
O exemplo a seguir usa o nome de host LDAP de [Etapa 1: coletar informações sobre o servidor LDAP e copiar o certificado do servidor para o Amazon S3](#emr-presto-ldap-server-prereq) para autenticação no servidor LDAP para associação. Dois padrões de associação do usuário são especificados, o que indica que os usuários dentro da unidade organizacional (UO) `admins` e da UO `datascientists` no servidor LDAP estão qualificados para autenticação ao servidor Trino como usuários. Os padrões de associação são separados com uma vírgula (`:`).  
As versões 6.4.0 e posteriores do Amazon EMR usam o novo nome Trino em vez de PrestoSQL. Se você usa o Trino, substitua *`prestosql-config`* na seguinte classificação de configuração por `trino-config` e `prestosql-password-authenticator` por `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 Versões 5.16.0 e posteriores do Amazon EMR**  
O exemplo a seguir usa o ID de usuário, a senha e o nome de host LDAP de [Etapa 1: coletar informações sobre o servidor LDAP e copiar o certificado do servidor para o Amazon S3](#emr-presto-ldap-server-prereq) para autenticar ao servidor LDAP para associação. Dois padrões de associação do usuário são especificados, o que indica que os usuários dentro da OU `admins` e da OU `datascientists` no servidor LDAP estão qualificados para autenticação ao servidor Presto como usuários. Os padrões de associação são separados com uma vírgula (`:`).  

```
[{
        "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 a 5.15.0**  
O formato da classificação de configuração `presto-config `é um pouco diferente para essas versões. O exemplo a seguir especifica os mesmos parâmetros que o exemplo anterior.  

```
[{
        "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**  
O Amazon EMR 5.10.0 só é compatível com associação anônima. Portanto, essas entradas são omitidas. Além disso, apenas um único padrão de associação pode ser especificado.  

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

## Etapa 4: criar o script para copiar o certificado do servidor LDAP e carregá-lo no Amazon S3
<a name="emr-presto-ldap-servercert"></a>

Crie um script que copie o arquivo do certificado em cada dó no cluster e o adicione ao repositório de chaves. Crie o script usando um editor de texto, salve-o e carregue-o no Amazon S3. Em[Etapa 5: criar um cluster](#emr-presto-ldap-createcluster), o arquivo de script é referenciado como*s3://amzn-s3-demo-bucket/LoadLDAPCert.sh*.

O script de exemplo a seguir usa a senha padrão do keystore,*changeit*. Recomendamos que você se conecte ao nó principal após criar o cluster e alterar a senha do repositório de chaves usando o comando 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
```



## Etapa 5: criar um cluster
<a name="emr-presto-ldap-createcluster"></a>

Ao criar o cluster, especifique o Presto e outras aplicações que você deseja que o Amazon EMR instale. Os exemplos a seguir também fazem referência às propriedades da classificação de configuração em um JSON, mas você também pode especificar a classificação de configuração em linha.

**Criar um cluster do Presto com autenticação LDAP usando o console do Amazon EMR**

1. Navegue até o novo console do Amazon EMR e selecione **Alternar para o console antigo** na navegação lateral. Para obter mais informações sobre o que esperar ao alternar para o console antigo, consulte [Usar o console antigo](https://docs.aws.amazon.com/emr/latest/ManagementGuide/whats-new-in-console.html#console-opt-in).

1. Escolha **Create cluster (Criar cluster)**, **Go to advanced options (Ir para opções avançadas)**.

1. Selecione **Presto** e outras aplicações para o Amazon EMR instalar e, em **Configuração de software**, selecione a **Versão** do Amazon EMR a ser usada. A autenticação LDAP só é compatível com as versões 5.10.0 e posteriores do Amazon EMR.

1. Em **Editar configurações de software**, selecione **Carregar JSON do S3**, insira o local no Amazon S3 do arquivo de configuração JSON que você criou em [Etapa 3: criar uma configuração JSON com propriedades do Presto para LDAP](#emr-presto-ldap-prestoconfig) e, em seguida, selecione **Próximo**.

1. Configure os recursos de hardware e rede do cluster e, em seguida, selecione **Next (Próximo)**.

1. Selecione **Bootstrap Actions (Ações de bootstrap)**. Em **Add bootstrap action (Adicionar ação de bootstrap)**, selecione **Custom action (Personalizar ação)** e, em seguida, selecione **Configure and add (Configurar e adicionar)**.

1. **Insira um **nome** para a ação de bootstrap, insira a **localização do script** que você criou[Etapa 4: criar o script para copiar o certificado do servidor LDAP e carregá-lo no Amazon S3](#emr-presto-ldap-servercert), por exemplo, **s3://amzn-s3-demo-bucket/Load LDAPCert .sh**, e escolha Adicionar.**

1. Em **General Options (Opções gerais)**, **Tags** e **Additional Options (Opções adicionais)**, selecione as configurações adequadas para o seu aplicativo e, em seguida, selecione **Next (Próximo)**.

1. Selecione **Authentication and encryption (Autenticação e criptografia)** e, em seguida, selecione a **Security configuration (Configuração de segurança)** que você criou em [Etapa 2: definir uma configuração de segurança](#emr-presto-ldap-seccfg).

1. Selecione outras opções de segurança conforme adequado para o seu aplicativo e, em seguida, selecione **Create cluster (Criar cluster)**.

**Para criar um cluster Presto com autenticação LDAP usando o AWS CLI**
+ Use o comando `aws emr create-cluster`. No mínimo, especifique o aplicativo do Presto e também a classificação de configuração, o script de bootstrap e a configuração de segurança do Presto que você criou nas etapas anteriores. O exemplo a seguir faz referência ao arquivo de configuração como um arquivo JSON salvo no mesmo diretório em que você executa o comando. Por outro lado, o script de bootstrap deve ser salvo no Amazon S3. O exemplo a seguir usa `s3://amzn-s3-demo-bucket/LoadLDAPCert.sh`.
**nota**  
Os caracteres de continuação de linha do Linux (\$1) são incluídos para facilitar a leitura. Eles podem ser removidos ou usados ​​em comandos do Linux. No Windows, remova-os ou substitua-os por um sinal de interpolação (^).

  ```
  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
  ```

# Ativar o modo estrito do Presto
<a name="presto-strict-mode"></a>

Em determinadas situações, consultas de execução prolongada podem gerar altos custos e fazer com que o Amazon EMR use mais recursos de cluster. Isso retira recursos de outras workloads do cluster. Com as versões 6.8 e posteriores do Amazon EMR, você pode usar um atributo de modo estrito que rejeita ou avisa sobre os seguintes tipos de consultas de execução prolongada:
+ Consultas sem predicados nas colunas particionadas que resultam em verificações de tabelas de grandes quantidades de dados
+ Consultas com junções cruzadas entre duas tabelas grandes
+ Consultas que classificam um grande número de linhas sem limite

Depois que o Presto otimiza por completo o plano de consulta, o modo estrito é executado. Para usar e personalizar o modo estrito de acordo com suas necessidades de consulta, configure o Presto das maneiras a seguir.


**Configurações do Presto para modo estrito**  

| Configuração | Description | Padrão | 
| --- | --- | --- | 
| strict-mode-enabled | Ativa e desativa o modo estrito. Um valor de true indica que o modo estrito está ativado. | false | 
| strict-mode-fail-query | Rejeita consultas se o modo estrito detecta prováveis consultas de execução prolongada. No caso de false, o Amazon EMR só emite um aviso.  | false | 
| strict-mode-restrictions | Especifica as restrições a serem aplicadas quando o modo estrito está ativado. O modo estrito é compatível com as seguintes restrições: MANDATORY\$1PARTITION\$1PREDICATE, DISALLOW\$1CROSS\$1JOIN e LIMITED\$1SORT. |  MANDATORY\$1PARTITION\$1PREDICATE,DISALLOW\$1CROSS\$1JOIN, LIMITED\$1SORT  | 

Para testar o modo estrito, você pode substituir essas configurações ou defini-las como propriedades da sessão ao usar o cliente do Presto. 

**Para definir a configuração na criação do cluster com o Console de gerenciamento da AWS**

1. Escolha **Criar cluster** e selecione Amazon EMR versão 6.8.0 e Presto ou Trino. Para obter mais informações, consulte [Instalar PrestoDB e Trino](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-presto-considerations.html#emr-prestodb-prestosql). 

1. Especifique as propriedades de configuração para o modo estrito diretamente ou carregue um arquivo JSON para o Amazon S3. Opcionalmente, selecione o catálogo de dados AWS Glue para sua metastore. Especifique a VPC, as sub-redes, as ações de bootstrap, o par de chaves e o grupo de segurança. Para criar o cluster, escolha **Criar cluster**. 

1. Faça login no nó primário do cluster e execute `presto-cli` ou `trino-cli`. 

1. Envie suas consultas. O modo estrito valida cada consulta e determina se ela é de execução prolongada. Dependendo da configuração de `strict-mode-fail-query`, o Amazon EMR rejeita a consulta ou emite um aviso. 

1. Ao concluir as consultas, encerre o cluster e exclua seus recursos. 

**Para definir a configuração em um cluster em execução com o AWS CLI**

1. Faça login no nó primário do seu cluster com o AWS CLI e execute `presto-cli` ou`trino-cli`.

1. Execute os comandos a seguir com os valores desejados. 

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

## Considerações
<a name="presto-strict-mode-considerations"></a>

Quando usar o modo estrito, considere os seguintes pontos: 
+ Em alguns casos, o modo estrito pode rejeitar consultas de execução curta que não consomem muitos recursos. Por exemplo, consultas em tabelas pequenas não aplicam filtragem dinâmica nem substituem junções internas por junções cruzadas. Isso pode fazer com que a consulta use o predicado de partição obrigatória ou proíba junção cruzada. Quando isso acontece, o modo estrito rejeita a consulta. 
+ A verificação do modo estrito só é aplicada nos tipos de consulta SELECT, INSERT, CREATE TABLE AS SELECT e EXPLAIN ANALYZE. 
+ Você só pode usar a restrição no predicado de partição obrigatória com o conector do Hive. 

# Lidar com a perda de instâncias spot no Presto
<a name="presto-spot-loss"></a>

Com instâncias spot no Amazon EMR, você pode executar workloads de big data na capacidade não utilizada do Amazon EC2 a um custo reduzido. Em troca por um custo mais baixo, o Amazon EC2 pode interromper instâncias spot com uma notificação de dois minutos. Quando você encerra um nó, o Presto pode levar até 10 minutos para retornar um erro. Isso causa atrasos desnecessários nos relatórios de erros e possíveis novas tentativas. O encerramento rápido é um atributo que permite o controle da forma como o Presto manipula nós encerrados.

O trabalho do coordenador do Presto é acompanhar todos os nós de processamento com sondagens regulares dos seus status. Sem um encerramento rápido, o coordenador não consulta o YARN NodeManager para saber o status de cada nó. Isso pode resultar em um longo loop de novas tentativas antes que a consulta apresente falha. Com o encerramento rápido, o coordenador do Presto consulta o status do nó NodeManager assim que a pesquisa não chega ao host. Se NodeManager mostrar que o nó está inativo, o Presto abandona novas tentativas, falha na consulta e retorna um erro. `NODE_DECOMMISSIONED`

O conjunto de parâmetros de configuração a seguir permite o controle e a personalização do comportamento do Presto no caso do encerramento do nó.


**Configurações do Presto para tratamento de falhas em nós**  

| Configuração | Description | Padrão | 
| --- | --- | --- | 
| query.remote-task.max-backoff-duration | Período durante o qual o coordenador continua tentando obter o status da tarefa remota nos nós de processamento. | 10 minutos | 
| query.remote-task.quick-terminate-node-failure |  Ativa a falha rápida do nó se o coordenador não consegue acessar o nó ou não consegue se conectar ao worker executado nesse nó. O valor de `query.remote-task.terminate-on-connect-exception` determina se o coordenador deve acessar o nó ou se conectar ao worker. O nó apresenta falha na consulta e o Amazon EMR remove o nó da lista de workers disponíveis. Quando isso acontece, você não pode usar o nó para programar novas consultas. Quando você define esse valor como `false`, o Presto volta ao comportamento anterior, em que o coordenador do Presto novamente tenta acessar o nó (para `query.remote-task.max-backoff-duration`) antes de marcar o nó como indisponível e indica falha na consulta em andamento no nó.  | true | 
| query.remote-task.terminate-on-connect-exception | Especifica se o Amazon EMR deve ser um nó se o host está acessível, mas o coordenador não consegue se conectar ao processo do worker do host. Ao definir esse valor como true, você ativa falha na consulta rápida se o host está inacessível. | false | 

# Usar a escalabilidade automática do Presto com desativação tranquila
<a name="presto-graceful-autoscale"></a>

As versões 5.30.0 e posteriores do Amazon EMR incluem um atributo que você pode usar para definir um período de carência para determinadas ações de escalabilidade. O período de carência possibilita que as tarefas do Presto continuem em execução antes que o nó seja encerrado devido a uma ação de redimensionamento para reduzir a escala horizontalmente ou a uma solicitação de política de escalabilidade automática. Para obter mais informações sobre regras de escalabilidade, consulte [Noções básicas das regras de escalabilidade automática](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-automatic-scaling.html#emr-scaling-rules) no *Guia de gerenciamento do Amazon EMR*. A escalabilidade automática do Presto com desativação tranquila impede que novas tarefas sejam programadas em um nó que está sendo desativado e, ao mesmo tempo, permite que as tarefas que já estão sendo executadas sejam concluídas antes que o tempo limite de desligamento seja atingido. As consultas em execução concluirão a execução antes que o nó seja desativado. A escalabilidade automática não é compatível com frotas de instâncias.

Você pode controlar quanto tempo deve ser permitido até a conclusão das tarefas do Presto após o recebimento de uma solicitação de desligamento de escalabilidade automática. Por padrão, o tempo limite de desligamento do Amazon EMR é `0` minuto, o que significa que o Amazon EMR encerra imediatamente o nó e todas as tarefas do Presto executadas nele, se exigido por uma solicitação para reduzir a escala horizontalmente.. Para definir um tempo limite mais longo para as tarefas do Presto no Amazon EMR, permitindo que as consultas em execução sejam concluídas antes da ação de reduzir a escala verticalmente de um cluster, use a classificação de configuração `presto-config` para definir o parâmetro `graceful-shutdown-timeout` como um valor em segundos ou minutos maior que zero. Para obter mais informações, consulte [Configurar aplicações](emr-configure-apps.md).

Por exemplo, aumentar o valor de `graceful-shutdown-timeout` para `"30m"` especifica um tempo limite de 30 minutos. Após o término do tempo limite de desligamento, o nó marcado para desativação será encerrado de maneira forçada se estiver aguardando a conclusão das tarefas de consulta e a consulta apresentará falha. Se as tarefas de consulta forem concluídas em cinco minutos, o nó marcado para desativação será encerrado em cinco minutos, desde que outras aplicações do YARN tenham concluído a execução.

**Example Exemplo de configuração de escalabilidade automática do Presto com desativação tranquila**  
Substitua o valor `graceful-shutdown-timeout` pelo número de minutos apropriado para a configuração. Não há um valor máximo. O exemplo abaixo define um valor de tempo limite de `1800` segundos (30 minutos).  

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

**Limitações**

A desativação tranquila do PrestoDB não funciona em clusters do EMR em que a conectividade HTTP está desabilitada, como quando `http-server.http.enabled` está definido como `false`. O Trino não é compatível com a desativação tranquila, independentemente da configuração de `http-server.http.enabled`.

# Considerações com o Presto no Amazon EMR
<a name="emr-presto-considerations"></a>

Considere as limitações a seguir quando executar o [Presto](https://aws.amazon.com/big-data/what-is-presto/) no Amazon EMR.

## Executável da linha de comando do Presto
<a name="emr-presto-command-line-cli"></a>

No Amazon EMR, o PrestoDB e o Trino usam o mesmo executável da linha de comando, `presto-cli`, como no exemplo a seguir.

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

## Propriedades de implantação do Presto não configuráveis
<a name="emr-presto-deployment-config"></a>

A versão do Amazon EMR que você usa determina as configurações de implantação do Presto que estão disponíveis. Para obter mais informações sobre essas propriedades de configuração, consulte [Implantar o Presto](https://prestodb.io/docs/current/installation/deployment.html) na documentação do Presto. A tabela a seguir mostra as diferentes opções de configuração para arquivos de `properties` do Presto.


| Arquivo | Configurável | 
| --- | --- | 
|  `log.properties`  |  PrestoDB: configurável nas versões 4.0.0 e posteriores do Amazon EMR. Use a classificação para a configuração `presto-log`.  | 
|  `config.properties`  |  PrestoDB: configurável nas versões 4.0.0 e posteriores do Amazon EMR. Use a classificação para a configuração `presto-config`.  | 
|  `hive.properties`  |  PrestoDB: configurável nas versões 4.1.0 e posteriores do Amazon EMR. Use a classificação para a configuração `presto-connector-hive`.  | 
|  `node.properties`  |  PrestoDB: configurável nas versões 5.6.0 e posteriores do Amazon EMR. Use a classificação para a configuração `presto-node`.  | 
|  `jvm.config`  |  Não configurável.  | 

## Instalação do PrestoDB
<a name="emr-prestodb-prestosql"></a>

O nome da aplicação, *Presto*, continua a ser usado para instalar o PrestoDB em clusters. 

Você pode instalar o PrestoDB ou o Trino, mas não pode instalar os dois em um único cluster. Se o PrestoDB e o Trino forem especificados na tentativa de criação de um cluster, ocorrerá um erro de validação e a solicitação de criação do cluster falhará.

## Configuração do EMRFS e do PrestOS3 FileSystem
<a name="emr-presto-prestos3"></a>

Com as versões 5.12.0 e posteriores do Amazon EMR, o PrestoDB pode usar o EMRFS. Para obter mais informações, consulte [EMR File System (EMRFS)](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-fs) no *Guia de gerenciamento do Amazon EMR*. Com versões anteriores do Amazon EMR, o PrestoS3 FileSystem é a única opção de configuração.

Você pode usar uma configuração de segurança para configurar a criptografia para dados do EMRFS no Amazon S3. Você também pode usar perfis do IAM para solicitações do EMRFS para o Amazon S3. Para obter mais informações, consulte [Noções básicas sobre opções de criptografia](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-data-encryption-options.html) e [Configurar perfis do IAM para solicitações do EMRFS para o Amazon S3](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-emrfs-iam-roles.html) no *Guia de gerenciamento do Amazon EMR*.

**nota**  
Se você consultar dados subjacentes no Amazon S3 com a versão 5.12.0 do Amazon EMR, poderão ocorrer erros no Presto. Isso acontece porque o Presto não consegue obter valores de classificação de configuração em `emrfs-site.xml`. Como solução alternativa, crie um subdiretório `emrfs` em `usr/lib/presto/plugin/hive-hadoop2/` e crie um link simbólico em `usr/lib/presto/plugin/hive-hadoop2/emrfs` para o arquivo `/usr/share/aws/emr/emrfs/conf/emrfs-site.xml` existente. Em seguida, reinicie o processo presto-server (`sudo presto-server stop` seguido por `sudo presto-server start`). 

Você pode substituir o padrão do EMRFS e usar o PrestOS3 em vez disso. FileSystem Para fazer isso, use a classificação de configuração `presto-connector-hive` para definir `hive.s3-file-system-type` como `PRESTO` , conforme mostrado no exemplo a seguir. Para obter mais informações, consulte [Configurar aplicações](emr-configure-apps.md).

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

Se você usa o PrestOS3FileSystem, use a classificação de `presto-connector-hive` configuração para configurar as propriedades do FileSystem PrestOS3. Para obter mais informações sobre as propriedades disponíveis, consulte [Configuração do Amazon S3](https://prestodb.io/docs/current/connector/hive.html#amazon-s3-configuration) na seção Conector do Hive da documentação do Presto. Estas configurações não se aplicam ao EMRFS.

## Configuração padrão para personificação do usuário final
<a name="emr-presto-end-user-impersonation"></a>

Por padrão, as versões 5.12.0 e posteriores do Amazon EMR possibilitam a personificação do usuário final para o acesso ao HDFS. Para obter mais informações, consulte [Personificação de usuário final](https://prestodb.io/docs/current/connector/hive-security.html#end-user-impersonation) na documentação do Presto. Para alterar essa configuração usando a classificação de configuração `presto-config`, defina a propriedade `hive.hdfs.impersonation.enabled` como `false`.

## Porta padrão para interface Web do Presto
<a name="emr-presto-default-web-port"></a>

Por padrão, o Amazon EMR configura a interface Web do Presto no coordenador do Presto para usar a porta 8889 (para PrestoDB e Trino). Para alterar a porta, use a classificação de configuração `presto-config` para definir a propriedade `http-server.http.port`. Para obter mais informações, consulte [Propriedades de configuração](https://prestodb.io/docs/current/installation/deployment.html#config-properties) na seção *Implantar o Presto* na documentação do Presto.

## Problema com a execução do bucket do Hive em algumas versões
<a name="emr-presto-bucket-execution"></a>

O Presto versão 152.3 tem um problema com a execução do bucket do Hive que prejudica significativamente o desempenho das consultas do Presto em algumas circunstâncias. As versões 5.0.3, 5.1.0 e 5.2.0 do Amazon EMR incluem essa versão do Presto. Para reduzir o problema, use a classificação de configuração `presto-connector-hive` para definir a propriedade `hive.bucket-execution` como `false`, conforme mostrado no exemplo a seguir.

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

# Histórico de versões do Presto
<a name="Presto-release-history"></a>

A tabela a seguir informa a versão do Presto incluída em cada versão do Amazon EMR e os componentes instalados com a aplicação. Para obter as versões dos componentes em cada versão, consulte a seção Versão de componentes da sua versão em [Versões 7.x do Amazon EMR](emr-release-7x.md), [Versões de lançamento 6.x do Amazon EMR](emr-release-6x.md) ou [Versões de lançamento 5.x do Amazon EMR](emr-release-5x.md).


**Informações de versão do Presto**  

| Rótulo de versão do Amazon EMR | Versão do Presto | Componentes instalados com o 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 | 