Trino CLI
重要
AKS 上的 Azure HDInsight 於 2025 年 1 月 31 日淘汰。 透過此公告 深入瞭解。
您必須將工作負載移轉至 Microsoft Fabric 或對等 Azure 產品,以避免突然終止工作負載。
重要
這項功能目前為預覽狀態。 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。 安裝適用於 Linux 的 Windows 子系統時,請參閱在 Linux 上安裝 。
要求
將 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。 若要卸載:
平臺 | 說明 |
---|---|
Windows 10 | 啟動 > 設定 > 應用程式 |
Windows 8 和 Windows 7 | > [控制面板] > 程式 > 卸載程式 |
在此畫面上,在程式搜尋列中輸入 Trino。 要卸載的程式會列為「HDInsight Trino CLI <版本>」。 選取此應用程式,然後按兩下 [卸載] 按鈕。
在 Linux 上安裝
Trino CLI 提供基於終端的互動式介面來執行查詢。 您可以選取 [安裝腳本] 選項,在 Linux 上手動安裝 Trino CLI。
要求
將 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" 錯誤
如果您從 curl 收到與 -L 參數相關的錯誤,或收到包含「Object Moved」文字的錯誤訊息,請嘗試使用完整的 URL,而不是使用 aka.ms 的重定向:
curl https://hdionaksresources.blob.core.windows.net/trino/cli/install.sh | bash
找不到 trino-cli 命令
hash -r
如果您在安裝之後未重新啟動 Shell,也可能會發生此問題。 請確定 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
參數 | 意義 | 必填 | 描述 |
---|---|---|---|
認證 | 驗證方法的名稱 | 不 | 決定如何提供用戶認證。 如果未指定,請使用 AzureDefault 。 |
azure-client | 用戶端識別碼 | 適用於 AzureClientSecret, AzureClientCertificate 。 |
服務主體/應用程式的用戶端識別碼。 |
Azure 租戶 | 租戶身份碼 | 適用於 AzureClientSecret, AzureClientCertificate 。 |
Microsoft Entra 租戶識別碼。 |
azure-certificate-path | 憑證的檔案路徑 | 適用於 AzureClientCertificate 。 |
具有憑證的 pfx/pem 檔案路徑。 |
azure-使用-憑證快取 | 使用或不使用令牌快取的選擇 | 不 | 如果有提供,則存取令牌會在 AzureDefault, AzureInteractive, AzureDeviceCode 模式中被快取並重複使用。 |
azure-scope | 令牌範圍 | 不 | 使用 Microsoft Entra 的範圍字串來要求令牌。 |
使用設備代碼 | 是否使用裝置代碼方法 | 不 | 相當於 --auth AzureDeviceCode 。 |
密碼 | 服務主體的用戶端密鑰 | 適用於 AzureClientSecret 。 |
使用 AzureClientSecret 模式時,服務主體的秘密/密碼。 |
access-token | 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(訪問令牌無效)
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"
}]
若要解決此問題,請嘗試下列步驟:
- 結束 Trino CLI。
- 執行
az logout
- 執行
az login -t <your-trino-cluster-tenantId>
- 現在此指令應該可以運作:
trino-cli --server <cluster-endpoint>
- 或者指定身份驗證/承租者參數:
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>
]
若要解決此問題,請將使用者或群組新增至 授權設定檔。