Ich habe einen Amazon EMR-Cluster in der AWS-Region China (Peking) (cn-north-1) gestartet. Ich habe Presto und Apache Hive verwendet, um eine externe Tabelle aus einem Amazon Simple Storage Service (Amazon S3)-Bucket zu erstellen. Wenn ich die Tabelle mit Hive und Presto abfrage, erhalte ich eine Fehlermeldung ähnlich der folgenden: presto:default> select * from mydata; Query 20200912_072348_00009_qqx96, FAILED, 1 Node Splits: 1 insgesamt, 0 erledigt (0,00%) 0:03 [0 Zeilen, 0B] [0 Zeilen/n, 0B/s] Die Abfrage 20200912_072348_00009_qqx96 ist fehlgeschlagen: Das bereitgestellte Token ist falsch formatiert oder anderweitig ungültig. (Dienst: Amazon S3; Statuscode: 400; Fehlercode: Ungültiges Token; Anforderungs-ID: 811359ED1D9F8250)
Kurzbeschreibung
In früheren Versionen von Amazon EMR verwendet Presto nicht automatisch die Region, in der sich der S3-Bucket befindet. Verwenden Sie eine der folgenden Optionen, um diesen Fehler zu beheben:
- Führen Sie ein Upgrade auf Amazon EMR Release-Version 5.12.0 oder höher durch.
- Um Amazon EMR Release-Version 5.11.x oder früher zu verwenden, setzen Sie die Eigenschaft hive.s3.pin-client-to-current-region auf true.
Behebung
Führen Sie ein Upgrade auf Amazon EMR Release-Version 5.12.0 oder höher durch
Starten Sie einen neuen Cluster und wählen Sie Amazon EMR Release-Version 5.12.0 oder höher. Weitere Informationen finden Sie unter Über Amazon EMR-Versionen.
Setzen Sie die Eigenschaft hive.s3.pin-client-to-current-region auf true (Version 5.11.x oder früher)
1. Öffnen Sie auf jedem Knoten die Datei hive.properties und setzen Sie dann die Eigenschaft hive.s3.pin-client-to-current-region auf true. Beispiel:
sudo vim /etc/presto/conf/catalog/hive.properties
hive.s3.connect-timeout=2m
hive.s3.max-backoff-time=10m
...
hive.s3.pin-client-to-current-region=true
2. Starten Sie Presto auf jedem Knoten neu:
sudo restart presto-server
3. Um zu überprüfen, ob die neue Konfiguration wie erwartet funktioniert, fragen Sie eine Tabelle mit Hive und Presto in der Region China (Peking) ab.
Ähnliche Informationen
Apache Hive
Presto und Trino