Überlegungen zu Presto in 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 in Amazon EMR

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

In der Befehlszeile von Presto ausführbare Datei

In Amazon EMR verwenden PrestoDB und Trino dieselbe ausführbare Befehlszeilendatei presto-cli, wie im folgenden Beispiel.

presto-cli --catalog hive

Nicht konfigurierbare Presto-Bereitstellungseigenschaften

Die Version von Amazon EMR, die Sie verwenden, bestimmt die verfügbaren Presto-Bereitstellungskonfigurationen. Weitere Informationen zu diesen Konfigurationseigenschaften finden Sie unter Bereitstellen von Presto in der Presto-Dokumentation. Die folgende Tabelle zeigt die Konfigurationsoptionen der Presto-properties-Dateien.

Datei Konfigurierbar

log.properties

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

Trino (PrestoSQL): Konfigurierbar in Amazon-EMR-Versionen 6.1.0 und höher. Verwenden Sie die prestosql-log- oder trino-log-Konfigurationsklassifizierung.

config.properties

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

Trino (PrestoSQL): Konfigurierbar in Amazon-EMR-Versionen 6.1.0 und höher. Verwenden Sie die prestosql-config- oder trino-config-Konfigurationsklassifizierung.

hive.properties

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

Trino (PrestoSQL): Konfigurierbar in Amazon-EMR-Versionen 6.1.0 und höher. Verwenden Sie die prestosql-connector-hive- oder trino-connector-hive-Konfigurationsklassifizierung.

node.properties

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

Trino (PrestoSQL): Konfigurierbar in Amazon-EMR-Versionen 6.1.0 und höher. Verwenden Sie die prestosql-node- oder trino-node-Konfigurationsklassifizierung.

jvm.config

Nicht konfigurierbar.

Installation von PrestoDB und Trino

Der Anwendungsname Presto wird weiterhin verwendet, um PrestoDB auf Clustern zu installieren. Um Trino auf Clustern zu installieren, verwenden Sie den Anwendungsnamen Trino oder PrestoSQL in älteren Versionen von Amazon EMR).

Sie können entweder PrestoDB oder Trino installieren, aber Sie können nicht beide auf einem einzigen Cluster installieren. Wenn Sie beim Versuch, einen Cluster zu erstellen, sowohl PrestoDB als auch Trino angeben, tritt ein Validierungsfehler auf und die Anfrage zur Clustererstellung schlägt fehl.

EMRFS- und PrestoS3-Konfiguration FileSystem

Mit Amazon-EMR-Versionen 5.12.0 und höher kann PrestoDB EMRFS verwenden. Dies ist die Standardkonfiguration. EMRFS ist auch das Standarddateisystem für Trino (PrestoSQL) in Amazon-EMR-Versionen 6.1.0 und höher. Weitere Informationen finden Sie unter EMR File System (EMRFS) im Verwaltungshandbuch für Amazon EMR. In früheren Versionen von Amazon EMR FileSystem ist PrestoS3 die einzige Konfigurationsoption.

Sie können eine Sicherheitskonfiguration verwenden, um die Verschlüsselung für EMRFS-Daten in Amazon S3 einzurichten. Sie können auch IAM-Rollen für EMRFS-Anforderungen an Amazon S3 verwenden. Weitere Informationen finden unter Verschlüsselungsoptionen verstehen und IAM-Rollen für EMRFS in Amazon S3 konfigurieren im Verwaltungshandbuch für Amazon EMR.

Anmerkung

Wenn Sie die zugrunde liegenden Daten in Amazon S3 mit Amazon-EMR-Version 5.12.0 abfragen, können Presto-Fehler auftreten. Dies liegt daran, dass Presto die Konfigurationsklassifizierungswerte von emrfs-site.xml nicht abruft. Um dieses Problem zu umgehen, erstellen Sie ein emrfs-Unterverzeichnis unter usr/lib/presto/plugin/hive-hadoop2/ und erstellen einen Symlink usr/lib/presto/plugin/hive-hadoop2/emrfs zu der vorhandenen Datei /usr/share/aws/emr/emrfs/conf/emrfs-site.xml. Starten Sie dann den Presto-Server-Prozess neu (sudo presto-server stop gefolgt von sudo presto-server start).

Sie können den EMRFS-Standard überschreiben und stattdessen PrestoS3 verwenden. FileSystem 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 Anwendungen konfigurieren.

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

Wenn Sie PrestoS3 verwenden, verwenden Sie die presto-connector-hive Konfigurationsklassifizierung oder trino-connector-hive für TrinoFileSystem, um PrestoS3-Eigenschaften zu konfigurieren. FileSystem Weitere Informationen zu den verfügbaren Eigenschaften finden Sie unter Amazon-S3-Konfiguration im Abschnitt zum Hive-Konnektor in 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 im Abschnitt zum Endbenutzer-Identitätswechsel in der Presto-Dokumentation. Um diese Einstellung zu ändern, setzen Sie die presto-config-Konfigurationsklassifizierung der hive.hdfs.impersonation.enabled-Eigenschaft auf false.

Standardport für die Presto-Webschnittstelle

Standardmäßig konfiguriert Amazon EMR die Presto-Webschnittstelle auf dem Presto-Koordinator dazu, den Port 8889 (für PrestoDB und Trino) zu verwenden. Um den Port zu ändern, verwenden Sie die presto-config-Konfigurationsklassifizierung, um die http-server.http.port-Eigenschaft festzulegen. Weitere Informationen finden Sie unter Konfigurationseigenschaften im Abschnitt zur Bereitstellung von Presto in 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. Die Amazon-EMR-Versionen 5.0.3, 5.1.0 und 5.2.0 enthalten diese Version von Presto. 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" } } ]