다음을 통해 공유


Trino CLI

중요하다

AKS의 Azure HDInsight는 2025년 1월 31일에 사용 중지되었습니다. 이 공지 을 통해에 대해 더 알아보세요.

워크로드가 갑자기 종료되는 것을 방지하기 위해 워크로드를 Microsoft Fabric 또는 동등한 Azure 제품으로 워크로드를 마이그레이션해야 합니다.

중요하다

이 기능은 현재 미리 보기로 제공됩니다. Microsoft Azure 프리뷰에 대한 추가 사용 약관은 베타, 미리보기 또는 아직 일반적으로 제공되지 않은 Azure 기능에 적용되는 더 많은 법적 조건을 포함하고 있습니다. 이 특정 미리 보기에 대한 정보는 Azure HDInsight on AKS 미리 보기 정보 을 참조하세요. 질문이나 기능 제안이 있는 경우, 자세한 내용을 적어 AskHDInsight에 요청을 제출해 주시고, 더 많은 업데이트를 원하시면 Azure HDInsight 커뮤니티를 팔로우해 주세요.

AKS의 HDInsight용 Trino CLI는 쿼리를 실행하기 위한 터미널 기반 대화형 셸을 제공합니다.

Windows에 설치

Windows의 경우 AKS의 HDInsight용 Trino CLI는 MSI를 통해 설치되며, 이를 통해 CMD(Windows 명령 프롬프트) 또는 PowerShell을 통해 CLI에 액세스할 수 있습니다. WSL(Linux용 Windows 하위 시스템)에 설치하는 경우 Linux 설치를 참조하세요.

요구 사항

  • Java 8 또는 11.

  • PATH에 java.exe 추가하거나 %JAVA_HOME%\bin\java.exe 존재하도록 JRE 설치 디렉터리를 가리키는 JAVA_HOME 환경 변수를 정의합니다.

설치 또는 업데이트

MSI 패키지는 Windows의 AKS에서 HDInsight용 Trino CLI를 설치하거나 업데이트하는 데 사용됩니다.

Trino CLI의 최신 릴리스를 다운로드하여 설치합니다. 설치 관리자가 컴퓨터를 변경할 수 있는지 묻는 메시지가 표시되면 "예" 상자를 클릭합니다. 설치가 완료되면 Trino CLI를 사용하려면 활성 Windows 명령 프롬프트 또는 PowerShell 창을 닫고 다시 열어야 합니다.

Trino CLI 다운로드: https://aka.ms/InstallTrinoCLIWindows

Trino CLI 실행

이제 명령 프롬프트에서 "trino-cli"를 사용하여 Trino CLI를 실행하고 클러스터에 연결할 수 있습니다.

trino-cli --server <cluster_endpoint>

메모

헤드리스 OS(웹 브라우저 없음)에서 실행하는 경우 Trino CLI는 인증에 디바이스 코드를 사용하라는 메시지를 표시합니다. 명령줄 매개 변수 --auth AzureDeviceCode 지정하여 디바이스 코드를 강제로 사용할 수도 있습니다. 이 경우 다른 디바이스/OS에서 브라우저를 열고, 표시된 코드를 입력하고 인증한 다음, CLI로 돌아와야 합니다.

문제 해결

다음은 Windows에 Trino CLI를 설치할 때 발생하는 몇 가지 일반적인 문제입니다.

프록시는 연결 차단합니다.

프록시가 연결을 차단하고 있으므로 MSI 설치 관리자를 다운로드할 수 없는 경우 프록시가 제대로 구성되어 있는지 확인합니다. Windows 10의 경우 이러한 설정은 설정 > 네트워크 & 인터넷 > 프록시 창에서 관리됩니다. 시스템 관리자에게 필요한 설정 또는 컴퓨터가 구성 관리되거나 고급 설정이 필요할 수 있는 상황에 대해 문의하세요.

MSI를 얻으려면 프록시에서 다음 주소에 대한 HTTPS 연결을 허용해야 합니다.

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

제거

Windows "앱 및 기능" 목록에서 Trino CLI를 제거할 수 있습니다. 제거하려면 다음을 수행합니다.

플랫폼 지시
Windows 10 > 설정 > 앱 시작
Windows 8 및 Windows 7 제어판 > 시작 > 프로그램 > 프로그램 제거

이 화면에서 프로그램 검색 창에 Trino를 입력합니다. 제거할 프로그램은 "HDInsight Trino CLI <버전>"로 나열됩니다. 이 애플리케이션을 선택한 다음 제거 단추를 클릭합니다.

Linux에 설치

Trino CLI는 쿼리를 실행하기 위한 터미널 기반 대화형 셸을 제공합니다. 스크립트 설치 옵션을 선택하여 Linux에서 Trino CLI를 수동으로 설치할 수 있습니다.

요구 사항

  • Java 8 또는 11.

  • PATH에 java를 추가하거나 $JAVA_HOME/bin/java가 존재하도록 JRE 설치 디렉터리를 가리키는 JAVA_HOME 환경 변수를 정의합니다.

설치 또는 업데이트

CLI를 설치하고 업데이트하려면 설치 스크립트를 다시 실행해야 합니다. curl을 실행하여 CLI를 설치합니다.

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

스크립트를 다운로드하여 로컬로 실행할 수도 있습니다. 변경 내용을 적용하려면 셸을 다시 시작해야 할 수 있습니다.

Trino CLI 실행

이제 셸에서 "trino-cli" 명령을 사용하여 Trino CLI를 실행하고 클러스터에 연결할 수 있습니다.

trino-cli --server <cluster_endpoint>

메모

헤드리스 OS(웹 브라우저 없음)에서 실행하는 경우 Trino CLI는 인증에 디바이스 코드를 사용하라는 메시지를 표시합니다. 명령줄 매개 변수 --auth AzureDeviceCode 지정하여 디바이스 코드를 강제로 사용할 수도 있습니다. 이 경우 다른 디바이스/OS에서 브라우저를 열고, 표시된 코드를 입력하고 인증한 다음, CLI로 돌아와야 합니다.

문제 해결

다음은 수동 설치 중에 발생하는 몇 가지 일반적인 문제입니다.

curl "개체 이동" 오류

-L 매개 변수와 관련된 curl에서 오류가 발생하거나 "개체 이동"이라는 텍스트가 포함된 오류 메시지가 표시되면 aka.ms 리디렉션 대신 전체 URL을 사용하려고 합니다.

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/

제거

모든 trino-cli 파일을 제거하려면 다음을 실행합니다.

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

인증

Trino CLI는 명령줄 매개 변수를 사용하여 다양한 Microsoft Entra 인증 방법을 지원합니다. 다음 표에서는 중요한 매개 변수 및 인증 방법을 설명합니다. 자세한 내용은 인증참조하세요.

CLI에서도 사용할 수 있는 매개 변수 설명:

trino-cli --help
매개 변수 의미 필수 설명
인증 인증 방법의 이름 아니요 사용자 자격 증명을 제공하는 방법을 결정합니다. 지정하지 않으면 AzureDefault사용합니다.
애저 클라이언트 클라이언트 ID 예, AzureClientSecret, AzureClientCertificate입니다. 서비스 주체/애플리케이션의 클라이언트 ID입니다.
애저 테넌트 테넌트 ID 네, AzureClientSecret, AzureClientCertificate. Microsoft Entra 테넌트 ID입니다.
azure-인증서-경로 인증서에 대한 파일 경로 AzureClientCertificate에 예. 인증서가 있는 pfx/pem 파일의 경로입니다.
azure-use-token-cache 토큰 캐시 사용 여부 아니요 제공된 경우 액세스 토큰이 캐시되고 AzureDefault, AzureInteractive, AzureDeviceCode 모드에서 다시 사용됩니다.
애저-스코프 토큰 범위 아니요 토큰을 요청할 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

문제 해결

액세스 토큰 누락 또는 잘못된 액세스 토큰

CLI는 다음 오류 중 하나를 표시합니다.

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 CLI를 종료합니다.
  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>
]

이 문제를 해결하려면 권한 부여 프로필사용자 또는 그룹을 추가합니다.