Freigeben über


Trino-Befehlszeilenschnittstelle

Hinweis

Azure HDInsight on AKS wird am 31. Januar 2025 eingestellt. Vor dem 31. Januar 2025 müssen Sie Ihre Workloads zu Microsoft Fabric oder einem gleichwertigen Azure-Produkt migrieren, um eine abruptes Beendigung Ihrer Workloads zu vermeiden. Die verbleibenden Cluster in Ihrem Abonnement werden beendet und vom Host entfernt.

Bis zum Einstellungsdatum ist nur grundlegende Unterstützung verfügbar.

Wichtig

Diese Funktion steht derzeit als Vorschau zur Verfügung. Die zusätzlichen Nutzungsbedingungen für Microsoft Azure-Vorschauen enthalten weitere rechtliche Bestimmungen, die für Azure-Features in Betaversionen, in Vorschauversionen oder anderen Versionen gelten, die noch nicht allgemein verfügbar gemacht wurden. Informationen zu dieser spezifischen Vorschau finden Sie unter Informationen zur Vorschau von Azure HDInsight on AKS. Bei Fragen oder Funktionsvorschlägen senden Sie eine Anfrage an AskHDInsight mit den entsprechenden Details, und folgen Sie uns für weitere Updates in der Azure HDInsight-Community.

Die Trino-Befehlszeilenschnittstelle für HDInsight on AKS stellt eine terminalbasierte, interaktive Shell für die Ausführung von Abfragen bereit.

Installieren unter Windows

Unter Windows wird die Trino-Befehlszeilenschnittstelle für HDInsight on AKS über eine MSI-Datei installiert. Dadurch können Sie über die Windows-Eingabeaufforderung (CMD) oder über PowerShell auf die Befehlszeilenschnittstelle zugreifen. Informationen zum Installieren für das Windows-Subsystem für Linux (WSL) finden Sie unter Installieren unter Linux.

Anforderungen

  • Java 8 oder 11.

  • Fügen Sie „java.exe“ zu PATH hinzu, oder definieren Sie die Umgebungsvariable JAVA_HOME, die auf das JRE-Installationsverzeichnis verweist, sodass %JAVA_HOME%\bin\java.exe vorhanden ist.

Installieren oder Aktualisieren

Das MSI-Paket wird zum Installieren oder Aktualisieren der Trino-Befehlszeilenschnittstelle für HDInsight on AKS unter Windows verwendet.

Laden Sie das aktuelle Release der Trino-Befehlszeilenschnittstelle herunter, und installieren Sie sie. Wenn das Installationsprogramm fragt, ob Änderungen am Computer vorgenommen werden dürfen, klicken Sie auf „Ja“. Nach Abschluss der Installation müssen Sie alle aktiven Windows-Eingabeaufforderungen oder PowerShell-Fenster schließen und erneut öffnen, um die Trino-Befehlszeilenschnittstelle verwenden zu können.

Herunterladen der Trino-Befehlszeilenschnittstelle: https://aka.ms/InstallTrinoCLIWindows

Ausführen der Trino-Befehlszeilenschnittstelle

Sie können die Trino-Befehlszeilenschnittstelle jetzt mithilfe von „trino-cli“ in der Eingabeaufforderung ausführen und eine Verbindung mit einem Cluster herstellen:

trino-cli --server <cluster_endpoint>

Hinweis

Bei der Ausführung unter einem monitorlosen Betriebssystem (kein Webbrowser) werden Sie von der Trino-Befehlszeilenschnittstelle zur Verwendung von Gerätecode für die Authentifizierung aufgefordert. Sie können auch den Befehlszeilenparameter --auth AzureDeviceCode angeben, um die Verwendung von Gerätecode zu erzwingen. In diesem Fall müssen Sie einen Browser auf einem anderen Gerät/unter einem anderen Betriebssystem öffnen, den angezeigten Code eingeben und sich authentifizieren und dann zur Befehlszeilenschnittstelle zurückkehren.

Problembehandlung

In diesem Abschnitt finden Sie einige allgemeine Probleme, die bei der Installation der Trino-Befehlszeilenschnittstelle unter Windows auftreten können.

Der Proxy blockiert die Verbindung.

Wenn Sie das MSI-Installationsprogramm nicht herunterladen können, da Ihr Proxy die Verbindung blockiert, stellen Sie sicher, dass Sie den Proxy richtig konfiguriert haben. Unter Windows 10 werden diese Einstellungen im Bereich „Einstellungen > Netzwerk und Internet > Proxy“ verwaltet. Wenden Sie sich an Ihren Systemadministrator, um Informationen zu den erforderlichen Einstellungen zu erhalten oder wenn Ihr Computer ggf. konfigurationsverwaltet ist oder ein erweitertes Setup erfordert.

Zum Abrufen der MSI muss Ihr Proxy HTTPS-Verbindungen mit den folgenden Adressen zulassen:

  • https://aka.ms/
  • https://hdionaksresources.blob.core.windows.net/

Deinstallieren

Sie können die Trino-Befehlszeilenschnittstelle über die Liste „Apps und Features“ in Windows deinstallieren. Gehen Sie zum Deinstallieren wie folgt vor:

Plattform Instructions
Windows 10 Start > Einstellungen > App
Windows 8 und Windows 7 Start > Systemsteuerung > Programme > Programm deinstallieren

Geben Sie auf diesem Bildschirm „Trino“ in die Suchleiste des Programms ein. Das zu deinstallierende Programm ist als „HDInsight Trino CLI <Version>“ aufgeführt. Wählen Sie diese Anwendung aus, und klicken Sie dann auf die Schaltfläche „Deinstallieren“.

Installation unter Linux

Die Trino-Befehlszeilenschnittstelle stellt eine terminalbasierte, interaktive Shell für die Ausführung von Abfragen bereit. Sie können die Trino-Befehlszeilenschnittstelle unter Linux manuell installieren, indem Sie die Option „Installationsskript“ auswählen.

Anforderungen

  • Java 8 oder 11.

  • Fügen Sie „java“ zu PATH hinzu, oder definieren Sie die Umgebungsvariable JAVA_HOME, die auf das JRE-Installationsverzeichnis verweist, sodass „$JAVA_HOME/bin/java“ vorhanden ist.

Installieren oder Aktualisieren

Sowohl für die Installation als auch die Aktualisierung der CLI muss das Installationsskript erneut ausgeführt werden. Installieren Sie die CLI durch Ausführen von curl.

curl -L https://aka.ms/InstallTrinoCli | bash

Das Skript kann auch heruntergeladen und lokal ausgeführt werden. Unter Umständen müssen Sie Ihre Shell neu starten, damit einige Änderungen wirksam werden.

Ausführen der Trino-Befehlszeilenschnittstelle

Sie können nun die Trino-Befehlszeilenschnittstelle mit dem Befehl „trino-cli“ über die Shell ausführen und eine Verbindung mit dem Cluster herstellen:

trino-cli --server <cluster_endpoint>

Hinweis

Bei der Ausführung unter einem monitorlosen Betriebssystem (kein Webbrowser) werden Sie von der Trino-Befehlszeilenschnittstelle zur Verwendung von Gerätecode für die Authentifizierung aufgefordert. Sie können auch den Befehlszeilenparameter --auth AzureDeviceCode angeben, um die Verwendung von Gerätecode zu erzwingen. In diesem Fall müssen Sie einen Browser auf einem anderen Gerät/unter einem anderen Betriebssystem öffnen, den angezeigten Code eingeben und sich authentifizieren und dann zur Befehlszeilenschnittstelle zurückkehren.

Problembehandlung

In diesem Abschnitt werden einige allgemeine Probleme beschrieben, die bei einer manuellen Installation auftreten können.

curl-Fehler „Objekt verschoben“

Wenn Sie einen Fehler von curl im Zusammenhang mit dem -L-Parameter oder eine Fehlermeldung mit dem Text „Objekt verschoben“ erhalten, versuchen Sie, die vollständige URL anstatt der aka.ms-Umleitung zu verwenden:

curl https://hdionaksresources.blob.core.windows.net/trino/cli/install.sh | bash

trino-cli-Befehl nicht gefunden

hash -r

Dieses Problem kann auch auftreten, wenn Sie die Shell nach der Installation nicht neu gestartet haben. Stellen Sie sicher, dass sich der trino-cli-Befehl ($HOME/bin) unter $PATH befindet.

Der Proxy blockiert die Verbindung.

Zum Abrufen der Installationsskripts muss Ihr Proxy HTTPS-Verbindungen mit den folgenden Adressen zulassen:

  • https://aka.ms/
  • https://hdionaksresources.blob.core.windows.net/

Deinstallieren

Führen Sie zum Entfernen aller trino-cli-Dateien Folgendes aus:

rm $HOME/bin/trino-cli
rm -r $HOME/lib/trino-cli

Authentifizierung

Die Trino-Befehlszeilenschnittstelle unterstützt verschiedene Methoden der Microsoft Entra-Authentifizierung mithilfe von Befehlszeilenparametern. In der folgenden Tabelle werden die wichtigen Parameter und Authentifizierungsmethoden beschrieben. Weitere Informationen finden Sie unter Authentifizierung.

Parameterbeschreibung sind auch in der CLI verfügbar:

trino-cli --help
Parameter Bedeutung Erforderlich Beschreibung
auth Name der Authentifizierungsmethode Nein Bestimmt, wie Benutzeranmeldeinformationen bereitgestellt werden. Ohne Angabe dieses Parameters wird AzureDefault verwendet.
azure-client Client ID Ja für AzureClientSecret, AzureClientCertificate Client-ID des Dienstprinzipals/der Anwendung
azure-tenant Mandanten-ID Ja für AzureClientSecret, AzureClientCertificate Microsoft Entra-Mandanten-ID
azure-certificate-path Dateipfad zum Zertifikat Ja für AzureClientCertificate Pfad zur PFX-/PEM-Datei mit Zertifikat
azure-use-token-cache Gibt an, ob der Tokencache verwendet werden soll. Nein Wird der Parameter angegeben, wird das Zugriffstoken zwischengespeichert und in den Modi AzureDefault, AzureInteractive, AzureDeviceCode wiederverwendet.
azure-scope Tokenbereich Nein Microsoft Entra-Bereichszeichenfolge zum Anfordern eines Tokens
use-device-code Gibt an, ob die Gerätecodemethode verwendet werden soll. Nein Entspricht --auth AzureDeviceCode.
password Geheimer Clientschlüssel für Dienstprinzipal Ja für AzureClientSecret Geheimnis/Kennwort für den Dienstprinzipal bei Verwendung des Modus AzureClientSecret
access-token JWT-Zugriffstoken Nein Wenn das Zugriffstoken extern abgerufen wurde, kann es mithilfe dieses Parameters bereitgestellt werden. In diesem Fall ist der Parameter auth nicht zulässig.

Beispiele

Beschreibung CLI-Befehl
AzureDefault trino-cli --server cluster1.pool1.region.projecthilo.net
Interaktive Browserauthentifizierung trino-cli --server cluster1.pool1.region1.projecthilo.net --auth AzureInteractive
Verwenden des Tokencache trino-cli --server cluster1.pool1.region1.projecthilo.net --auth AzureInteractive --azure-use-token-cache
Dienstprinzipal mit Geheimnis trino-cli --server cluster1.pool1.region1.projecthilo.net --auth AzureClientSecret --azure-client 11111111-1111-1111-1111-111111111111 --azure-tenant 11111111-1111-1111-1111-111111111111 --password
Dienstprinzipal und geschütztes Zertifikat (Kennwort wird angefordert) trino-cli --server cluster1.pool1.region1.projecthilo.net --auth AzureClientCertificate --azure-client 11111111-1111-1111-1111-111111111111 --azure-certificate-path d:\tmp\cert.pfx --azure-tenant 11111111-1111-1111-1111-111111111111 --password

Problembehandlung

MissingAccessToken oder InvalidAccessToken

Die CLI zeigt einen der folgenden Fehler an:

Error running command: Authentication failed: {
  "code": "MissingAccessToken",
  "message": "Unable to find the token or get the required claims from it."
}
Error running command: Error starting query at https://<cluster-endpoint>/v1/statement returned an invalid response: JsonResponse{statusCode=500, statusMessage=, headers={content-type=[application/json; charset=utf-8], date=[Fri, 16 Jun 2023 18:25:23 GMT], strict-transport-security=[max-age=15724800; includeSubDomains]}, hasValue=false} [Error: {
  "code": "InvalidAccessToken",
  "message": "Unable to find the token or get the required claims from it"
}]

Führen Sie die folgenden Schritte aus, um das Problem zu beheben:

  1. Beenden Sie die Trino-Befehlszeilenschnittstelle.
  2. Ausführen von az logout
  3. Ausführen von az login -t <your-trino-cluster-tenantId>
  4. Jetzt sollte dieser Befehl funktionieren:
trino-cli --server <cluster-endpoint>
  1. Geben Sie alternativ Authentifizierungs-/Mandantenparameter an:
trino-cli --server <cluster-endpoint> --auth AzureInteractive --azure-tenant <trino-cluster-tenantId>

403 Verboten

Die CLI zeigt den folgenden Fehler an:

Error running command: Error starting query at  https://<cluster-endpoint>/v1/statement returned an invalid response: JsonResponse{statusCode=403, statusMessage=, headers={content-length=[146], content-type=[text/html], date=[Wed, 25 May 2023 16:49:24 GMT], strict-transport-security=[max-age=15724800; includeSubDomains]}, hasValue=false} [Error: <html>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx</center>
</body>
</html>
]

Um das Problem zu beheben, fügen Sie dem Autorisierungsprofil Benutzer*innen oder eine Gruppe hinzu.