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