共用方式為


Trino CLI

重要

此功能目前為預覽功能。 適用於 Microsoft Azure 預覽版的補充使用規定包含適用於 Beta 版、預覽版或尚未發行至正式運作之 Azure 功能的更合法條款。 如需此特定預覽的相關信息,請參閱 AKS 預覽資訊的 Azure HDInsight。 如需問題或功能建議,請在 AskHDInsight提交要求,並提供詳細數據,並遵循我們在 Azure HDInsight 社群取得更多更新。

AKS 上 HDInsight 的 Trino CLI 提供終端式互動式殼層來執行查詢。

在 Windows 上安裝

針對 Windows,AKS 上的 HDInsight Trino CLI 是透過 MSI 安裝,可讓您透過 Windows 命令提示字元 (CMD) 或 PowerShell 存取 CLI。 安裝 Windows 子系統 Linux 版 (WSL) 時,請參閱在 Linux 上安裝。

需求

  • Java 8 或 11

  • 將java.exe新增至PATH,或定義指向JRE安裝目錄的JAVA_HOME環境變數,因此 %JAVA_HOME%\bin\java.exe 存在。

安裝或更新

MSI 套件用於在 Windows 上的 AKS 上安裝或更新 HDInsight 的 Trino CLI。

下載並安裝最新版的 Trino CLI。 當安裝程式詢問計算機是否可以進行變更時,請按兩下 [是] 方塊。 安裝完成之後,您必須關閉並重新開啟任何作用中的 Windows 命令提示字元或 PowerShell 視窗,才能使用 Trino CLI。

下載 Trino CLI: https://aka.ms/InstallTrinoCLIWindows

執行 Trino CLI

您現在可以在命令提示字元中使用 「trino-cli」 執行 Trino CLI,並連線到叢集:

trino-cli --server <cluster_endpoint>

注意

如果您在無外設作業系統上執行 (沒有網頁瀏覽器),Trino CLI 會提示您使用裝置程式代碼進行驗證。 您也可以指定命令列參數 --auth AzureDeviceCode 來強制使用裝置程式代碼。 在此情況下,您必須在另一個裝置/OS 上開啟瀏覽器、輸入顯示並驗證的程式代碼,然後返回 CLI。

疑難排解

以下是在 Windows 上安裝 Trino CLI 時的一些常見問題。

Proxy 封鎖連線

如果您因為 Proxy 封鎖連線而無法下載 MSI 安裝程式,請確定您已正確設定 Proxy。 針對 Windows 10,這些設定會在 [設定 > 網络與因特網 > Proxy] 窗格中進行管理。 請連絡系統管理員以取得必要的設定,或針對計算機可能受設定管理或需要進階設定的情況。

若要取得 MSI,您的 Proxy 必須允許 HTTPS 連線到下列位址:

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

解除安裝

您可以從 Windows “Apps and Features” 列表中卸載 Trino CLI。 若要卸載:

平台 Instructions
Windows 10 開始 > 設定 > 應用程式
Windows 8 和 Windows 7 [開始] > [控制台] > [程式集] > [解除安裝程式]

在此畫面上,在程式搜尋列中輸入 Trino。 要卸載的程式會列為「HDInsight Trino CLI <版本>」。 選取此應用程式,然後按兩下 [卸載] 按鈕。

在 Linux 上安裝

Trino CLI 提供以終端為基礎的互動式殼層來執行查詢。 您可以選取 [安裝腳本] 選項,在 Linux 上手動安裝 Trino CLI。

需求

  • Java 8 或 11

  • 將 java 新增至 PATH,或定義指向 JRE 安裝目錄的JAVA_HOME環境變數,讓$JAVA_HOME/bin/java 存在。

安裝或更新

安裝和更新 CLI 都需要重新執行安裝腳本。 執行 curl 來安裝 CLI。

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

您也可以下載文稿並在本機執行。 您可能需要重新啟動殼層,才能讓變更生效。

執行 Trino CLI

您現在可以從殼層使用 “trino-cli” 命令來執行 Trino CLI,並聯機到叢集:

trino-cli --server <cluster_endpoint>

注意

如果您在無外設作業系統上執行 (沒有網頁瀏覽器) Trino CLI 將會提示您使用裝置程式代碼進行驗證。 您也可以指定命令列參數 --auth AzureDeviceCode 來強制使用裝置程式代碼。 在此情況下,您必須在另一個裝置/OS 上開啟瀏覽器、輸入顯示並驗證的程式代碼,然後返回 CLI。

疑難排解

以下是手動安裝期間看到的一些常見問題。

curl “Object Moved” 錯誤

如果您從與 -L 參數相關的 curl 收到錯誤,或包含「已移動物件」文字的錯誤訊息,則嘗試使用完整的 URL,而不是重新導向 aka.ms:

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

找不到 trino-cli 命令

hash -r

如果您在安裝之後未重新啟動殼層,也可能會發生此問題。 請確定 trino-cli 命令的位置 ($HOME/bin) 位於您的$PATH。

Proxy 封鎖連線

若要取得安裝文稿,您的 Proxy 必須允許 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
參數 意義 必要 描述
auth 驗證方法的名稱 No 決定如何提供用戶認證。 如果未指定,請使用 AzureDefault
azure-client Client ID 是的 AzureClientSecret, AzureClientCertificate 服務主體/應用程式的用戶端識別碼。
azure-tenant 租用戶識別碼 是的 AzureClientSecret, AzureClientCertificate Microsoft Entra 租用戶 ID。
azure-certificate-path 憑證的檔案路徑 是的 AzureClientCertificate 具有憑證的 pfx/pem 檔案路徑。
azure-use-token-cache 使用令牌快取或不使用 No 如果提供,存取令牌會在模式中 AzureDefault, AzureInteractive, AzureDeviceCode 快取並重複使用。
azure-scope 權杖範圍 No Microsoft Entra 範圍字串,用來要求令牌。
use-device-code 使用裝置程式代碼方法或不使用 No 相當於 --auth AzureDeviceCode
password 服務主體的客戶端密碼 是的 AzureClientSecret 使用 AzureClientSecret 模式時服務主體的秘密/密碼。
access-token JWT 存取令牌 No 如果從外部取得存取令牌,可以使用此參數來提供。 在此情況下, 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

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

若要解決此問題,請將使用者或群組新增至 授權配置檔