Трино CLI

Внимание

Эта функция в настоящее время доступна для предварительного ознакомления. Дополнительные условия использования для предварительных версий Microsoft Azure включают более юридические термины, применимые к функциям Azure, которые находятся в бета-версии, в предварительной версии или в противном случае еще не выпущены в общую доступность. Сведения об этой конкретной предварительной версии см. в статье Azure HDInsight в предварительной версии AKS. Для вопросов или предложений функций отправьте запрос на AskHDInsight с подробными сведениями и следуйте за нами для получения дополнительных обновлений в сообществе Azure HDInsight.

Интерфейс командной строки Trino для HDInsight в AKS предоставляет интерактивную оболочку на основе терминала для выполнения запросов.

Установка в Windows

Для Windows интерфейс командной строки Trino для HDInsight в AKS устанавливается с помощью MSI, который предоставляет доступ к CLI через командную строку Windows (CMD) или PowerShell. При установке для подсистема Windows для Linux (WSL) см. раздел "Установка в Linux".

Требования

  • Java 8 или 11.

  • Добавьте java.exe в PATH или определите переменную среды JAVA_HOME, указывающую на каталог установки JRE, таким образом, что %JAVA_HOME%\bin\java.exe существует.

Установка или обновление

Пакет MSI используется для установки или обновления Интерфейса командной строки Trino для HDInsight в AKS в Windows.

Скачайте и установите последнюю версию Интерфейса командной строки Trino. Если программа установки запрашивает разрешения на внесение изменений на вашем компьютере, установите флажок "Да". После завершения установки необходимо закрыть и повторно открыть любую активную командную строку Windows или окна PowerShell для использования Интерфейса командной строки Trino.

Скачать Trino CLI: https://aka.ms/InstallTrinoCLIWindows

Запуск интерфейса командной строки Trino

Теперь вы можете запустить интерфейс командной строки Trino с помощью trino-cli в командной строке и подключиться к кластеру:

trino-cli --server <cluster_endpoint>

Примечание.

Если вы работаете в ос без головы (нет веб-браузера), Trino CLI предложит использовать код устройства для проверки подлинности. Можно также указать параметр --auth AzureDeviceCode командной строки для принудительного использования кода устройства. В этом случае необходимо открыть браузер на другом устройстве или ОС, ввести код, отображаемый и пройти проверку подлинности, а затем вернуться в CLI.

Устранение неполадок

Ниже приведены некоторые распространенные проблемы при установке Trino CLI в Windows.

Подключение к прокси-серверу

Если вы не можете скачать установщик MSI, так как прокси-сервер блокирует подключение, убедитесь, что этот прокси-сервер правильно настроен. Для Windows 10 эти параметры управляются в области Параметры > Network и Internet > Proxy. Чтобы настроить обязательные параметры или решить вопросы, связанные с компьютером, который управляется с помощью конфигурации или для которого требуется расширенная настройка, обратитесь к системному администратору.

Чтобы вы могли получить MSI, ваш прокси-сервер должен разрешать HTTPS-подключения по следующим адресам:

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

Удаление

Вы можете удалить Интерфейс командной строки Trino из списка "Приложения и компоненты" Windows. Для удаления сделайте следующее:

Платформа Instructions
Windows 10 Запуск > приложения Параметры >
Windows 8 и Windows 7 Пуск > Панель управления > Программы > Удалить программу

На этом экране введите Trino в строку поиска программы. Программа для удаления содержит список в виде версии> HDInsight Trino CLI<. Выберите это приложение, а затем нажмите кнопку "Удалить".

Установка на Linux

Интерфейс командной строки Trino предоставляет интерактивную оболочку на основе терминала для выполнения запросов. Вы можете вручную установить интерфейс командной строки Trino в Linux, выбрав параметр "Установить сценарий".

Требования

  • Java 8 или 11.

  • Добавьте java в PATH или определите переменную среды JAVA_HOME, указывающую на каталог установки JRE, таким образом, что существует $JAVA_HOME/bin/java.

Установка или обновление

Для установки и обновления интерфейса командной строки требуется повторно запустить скрипт установки. Установите ИНТЕРФЕЙС командной строки, выполнив curl.

curl -L https://aka.ms/InstallTrinoCli | bash

Скрипт также можно скачать и выполнить на локальном компьютере. Чтобы изменения вступили в силу, может потребоваться перезапустить оболочку.

Запуск интерфейса командной строки Trino

Теперь вы можете запустить интерфейс командной строки Trino с помощью команды trino-cli из оболочки и подключиться к кластеру:

trino-cli --server <cluster_endpoint>

Примечание.

Если вы работаете в ос без головы (нет веб-браузера) Trino CLI предложит использовать код устройства для проверки подлинности. Можно также указать параметр --auth AzureDeviceCode командной строки для принудительного использования кода устройства. В этом случае необходимо открыть браузер на другом устройстве или ОС, ввести код, отображаемый и пройти проверку подлинности, а затем вернуться в CLI.

Устранение неполадок

Ниже указаны некоторые распространенные проблемы, возникающие при установке вручную.

Ошибка curl "Объект перемещен"

Если вы получаете сообщение об ошибке из curl, связанного с параметром -L, или сообщение об ошибке, включая текст "Перемещение объекта", пытается использовать полный URL-адрес вместо перенаправления aka.ms:

curl https://hdionaksresources.blob.core.windows.net/trino/cli/install.sh | bash

Команда trino-cli не найдена

hash -r

Кроме того, проблема может возникнуть, если вы не перезапустили оболочку после установки. Убедитесь, что расположение команды trino-cli ($HOME/bin) находится в $PATH.

Подключение к прокси-серверу

Чтобы вы могли получить скрипты установки, ваш прокси-сервер должен разрешать HTTPS-подключения по следующим адресам:

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

Удалить.

Чтобы удалить все трино-cli-файлы, выполните следующую команду:

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

Проверка подлинности

Trino CLI поддерживает различные методы проверки подлинности Microsoft Entra с помощью параметров командной строки. В следующей таблице описаны важные параметры и методы проверки подлинности, дополнительные сведения см. в статье "Проверка подлинности".

Описание параметров, доступных в CLI, также:

trino-cli --help
Параметр Значение Обязательное поле Описание
auth Имя метода проверки подлинности No Определяет, как предоставляются учетные данные пользователя. Если параметр не указан, используется AzureDefault.
azure-client Client ID Да для AzureClientSecret, AzureClientCertificate. Идентификатор клиента субъекта-службы или приложения.
azure-tenant Идентификатор клиента Да для AzureClientSecret, AzureClientCertificate. Идентификатор клиента Microsoft Entra.
azure-certificate-path Путь к файлу к сертификату Да для AzureClientCertificate. Путь к pfx/pem-файлу с сертификатом.
azure-use-token-cache Использование кэша маркеров или нет No Если он указан, маркер доступа кэшируется и повторно используется в AzureDefault, AzureInteractive, AzureDeviceCode режимах.
azure-область Область действия маркера No Строка Microsoft Entra область запрашивать маркер.
use-device-code Использование метода кода устройства или нет No Эквивалент --auth AzureDeviceCode.
password Секрет клиента для субъекта-службы Да для AzureClientSecret. Секрет или пароль для субъекта-службы при использовании AzureClientSecret режима.
маркер доступа Маркер доступа JWT No Если маркер доступа получен вневне, его можно указать с помощью этого параметра. В этом случае auth параметр не разрешен.

Примеры

Description Команда CLI
AzureDefault trino-cli --server cluster1.pool1.region.projecthilo.net
интерактивная аутентификация через браузер; trino-cli --server cluster1.pool1.region1.projecthilo.net --auth AzureInteractive
Использование кэша маркеров trino-cli --server cluster1.pool1.region1.projecthilo.net --auth AzureInteractive --azure-use-token-cache
Субъект-служба с секретом 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
Субъект-служба и защищенный сертификат (запрашивается пароль) 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

Устранение неполадок

MissingAccessToken или InvalidAccessToken

Интерфейс командной строки показывает любую из ошибок:

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"
}]

Чтобы устранить проблему, выполните следующие действия.

  1. Выход из Интерфейса командной строки Trino.
  2. Выполнить az logout
  3. Выполнить az login -t <your-trino-cluster-tenantId>
  4. Теперь эта команда должна работать:
trino-cli --server <cluster-endpoint>
  1. Кроме того, укажите параметры проверки подлинности или клиента:
trino-cli --server <cluster-endpoint> --auth AzureInteractive --azure-tenant <trino-cluster-tenantId>

403. Запрещено

Cli показывает ошибку:

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

Чтобы устранить проблему, добавьте пользователя или группу в профиль авторизации.