Поделиться через


Трино CLI

Важный

Azure HDInsight на AKS было снято с эксплуатации 31 января 2025 г. Узнайте больше с этим объявлением.

Необходимо перенести рабочие нагрузки в Microsoft Fabric или эквивалентный продукт Azure, чтобы избежать резкого завершения рабочих нагрузок.

Важный

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

Интерфейс командной строки 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 эти параметры управляются в области "Параметры" > "Сеть & Интернет > прокси-сервер". Обратитесь к системному администратору за необходимыми параметрами или в ситуациях, когда компьютер может управляться конфигурацией или требовать расширенной настройки.

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

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

Деинсталляция

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

Платформа Инструкции
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.

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

Для установки и обновления интерфейса командной строки требуется повторно запустить скрипт установки. Установите CLI, запустив curl.

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

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

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

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

trino-cli --server <cluster_endpoint>

Заметка

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

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

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

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

Если вы получаете сообщение об ошибке из 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
Параметр Значение Обязательно Описание
аутентификация Имя метода проверки подлинности Нет Определяет, как предоставляются учетные данные пользователя. Если не указано, использует AzureDefault.
клиент Azure Идентификатор клиента Да для AzureClientSecret, AzureClientCertificate. Идентификатор клиента субъекта-службы или приложения.
azure-tenant Идентификатор клиента Да для AzureClientSecret, AzureClientCertificate. Идентификатор клиента Microsoft Entra.
azure-сертификат-путь Путь к файлу сертификата Да для AzureClientCertificate. Путь к pfx/pem-файлу с сертификатом.
Azure - использовать кэширование токенов Использовать кэш токенов или нет Нет Если предоставлен, маркер доступа кэшируется и повторно используется в режимах AzureDefault, AzureInteractive, AzureDeviceCode.
область Microsoft Azure Область токена Нет Строка области Microsoft Entra для запроса токена.
использовать-код-устройства Использовать метод кода устройства или нет? Нет Эквивалентно --auth AzureDeviceCode.
пароль Секрет клиента для субъекта-службы Да для AzureClientSecret. Секрет или пароль для учетной записи службы при использовании режима AzureClientSecret.
токен доступа Маркер доступа JWT Нет Если маркер доступа получен вневне, его можно указать с помощью этого параметра. В этом случае параметр auth не разрешен.

Примеры

Описание Команда 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>
]

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