Condividi tramite


Interfaccia della riga di comando Trino

Nota

Azure HDInsight su AKS verrà ritirato il 31 gennaio 2025. Prima del 31 gennaio 2025, sarà necessario eseguire la migrazione dei carichi di lavoro a Microsoft Fabric o a un prodotto Azure equivalente per evitare interruzioni improvvise dei carichi di lavoro. I cluster rimanenti nella sottoscrizione verranno arrestati e rimossi dall’host.

Solo il supporto di base sarà disponibile fino alla data di ritiro.

Importante

Questa funzionalità è attualmente disponibile solo in anteprima. Le Condizioni per l'utilizzo supplementari per le anteprime di Microsoft Azure includono termini legali aggiuntivi che si applicano a funzionalità di Azure in versione beta, in anteprima o in altro modo non ancora disponibili a livello generale. Per informazioni su questa anteprima specifica, vedere Informazioni sull'anteprima di Azure HDInsight nel servizio Azure Kubernetes. Per domande o suggerimenti sulle funzionalità, inviare una richiesta in AskHDInsight con i dettagli e seguire Microsoft per altri aggiornamenti nella Community di Azure HDInsight.

L'interfaccia della riga di comando di Trino per HDInsight nel servizio Azure Kubernetes offre una shell interattiva basata su terminale per l'esecuzione di query.

Esegui l’installazione in Windows

Per Windows, l'interfaccia della riga di comando di Trino per HDInsight nel servizio Azure Kubernetes viene installata tramite un file MSI che consente di accedere all'interfaccia della riga di comando tramite il prompt dei comandi di Windows (CMD) o PowerShell. Quando si installa per sottosistema Windows per Linux (WSL), vedere Installare in Linux.

Requisiti

  • Java 8 o 11.

  • Aggiungere java.exe a PATH o definire JAVA_HOME variabile di ambiente che punta alla directory di installazione di JRE, in modo che %JAVA_HOME%\bin\java.exe esista.

Eseguire l'installazione o l'aggiornamento

Il pacchetto MSI viene usato per installare o aggiornare l'interfaccia della riga di comando di Trino per HDInsight nel servizio Azure Kubernetes in Windows.

Scaricare e installare la versione più recente dell'interfaccia della riga di comando di Trino. Quando il programma di installazione chiede il permesso di apportare modifiche al computer, selezionare la casella "Yes" (Sì). Al termine dell'installazione, è necessario chiudere e riaprire tutti i prompt dei comandi di Windows o le finestre di PowerShell attivi per usare l'interfaccia della riga di comando di Trino.

Scaricare l'interfaccia della riga di comando di Trino: https://aka.ms/InstallTrinoCLIWindows

Eseguire l'interfaccia della riga di comando di Trino

È ora possibile eseguire l'interfaccia della riga di comando di Trino usando “l’interfaccia della riga di comando trino” nel prompt dei comandi e connettersi al cluster:

trino-cli --server <cluster_endpoint>

Nota

Se si esegue nel sistema operativo headless (nessun Web browser), l'interfaccia della riga di comando di Trino richiederà di usare il codice del dispositivo per l'autenticazione. È anche possibile specificare il parametro della riga di comando --auth AzureDeviceCode per forzare l'uso del codice del dispositivo. In questo caso, è necessario aprire un browser in un altro dispositivo/sistema operativo, immettere il codice visualizzato e autenticarsi e quindi tornare all'interfaccia della riga di comando.

Risoluzione dei problemi

Ecco alcuni problemi comuni che possono verificarsi durante l'installazione dell’interfaccia della riga di comando di Trino in Windows.

Il proxy blocca la connessione

Se non è possibile scaricare il programma di installazione MSI perché il proxy blocca la connessione, assicurarsi che il proxy sia configurato correttamente. Per Windows 10, queste impostazioni vengono gestite nel riquadro Impostazioni > Rete e Internet > Proxy. Contattare l'amministratore di sistema per richiedere le impostazioni necessarie o in casi in cui il computer può essere gestito tramite configurazione o richiede una configurazione avanzata.

Per ottenere il file MSI, il proxy deve consentire le connessioni HTTPS agli indirizzi seguenti:

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

Disinstalla

È possibile disinstallare l'interfaccia della riga di comando di Trino dall'elenco "App e funzionalità" di Windows. Per eseguire la disinstallazione:

Piattaforma Istruzioni
Windows 10 Start > Impostazioni > App
Windows 8 e Windows 7 Start > Pannello di controllo > Programmi > Disinstalla un programma

In questo tipo di schermata digitare Trino nella barra di ricerca dei programmi. Il programma da disinstallare è elencato come “interfaccia della riga di comando di HDInsight Trino <versione>”. Selezionare questa applicazione e quindi fare clic sul pulsante Disinstalla.

Installare in Linux

L'interfaccia della riga di comando di Trino offre una shell interattiva basata su terminale per l'esecuzione di query. È possibile installare manualmente l'interfaccia della riga di comando di Trino in Linux selezionando l'opzione Installa script.

Requisiti

  • Java 8 o 11.

  • Aggiungere java a PATH o definire JAVA_HOME variabile di ambiente che punta alla directory di installazione di JRE, in modo che $JAVA_HOME/bin/java esista.

Eseguire l'installazione o l'aggiornamento

Sia per l'installazione che per l'aggiornamento dell'interfaccia della riga di comando è necessario eseguire nuovamente lo script di installazione. Installare l'interfaccia della riga di comando eseguendo curl.

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

Lo script può anche essere scaricato ed eseguito nell'ambiente locale. Potrebbe essere necessario riavviare la shell per rendere effettive le modifiche.

Eseguire l'interfaccia della riga di comando di Trino

È ora possibile eseguire l'interfaccia della riga di comando di Trino con il “comando dell’interfaccia della riga di comando trino” dalla shell e connettersi al cluster:

trino-cli --server <cluster_endpoint>

Nota

Se si esegue nel sistema operativo headless (nessun Web browser) l'interfaccia della riga di comando di Trino richiederà di usare il codice del dispositivo per l'autenticazione. È anche possibile specificare il parametro della riga di comando --auth AzureDeviceCode per forzare l'uso del codice del dispositivo. In questo caso è necessario aprire un browser in un altro dispositivo/sistema operativo, immettere il codice visualizzato e autenticarsi e quindi tornare all'interfaccia della riga di comando.

Risoluzione dei problemi

Di seguito sono riportati alcuni problemi comuni che possono verificarsi durante l'installazione manuale.

Errore curl di tipo "Object Moved"

Se viene restituito da curl un errore relativo al parametro o se viene visualizzato un messaggio di errore che include il testo "Object Moved", tenta di usare l'URL completo invece dell'URL di reindirizzamento aka.ms:

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

comando dell’interfaccia della riga di comando trino non trovato

hash -r

Questo problema può verificarsi anche se la shell non è stata riavviata dopo l'installazione. Assicurarsi che la posizione del comando dell’interfaccia della riga di comando trino ($HOME/bin) sia presente nel $PATH.

Il proxy blocca la connessione

Per ottenere gli script di installazione, il proxy deve consentire le connessioni HTTPS agli indirizzi seguenti:

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

Disinstalla

Per rimuovere tutti i file comando dell’interfaccia della riga di comando trino eseguire:

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

Autenticazione

L'interfaccia della riga di comando di Trino supporta vari metodi di autenticazione di Microsoft Entra usando i parametri della riga di comando. Nella tabella seguente vengono descritti i parametri e i metodi di autenticazione importanti. Per altre informazioni, vedere Autenticazione.

Descrizione dei parametri disponibile anche nell'interfaccia della riga di comando:

trino-cli --help
Parametro Significato Obbligatorio Descrizione
aut Nome del metodo di autenticazione No Determina come sono fornite le credenziali utente. Se non specificato, usa AzureDefault.
azure-client ID client Sì per AzureClientSecret, AzureClientCertificate. ID client dell'entità servizio/applicazione.
azure-tenant ID tenant Sì per AzureClientSecret, AzureClientCertificate. ID tenant di Microsoft Entra
azure-certificate-path Percorso del file del certificato Sì per AzureClientCertificate. Percorso del file pfx/pem con certificato.
azure-use-token-cache Usare o meno la cache dei token No Se specificato, il token di accesso viene memorizzato nella cache e riutilizzato nelle modalità AzureDefault, AzureInteractive, AzureDeviceCode.
azure-scope Ambito del token No Stringa di ambito di Microsoft Entra con cui richiedere un token.
use-device-code Usare o meno il metodo di codice del dispositivo No È equivalente a --auth AzureDeviceCode.
password Segreto client per l'entità servizio Sì per AzureClientSecret. Segreto/password per l'entità servizio quando si usa la modalità AzureClientSecret.
access-token Token di accesso JWT No Se il token di accesso è ottenuto esternamente, può essere fornito usando questo parametro. In questo caso, il parametro auth non è consentito.

Esempi

Descrizione Comando dell'interfaccia della riga di comando
AzureDefault trino-cli --server cluster1.pool1.region.projecthilo.net
Autenticazione interattiva del browser trino-cli --server cluster1.pool1.region1.projecthilo.net --auth AzureInteractive
Usare la cache dei token trino-cli --server cluster1.pool1.region1.projecthilo.net --auth AzureInteractive --azure-use-token-cache
Entità servizio con segreto 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
Entità servizio e certificato protetto (viene richiesta la password) 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

Risoluzione dei problemi

MissingAccessToken o InvalidAccessToken

L'interfaccia della riga di comando mostra uno degli errori:

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"
}]

Per risolvere il problema, provare i passaggi seguenti:

  1. Uscire dall'interfaccia della riga di comando di Trino.
  2. Eseguire az logout
  3. Eseguire az login -t <your-trino-cluster-tenantId>
  4. Ora questo comando dovrebbe funzionare:
trino-cli --server <cluster-endpoint>
  1. In alternativa, specificare i parametri auth/tenant:
trino-cli --server <cluster-endpoint> --auth AzureInteractive --azure-tenant <trino-cluster-tenantId>

403 Negato

L'interfaccia della riga di comando mostra l'errore:

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>
]

Per risolvere il problema, aggiungere un utente o un gruppo al profilo di autorizzazione.