Compartilhar via


Trino CLI

Importante

O Azure HDInsight no AKS se aposentou em 31 de janeiro de 2025. Saiba mais com este comunicado.

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

Esse recurso está atualmente em versão prévia. Os termos de uso complementares para o Microsoft Azure Previews incluem mais termos legais que se aplicam aos recursos do Azure que estão em versão beta, em versão prévia ou ainda não lançados em disponibilidade geral. Para obter informações sobre essa versão prévia específica, consulte Azure HDInsight em informações de visualização do AKS. Para perguntas ou sugestões de recursos, envie uma solicitação no AskHDInsight com os detalhes e siga-nos para mais atualizações sobre a Comunidade do Azure HDInsight .

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

Instalar no Windows

Para o Windows, a CLI do Trino para HDInsight no AKS é instalada por meio de uma MSI, que fornece acesso à CLI por meio do CMD (Prompt de Comando) do Windows ou do PowerShell. Ao instalar o WSL (Subsistema do Windows para Linux), consulte Instalar no Linux.

Requisitos

  • 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 do Trino para HDInsight no AKS no Windows.

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

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

Executar a CLI do Trino

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

trino-cli --server <cluster_endpoint>

Nota

Se você estiver utilizando um sistema operacional sem interface gráfica (sem navegador da Web), a CLI do Trino irá solicitar o uso do código do dispositivo para a autenticação. Você também pode especificar o parâmetro 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 à CLI.

Solucionando problemas

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

Proxy bloqueia conexão

Se você não conseguir baixar o instalador msi porque o proxy está bloqueando a conexão, verifique se você tem seu proxy configurado corretamente. Para o Windows 10, essas configurações são gerenciadas no painel Configurações > Rede & Proxy da Internet >. Entre em contato com o administrador do sistema para obter as configurações necessárias ou para situações em que seu computador possa ser gerenciado por configuração ou exigir configuração avançada.

Para obter a 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 do Trino na lista "Aplicativos e Recursos" do Windows. Para desinstalar:

Plataforma Instruções
Windows 10 Iniciar > Configurações > Aplicativo
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 é listado como "HDInsight Trino CLI <versão>". Selecione este aplicativo e clique no botão Desinstalar.

Instalar no Linux

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

Requisitos

  • 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

Instalar e atualizar a CLI requer executar novamente o 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 do 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>

Nota

Se você executar no 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 o parâmetro 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 à CLI.

Solucionando problemas

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

erro "Objeto Movido" de curl

Se você receber um erro de curl relacionado ao parâmetro -L ou uma mensagem de erro incluindo o texto "Objeto Movido", tente usar a URL completa em vez do redirecionamento 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 reiniciou o shell após a instalação. Verifique se o local do comando trino-cli ($HOME/bin) está em seu $PATH.

O Proxy bloqueia de conexão

Para obter os scripts de instalação, o 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 arquivos trino-cli, execute:

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

Autenticação

A CLI do Trino dá suporte a 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 importantes e os métodos de autenticação, para obter mais informações, consulte Authentication.

Descrição de parâmetros disponível na CLI também:

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, usará AzureDefault.
azure-client ID do cliente Sim para AzureClientSecret, AzureClientCertificate. ID do cliente do principal de serviço/aplicativo.
azure-tenant ID do locatário Sim para o AzureClientSecret, AzureClientCertificate. ID do locatário do Microsoft Entra.
azure-certificate-path Caminho do arquivo para o certificado Sim para o AzureClientCertificate. Caminho para o arquivo pfx/pem com certificado.
azure-usar-cache-de-token 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.
Escopo do Azure Escopo do token Não Cadeia de caracteres de escopo do Microsoft Entra com a qual solicitar um token.
usar-código-do-dispositivo Usar o método de código de dispositivo ou não Não Equivalente a --auth AzureDeviceCode.
senha Segredo do cliente para a entidade de serviço Sim para AzureClientSecret. Senha/segredo 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, poderá ser fornecido usando esse parâmetro. Nesse caso, auth parâmetro não é permitido.

Exemplos

Descrição Comando da 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
Usar cache de token 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
Entidade de serviço e certificado protegido (a senha é 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

Solucionar problemas

MissingAccessToken (Token de Acesso Ausente) ou InvalidAccessToken (Token de Acesso Invá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 CLI do Trino.
  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 parâmetros de autenticação/locatário:
trino-cli --server <cluster-endpoint> --auth AzureInteractive --azure-tenant <trino-cluster-tenantId>

403 Proibido

A CLI mostra o 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 .