Consideraciones relacionadas con el uso de Presto en Amazon EMR - Amazon EMR

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Consideraciones relacionadas con el uso de Presto en Amazon EMR

Tenga en cuenta las siguientes limitaciones al ejecutar Presto en Amazon EMR.

Ejecutable de línea de comandos de Presto

En Amazon EMR, PrestoDB y Trino utilizan el mismo ejecutable de línea de comandos, presto-cli, como en el siguiente ejemplo.

presto-cli --catalog hive

Propiedades de la implementación de Presto no configurables

La versión de Amazon EMR que utilice determina las configuraciones de implementación de Presto disponibles. Para obtener más información sobre estas propiedades de configuración, consulte Implementación de Presto en la documentación de Presto. En la siguiente tabla, se muestran las distintas opciones de configuración de los archivos properties de Presto.

Archivos Configurable

log.properties

PrestoDB: versiones 4.0.0 y posteriores configurables de Amazon EMR. Utilice la clasificación de configuración presto-log.

Trino (PrestoDB): versiones 6.1.0 y posteriores configurables de Amazon EMR. Utilice la clasificación de configuración prestosql-log o trino-log.

config.properties

PrestoDB: versiones 4.0.0 y posteriores configurables de Amazon EMR. Utilice la clasificación de configuración presto-config.

Trino (PrestoDB): versiones 6.1.0 y posteriores configurables de Amazon EMR. Utilice la clasificación de configuración prestosql-config o trino-config.

hive.properties

PrestoDB: versiones 4.1.0 y posteriores configurables de Amazon EMR. Utilice la clasificación de configuración presto-connector-hive.

Trino (PrestoDB): versiones 6.1.0 y posteriores configurables de Amazon EMR. Utilice la clasificación de configuración prestosql-connector-hive o trino-connector-hive.

node.properties

PrestoDB: versiones 5.6.0 y posteriores configurables de Amazon EMR. Utilice la clasificación de configuración presto-node.

Trino (PrestoDB): versiones 6.1.0 y posteriores configurables de Amazon EMR. Utilice la clasificación de configuración prestosql-node o trino-node.

jvm.config

No se puede configurar.

Instalación de PrestoDB y Trino

El nombre de la aplicación Presto se sigue utilizando para instalar PrestoDB en los clústeres. Para instalar Trino en clústeres, utilice el nombre de la aplicación Trino (o PrestoSQL en versiones anteriores de Amazon EMR).

Puede instalar PrestoDB o Trino, pero no puede instalar ambos en un solo clúster. Si se especifican PrestoDB y Trino al intentar crear un clúster, se produce un error tanto en la validación como en la solicitud de creación del clúster.

Configuración de EMRFS y PrestoS3 FileSystem

Con las versiones 5.12.0 y posteriores de Amazon EMR, PrestoDB puede utilizar EMRFS. Esta configuración es la predeterminada. EMRFS también es el sistema de archivos predeterminado para Trino (PrestoSQL) en las versiones 6.1.0 y posteriores de Amazon EMR. Para obtener más información, consulte Sistema de archivos de EMR (EMRFS) en la Guía de administración de Amazon EMR. En las versiones anteriores de Amazon EMR, PrestoS3 FileSystem es la única opción de configuración.

Se puede utilizar una configuración de seguridad para configurar el cifrado de los datos de EMRFS en Amazon S3. También puede utilizar roles de IAM para las solicitudes de EMRFS a Amazon S3. Para obtener más información, consulte Descripción de las opciones de cifrado y Configuración de roles de IAM para solicitudes de EMRFS a Amazon S3 en la Guía de administración de Amazon EMR.

nota

Si consulta los datos subyacentes en Amazon S3 con la versión 5.12.0 de Amazon EMR, pueden producirse errores en Presto. Esto se debe a que Presto no recoge los valores de clasificación de configuración de emrfs-site.xml. Como solución alternativa, cree un subdirectorio de emrfs en usr/lib/presto/plugin/hive-hadoop2/ y cree un enlace simbólico en usr/lib/presto/plugin/hive-hadoop2/emrfs al archivo /usr/share/aws/emr/emrfs/conf/emrfs-site.xml existente. A continuación, reinicie el proceso presto-server (sudo presto-server stop seguido de sudo presto-server start).

Puede anular el EMRFS predeterminado y utilizar PrestoS3 en su lugar. FileSystem Para ello, utilice la clasificación de configuración presto-connector-hive para establecer hive.s3-file-system-type en PRESTO, tal como se muestra en el siguiente ejemplo. Para obtener más información, consulte Configuración de aplicaciones.

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

Si utiliza PrestoS3FileSystem, utilice la clasificación de presto-connector-hive configuración o trino-connector-hive utilice Trino para configurar las propiedades de PrestoS3. FileSystem Para obtener más información sobre las propiedades disponibles, consulte Configuración de Amazon S3 en la sección Conector de Hive de la documentación de Presto. Estas opciones no se aplican a EMRFS.

Configuración predeterminada para la suplantación del usuario final

De forma predeterminada, las versiones 5.12.0 y posteriores de Amazon EMR permiten la suplantación del usuario final para obtener acceso a HDFS. Para obtener más información, consulte Suplantación de usuarios finales en la documentación de Presto. Para cambiar esta configuración con la clasificación de configuración de presto-config, establezca la propiedad hive.hdfs.impersonation.enabled en false.

Puerto predeterminado para la interfaz web de Presto

De forma predeterminada, Amazon EMR configura la interfaz web de Presto en el coordinador de Presto para que utilice el puerto 8889 (para PrestoDB y Trino). Para cambiar el puerto, utilice la clasificación de configuración presto-config para establecer la propiedad de http-server.http.port. Para obtener más información, consulte Propiedades de configuración en la sección Implementación de Presto de la documentación de Presto.

Problema con la ejecución del bucket de Hive en algunas versiones

Presto versión 152.3 tiene un problema con la ejecución de buckets de Hive que provoca un rendimiento de consultas de Presto notablemente más lento en algunas circunstancias. Las versiones 5.0.3, 5.1.0 y 5.2.0 de Amazon EMR incluyen esta versión de Presto. Para mitigar este problema, utilice la clasificación de configuración presto-connector-hive para establecer la propiedad hive.bucket-execution en false, tal y como se muestra en el siguiente ejemplo.

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