CLI do Trino

Observação

Desativaremos o Microsoft Azure HDInsight no AKS em 31 de janeiro de 2025. Para evitar o encerramento abrupto das suas cargas de trabalho, você precisará migrá-las para o Microsoft Fabric ou para um produto equivalente do Azure antes de 31 de janeiro de 2025. Os clusters restantes em sua assinatura serão interrompidos e removidos do host.

Somente o suporte Básico estará disponível até a data de desativação.

Importante

Esse recurso está atualmente na visualização. Os Termos de uso complementares para versões prévias do Microsoft Azure 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, confira Informações sobre a versão prévia do Azure HDInsight no AKS. No caso de perguntas ou sugestões de recursos, envie uma solicitação no AskHDInsight com os detalhes e siga-nos para ver 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 Windows, a CLI do Trino para HDInsight no AKS é instalada por meio de um MSI, o que fornece acesso à CLI por meio do Prompt de Comando do Windows (CMD) 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 a variável de ambiente JAVA_HOME 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 última versão da CLI do Trino. Quando o instalador perguntar se 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.

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

Observação

Se você executar no sistema operacional sem interface gráfica (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.

Solução de problemas

Estes são alguns problemas comuns observados ao instalar a CLI do Trino no Windows.

Conexão de blocos de proxy

Se não for possível baixar o instalador do MSI porque o proxy está bloqueando a conexão, verifique se o proxy foi configurado corretamente. Para o Windows 10, essas configurações são gerenciadas no painel Configurações > Rede e Internet > Proxy. Entre em contato com o administrador do sistema para saber as configurações exigidas ou em situações em que o computador pode ser gerenciado por configuração ou precise de configurações avançadas.

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

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

Desinstalar

É possível desinstalar a CLI do Trino da lista de "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 nessa tela, digite Trino na barra de pesquisa do programa. O programa a ser desinstalado é listado como "CLI do Trino no HDInsight <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 a variável de ambiente JAVA_HOME 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 exige que se execute 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 você precise 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>

Observação

Se você executar no sistema operacional sem interface gráfica (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.

Solução de problemas

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

Erro "Objeto movido" no cURL

Se você receber um erro do curl relacionado ao parâmetro -L ou uma mensagem de erro incluindo o texto "Objeto movido", tente usar o URL completo 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.

Conexão de blocos de proxy

Para obter os scripts de instalação, o proxy precisa permitir conexões HTTPS com 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 Autenticação.

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

trino-cli --help
Parâmetro Significado Obrigatório Descrição
auth Nome do método de autenticação Não Determina como as credenciais de usuário são fornecidas. Se não for especificado, usará AzureDefault.
azure-client ID do Cliente Sim para AzureClientSecret, AzureClientCertificate. ID do cliente da entidade de serviço/do aplicativo.
azure-tenant ID do locatário Sim para AzureClientSecret, AzureClientCertificate. ID de locatário do Microsoft Entra.
azure-certificate-path Caminho do arquivo para certificado Sim para AzureClientCertificate. Caminho para o arquivo pfx/pem com certificado.
azure-use-token-cache Usar ou não cache de token Não Se fornecido, o token de acesso será 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 com a qual solicitar um token.
use-device-code Usar ou não o método de código do dispositivo Não Equivalente a --auth AzureDeviceCode.
password Segredo do cliente para entidade de serviço Sim para AzureClientSecret. Segredo/senha para a entidade de serviço ao usar o modo AzureClientSecret.
access-token Token de acesso JWT Não Se o token de acesso for obtido externamente, poderá ser fornecido usando esse parâmetro. Nesse caso, o parâmetro auth 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
Entidade 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 ou InvalidAccessToken

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. Execute az logout
  3. Execute 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.