Considerações com o Presto no Amazon EMR - Amazon EMR

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á.

Considerações com o Presto no Amazon EMR

Considere as limitações a seguir quando executar o Presto no Amazon EMR.

Executável da linha de comando do Presto

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

Trino (PrestoSQL): configurável nas versões 6.1.0 e posteriores do Amazon EMR. Use a classificação de configuração prestosql-log ou trino-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.

Trino (PrestoSQL): configurável nas versões 6.1.0 e posteriores do Amazon EMR. Use a classificação de configuração prestosql-config ou trino-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.

Trino (PrestoSQL): configurável nas versões 6.1.0 e posteriores do Amazon EMR. Use a classificação de configuração prestosql-connector-hive ou trino-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.

Trino (PrestoSQL): configurável nas versões 6.1.0 e posteriores do Amazon EMR. Use a classificação de configuração prestosql-node ou trino-node.

jvm.config

Não configurável.

Instalação do PrestoDB e do Trino

O nome da aplicação, Presto, continua a ser usado para instalar o PrestoDB em clusters. Para instalar o Trino em clusters, use o nome da aplicação Trino (ou PrestoSQL em versões mais antigas do Amazon EMR).

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

Com as versões 5.12.0 e posteriores do Amazon EMR, o PrestoDB pode usar o EMRFS. Essa é a configuração padrão. O EMRFS também é o sistema de arquivos padrão para Trino (PrestoSQL) nas versões 6.1.0 e posteriores do Amazon EMR. Para obter mais informações, consulte EMR File System (EMRFS) 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 e Configurar perfis do IAM para solicitações do EMRFS para o Amazon S3 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 ter mais informações, consulte Configurar aplicações.

[ { "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 ou o Trino configure trino-connector-hive as propriedades do PrestOS3. FileSystem Para obter mais informações sobre as propriedades disponíveis, consulte Configuração do Amazon S3 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

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

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 na seção Implantar o Presto na documentação do Presto.

Problema com a execução do bucket do Hive em algumas versões

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" } } ]