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.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 新增至 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"
}]
若要解決此問題,請嘗試下列步驟:
- 結束 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>
]
若要解決此問題,請將使用者或群組新增至 授權配置檔。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應