Partilhar via


Trino CLI

Importante

O Azure HDInsight no AKS foi desativado em 31 de janeiro de 2025. Saiba mais com este anúncio.

Você precisa migrar suas cargas de trabalho para Microsoft Fabric ou um produto equivalente do Azure para evitar o encerramento abrupto de suas cargas de trabalho.

Importante

Esta funcionalidade está atualmente em pré-visualização. Os Termos de Utilização Suplementares para Previews do Microsoft Azure incluem mais termos legais que se aplicam a funcionalidades do Azure que estão em versão beta, em preview, ou ainda não disponibilizadas para disponibilização geral. Para obter informações sobre essa visualização específica, consulte Azure HDInsight no AKS informações de visualização. Para perguntas ou sugestões sobre funcionalidades, envie uma solicitação no AskHDInsight com os detalhes e siga-nos para obter mais atualizações na Comunidade do Azure HDInsight .

A CLI Trino para HDInsight no AKS fornece um shell interativo baseado em terminal para executar consultas.

Instalar no Windows

Para Windows, o Trino CLI para o HDInsight no AKS é instalado através de um MSI, que permite o acesso ao CLI usando o Prompt de Comando do Windows (CMD) ou o PowerShell. Ao instalar o Windows Subsystem for Linux (WSL), consulte Instalar no Linux.

Requerimentos

  • Java 8 ou 11.

  • Adicione java.exe ao PATH ou defina JAVA_HOME variável de ambiente apontando para o diretório de instalação do JRE, de modo que %JAVA_HOME%\bin\java.exe exista.

Instalar ou atualizar

O pacote MSI é usado para instalar ou atualizar a CLI Trino para HDInsight no AKS no Windows.

Baixe e instale a versão mais recente da CLI Trino. Quando o instalador perguntar se pode fazer alterações no seu computador, clique na caixa "Sim". Após a conclusão da instalação, você precisará fechar e reabrir qualquer janela ativa do Prompt de Comando do Windows ou do PowerShell para usar a CLI Trino.

Baixar Trino CLI: https://aka.ms/InstallTrinoCLIWindows

Executar a CLI Trino

Agora você pode executar a CLI Trino usando "trino-cli" no prompt de comando e conectar-se ao cluster:

trino-cli --server <cluster_endpoint>

Observação

Se você executar em um sistema operacional sem cabeça (sem navegador da Web), a CLI do Trino solicitará o uso do código do dispositivo para autenticação. Você também pode especificar parâmetros de linha de comando --auth AzureDeviceCode para forçar o uso do código do dispositivo. Nesse caso, você precisa abrir um navegador em outro dispositivo/sistema operacional, inserir o código exibido e autenticar e, em seguida, voltar para a CLI.

Solução de problemas

Aqui estão alguns problemas comuns vistos ao instalar a CLI Trino no Windows.

Proxy bloqueia a conexão

Se não conseguir transferir o instalador MSI porque o proxy está a bloquear a ligação, certifique-se de que tem o proxy corretamente configurado. Para o Windows 10, essas configurações são gerenciadas no painel Configurações > Rede & Internet > Proxy. Entre em contato com o administrador do sistema para obter as configurações necessárias ou para situações em que sua máquina pode ser gerenciada por configuração ou exigir configuração avançada.

Para obter o MSI, seu proxy precisa permitir conexões HTTPS para os seguintes endereços:

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

Desinstalar

Você pode desinstalar a CLI Trino da lista "Aplicativos e recursos" do Windows. Para desinstalar:

Plataforma Instruções
Windows 10 Iniciar > Definições > Aplicação
Windows 8 e Windows 7 Iniciar > Painel de Controle > Programas > Desinstalar um programa

Uma vez nesta tela, digite Trino na barra de pesquisa do programa. O programa a ser desinstalado está listado como "HDInsight Trino CLI <versão>." Selecione este aplicativo e, em seguida, clique no botão Desinstalar.

Instalar no Linux

A CLI Trino fornece um shell interativo baseado em terminal para executar consultas. Você pode instalar manualmente a CLI Trino no Linux selecionando a opção Instalar script.

Requerimentos

  • Java 8 ou 11.

  • Adicione java ao PATH ou defina JAVA_HOME variável de ambiente apontando para o diretório de instalação do JRE, de modo que $JAVA_HOME/bin/java exista.

Instalar ou atualizar

A instalação e a atualização da CLI exigem a nova execução do script de instalação. Instale a CLI executando curl.

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

O script também pode ser baixado e executado localmente. Talvez seja necessário reiniciar o shell para que as alterações entrem em vigor.

Executar a CLI Trino

Agora você pode executar a CLI do Trino com o comando "trino-cli" do shell e conectar-se ao cluster:

trino-cli --server <cluster_endpoint>

Observação

Se executares um sistema operativo sem interface gráfica (sem navegador da web), a Trino CLI solicitará o uso do código do dispositivo para autenticação. Você também pode especificar parâmetros de linha de comando --auth AzureDeviceCode para forçar o uso do código do dispositivo. Neste caso, você precisa abrir um navegador em outro dispositivo / sistema operacional, inserir o código exibido e autenticar e, em seguida, voltar para a CLI.

Solução de problemas

Aqui estão alguns problemas comuns vistos durante uma instalação manual.

Erro "Object Moved" em curl

Caso receberes um erro de curl relacionado ao parâmetro -L ou uma mensagem de erro incluindo o texto "Object Moved", tenta usar a URL completa em vez do redirecionamento do aka.ms:

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

comando trino-cli não encontrado

hash -r

O problema também pode ocorrer se você não reiniciar o shell após a instalação. Certifique-se de que a localização do comando trino-cli ($HOME/bin) está no seu $PATH.

Proxy bloqueia a conexão

Para obter os scripts de instalação, seu proxy precisa permitir conexões HTTPS para os seguintes endereços:

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

desinstalar

Para remover todos os ficheiros trino-cli, execute:

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

Autenticação

Trino CLI suporta vários métodos de autenticação do Microsoft Entra usando parâmetros de linha de comando. A tabela a seguir descreve os parâmetros e métodos de autenticação importantes, para obter mais informações, consulte de autenticação.

Descrição dos parâmetros também disponível na CLI.

trino-cli --help
Parâmetro Significado Necessário Descrição
autenticação Nome do método de autenticação Não Determina como as credenciais do usuário são fornecidas. Se não for especificado, usa AzureDefault.
azure-client ID do Cliente Sim para AzureClientSecret, AzureClientCertificate. ID do cliente do principal de serviço/aplicação.
azure-tenant ID do inquilino Sim para AzureClientSecret, AzureClientCertificate. ID de tenant do Microsoft Entra.
caminho-do-certificado-azure Caminho do arquivo para o certificado Sim a favor de AzureClientCertificate. Caminho para o arquivo pfx/pem com certificado.
azure-use-token-cache Usar cache de token ou não Não Se fornecido, o token de acesso é armazenado em cache e reutilizado nos modos AzureDefault, AzureInteractive, AzureDeviceCode.
azure-scope Escopo do token Não Cadeia de caracteres de escopo do Microsoft Entra para solicitar um token com.
usar-código-do-dispositivo Use o método de código de dispositivo ou não Não Equivalente a --auth AzureDeviceCode.
palavra-passe Segredo do cliente para o principal de serviço Sim para AzureClientSecret. Segredo/senha para a entidade de serviço ao usar o modo AzureClientSecret.
token de acesso Token de acesso JWT Não Se o token de acesso for obtido externamente, pode ser fornecido usando este parâmetro. Nesse caso, auth parâmetro não é permitido.

Exemplos

Descrição Comando CLI
AzureDefault trino-cli --server cluster1.pool1.region.projecthilo.net
Autenticação interativa do navegador trino-cli --server cluster1.pool1.region1.projecthilo.net --auth AzureInteractive
Utilizar cache de tokens trino-cli --server cluster1.pool1.region1.projecthilo.net --auth AzureInteractive --azure-use-token-cache
Principal de serviço com segredo 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
Principal de serviço e certificado protegido (palavra-passe é solicitada) 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

Solução de problemas

TokenDeAcessoEmFalta ou TokenDeAcessoInválido

A CLI mostra um dos erros:

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

Para resolver o problema, tente as seguintes etapas:

  1. Saia da Trino CLI.
  2. Executar az logout
  3. Executar az login -t <your-trino-cluster-tenantId>
  4. Agora este comando deve funcionar:
trino-cli --server <cluster-endpoint>
  1. Como alternativa, especifique os parâmetros auth/tenant:
trino-cli --server <cluster-endpoint> --auth AzureInteractive --azure-tenant <trino-cluster-tenantId>

403 Proibido

A CLI mostra erro:

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

Para resolver o problema, adicione usuário ou grupo ao perfil de autorização .