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
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
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:
- Saia da CLI do Trino.
- Execute
az logout
- Execute
az login -t <your-trino-cluster-tenantId>
- Agora este comando deve funcionar:
trino-cli --server <cluster-endpoint>
- 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.