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
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
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:
- Saia da CLI do Trino.
- Executar
az logout
- Executar
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 .