Überlegungen zu Presto auf Amazon EMR - Amazon EMR

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Überlegungen zu Presto auf Amazon EMR

Berücksichtigen Sie die folgenden Unterschiede und Einschränkungen, wenn Sie Presto auf Amazon EMR. ausführen.

In der Befehlszeile von Presto ausführbare Datei

In Amazon EMR verwenden sowohl PrestoDB als auch PrestoSQL die gleiche ausführbare Befehlszeilendatei, presto-cli, wie im folgenden Beispiel.

presto-cli --catalog hive

Einige Presto-Bereitstellungseigenschaften sind nicht konfigurierbar

Abhängig von der Amazon EMR-Version, die Sie verwenden, stehen einige Presto Bereitstellungseigenschaften möglicherweise nicht zur Verfügung. Weitere Informationen zu diesen Eigenschaften finden Sie unter Deploying Presto in der Presto-Dokumentation. Die folgende Tabelle zeigt den Konfigurationsstatus der Presto properties-Dateien.

Datei Konfigurierbar

log.properties

PrestoDB: Konfigurierbar in den Amazon EMR-Versionen 4.0.0 und höher. Verwenden Sie die presto-log-Konfigurationsklassifizierung.

PrestoSQL: Konfigurierbar in den Amazon EMR-Versionen 6.1.0 und höher. Verwenden Sie die prestosql-log-Konfigurationsklassifizierung.

config.properties

PrestoDB: Konfigurierbar in den Amazon EMR-Versionen 4.0.0 und höher. Verwenden Sie die presto-config-Konfigurationsklassifizierung.

PrestoSQL: Konfigurierbar in den Amazon EMR-Versionen 6.1.0 und höher. Verwenden Sie die prestosql-config-Konfigurationsklassifizierung.

hive.properties

PrestoDB: Konfigurierbar in den Amazon EMR-Versionen 4.1.0 und höher. Verwenden Sie die presto-connector-hive-Konfigurationsklassifizierung.

PrestoSQL: Konfigurierbar in den Amazon EMR-Versionen 6.1.0 und höher. Verwenden Sie die prestosql-connector-hive-Konfigurationsklassifizierung.

node.properties

PrestoDB: Konfigurierbar in Amazon EMR-Version 5.6.0 und höher. Verwenden Sie die presto-node-Konfigurationsklassifizierung.

PrestoSQL: Konfigurierbar in den Amazon EMR-Versionen 6.1.0 und höher. Verwenden Sie die prestosql-node-Konfigurationsklassifizierung.

jvm.config

Nicht konfigurierbar.

EMRFS- und PrestoS3FileSystem-Konfiguration

Mit Amazon EMR Version 5.12.0 und höher kann PrestoDB EMRFS verwenden, und dies ist die Standardkonfiguration. Mit Amazon EMR Version 6.1.0 und höher verwendet PrestoSQL auch EMRFS als Standard. Weitere Informationen finden Sie unter Verwendung des EMRFS (EMR File System) im Management Guide für Amazon EMR. Für frühere Versionen ist PrestoS3FileSystem die einzige Option.

Die Verwendung von EMRFS bietet Vorteile. Sie können eine Sicherheitskonfiguration verwenden, um die Verschlüsselung für EMRFS-Daten in einzurichten.Amazon S3. Sie können auch IAM-Rollen für EMRFS-Anforderungen an Amazon S3. verwenden. Weitere Informationen finden unter Verschlüsselungsoptionen verstehen und Konfigurieren von IAM-Rollen für EMRFS-Anforderungen an Amazon S3 im Management Guide für Amazon EMR.

Anmerkung

Ein Konfigurationsproblem kann zu Presto-Fehlern führen, wenn zugrunde liegende Daten in Amazon S3 mit Amazon EMR, Version 5.12.0, abgefragt werden. Der Grund hierfür ist, dass Presto keine Konfigurationsklassifizierungswerte von emrfs-site.xml übernimmt. Erstellen Sie als Fehlerumgehung das Unterverzeichnis emrfs unter usr/lib/presto/plugin/hive-hadoop2/, erstellen Sie einen Symlink in usr/lib/presto/plugin/hive-hadoop2/emrfs zur vorhandenen /usr/share/aws/emr/emrfs/conf/emrfs-site.xml-Datei und starten Sie den presto-server-Vorgang (sudo presto-server stop gefolgt von sudo presto-server start) neu.

Sie können den EMRFS-Standard überschreiben und stattdessen PrestoS3FileSystem verwenden. Verwenden Sie dazu die presto-connector-hive-Konfigurationsklassifizierung, um hive.s3-file-system-type auf PRESTO zu setzen, wie im folgenden Beispiel veranschaulicht. Weitere Informationen finden Sie unter Konfigurieren von Anwendungen.

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

Wenn Sie PrestoS3FileSystem verwenden, verwenden Sie die presto-connector-hive-Konfigurationsklassifizierung oder prestosql-connector-hive für PrestoSQL, um PrestoS3FileSystem-Eigenschaften zu konfigurieren. Weitere Informationen zu den verfügbaren Eigenschaften finden Sie unter Amazon S3 Configuration im Abschnitt „Hive Connector“ der Presto-Dokumentation. Diese Einstellungen gelten nicht für EMRFS.

Standardeinstellung für Endbenutzer-Identitätswechsel

Standardmäßig ist der Endbenutzer-Identitätswechsel ab der Amazon EMR-Version 5.12.0 und höher für den Zugriff auf HDFS aktiviert. Weitere Informationen finden Sie unter Endbenutzer-Identitätswechsel in der Presto-Dokumentation. Sie können diese Einstellung ändern, indem Sie die presto-config-Konfigurationsklassifizierung der hive.hdfs.impersonation.enabled-Eigenschaft auf false. setzen.

Standardport für die Presto-Webschnittstelle

Standardmäßig konfiguriert Amazon EMR die Presto-Webschnittstelle auf dem Presto-Koordinator so, dass Port 8889 (für PrestoDB und PrestoSQL) verwendet wird. Sie können den Port ändern, indem Sie die Konfigurationsklassifizierung presto-config verwenden, um die Eigenschaft http-server.http.port festzulegen. Weitere Informationen finden Sie unter Config Properties im Abschnitt Deploying Presto der Presto-Dokumentation.

Problem bei der Hive-Bucket-Ausführung in einigen Versionen

Presto Version 152.3 hat ein Problem mit der Hive-Bucket-Ausführung, das in Presto in einigen Fällen zu einer erheblich langsameren Abfrageleistung führt. Diese Version ist in den Amazon EMR-Versionen 5.0.3, 5.1.0 und 5.2.0 enthalten. Um dieses Problem abzumildern, verwenden Sie die presto-connector-hive-Konfigurationsklassifizierung, um die Eigenschaft hive.bucket-execution auf false zu setzen, wie im folgenden Beispiel veranschaulicht.

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