共用方式為


使用 curl 將數據載入 SQL Server 巨量數據叢集上的 HDFS

適用於:SQL Server 2019 (15.x)

本文說明如何使用 curl 將數據載入 SQL Server 2019 巨量數據叢集上的 HDFS。

這很重要

Microsoft SQL Server 2019 巨量資料叢集附加元件將會淘汰。 SQL Server 2019 巨量資料叢集的支援將於 2025 年 2 月 28 日結束。 平台上將完全支援含軟體保證 SQL Server 2019 的所有現有使用者,而且軟體將會持續透過 SQL Server 累積更新來維護,直到該時間為止。 如需詳細資訊,請參閱公告部落格文章Microsoft SQL Server 平台上的巨量資料選項

先決條件

取得服務外部IP

WebHDFS 會在部署完成時啟動,且其存取會通過 Knox。 Knox 端點會透過名為 gateway-svc-external 的 Kubernetes 服務公開。 若要建立上傳/下載檔案所需的 WebHDFS URL,您需要 閘道-svc-external 服務外部 IP 位址和巨量數據叢集的名稱。 您可以執行下列命令來取得 gateway-svc-external 服務外部 IP 位址:

kubectl get service gateway-svc-external -n <big data cluster name> -o json | jq -r .status.loadBalancer.ingress[0].ip

備註

以下是 <big data cluster name> 您在部署組態檔中指定的叢集名稱。 預設名稱為 mssql-cluster

建構 URL 以存取 WebHDFS

現在,您可以建構 URL 來存取 WebHDFS,如下所示:

https://<gateway-svc-external service external IP address>:30443/gateway/default/webhdfs/v1/

例如:

https://13.66.190.205:30443/gateway/default/webhdfs/v1/

使用 Active Directory 進行驗證

若要使用 Active Directory 進行部署,請使用驗證參數搭配 curl Negotiate 驗證。

若要搭配 Active Directory 驗證使用 curl ,請執行此命令:

kinit <username>

命令會產生 Kerberos 令牌供 curl 使用。 下一節中示範的命令會指定 --anyauth 作為 curl 的參數。 對於需要交涉驗證的 URL, curl 會自動偵測並使用產生的 Kerberos 令牌,而不是使用者名稱和密碼來向 URL 進行驗證。

列出檔案

若要列出 hdfs:///product_review_data 下的檔案,請使用下列 curl 命令:

curl -i -k --anyauth -u root:<AZDATA_PASSWORD> -X GET 'https://<gateway-svc-external IP external address>:30443/gateway/default/webhdfs/v1/product_review_data/?op=liststatus'

從 SQL Server 2019 (15.x) CU 5 開始,當您部署具有基本身份驗證的新叢集時,所有端點(包括閘道)使用 AZDATA_USERNAMEAZDATA_PASSWORD。 升級至 CU 5 之叢集上的端點會繼續使用 root 作為使用者名稱來連線至閘道端點。 這項變更不適用於使用 Active Directory 驗證的部署。 請參閱在版本資訊中的透過閘道端點存取服務的憑證

對於不使用根目錄的端點,請使用下列 curl 命令:

curl -i -k --anyauth -u <AZDATA_USERNAME>:<AZDATA_PASSWORD> -X GET 'https://<gateway-svc-external IP external address>:30443/gateway/default/webhdfs/v1/product_review_data/?op=liststatus'

將本機檔案放入 HDFS

若要將新的檔案從本機目錄 test.csv 至product_review_data目錄,請使用下列 curl 命令(需要 Content-Type 參數):

curl -i -L -k --anyauth -u root:<AZDATA_PASSWORD> -X PUT 'https://<gateway-svc-external IP external address>:30443/gateway/default/webhdfs/v1/product_review_data/test.csv?op=create' -H 'Content-Type: application/octet-stream' -T 'test.csv'

從 SQL Server 2019 (15.x) CU 5 開始,當您部署具有基本身份驗證的新叢集時,所有端點(包括閘道)使用 AZDATA_USERNAMEAZDATA_PASSWORD。 升級至 CU 5 之叢集上的端點會繼續使用 root 作為使用者名稱來連線至閘道端點。 這項變更不適用於使用 Active Directory 驗證的部署。 請參閱在版本資訊中的透過閘道端點存取服務的憑證

對於不使用根目錄的端點,請使用下列 curl 命令:

curl -i -L -k --anyauth -u <AZDATA_USERNAME>:<AZDATA_PASSWORD> -X PUT 'https://<gateway-svc-external IP external address>:30443/gateway/default/webhdfs/v1/product_review_data/test.csv?op=create' -H 'Content-Type: application/octet-stream' -T 'test.csv'

建立目錄

若要在下建立目錄hdfs:///,請使用下列命令:

curl -i -L -k --anyauth -u root:<AZDATA_PASSWORD> -X PUT 'https://<gateway-svc-external IP external address>:30443/gateway/default/webhdfs/v1/test?op=MKDIRS'

從 SQL Server 2019 (15.x) CU 5 開始,當您部署具有基本身份驗證的新叢集時,所有端點(包括閘道)使用 AZDATA_USERNAMEAZDATA_PASSWORD。 升級至 CU 5 之叢集上的端點會繼續使用 root 作為使用者名稱來連線至閘道端點。 這項變更不適用於使用 Active Directory 驗證的部署。 請參閱在版本資訊中的透過閘道端點存取服務的憑證

對於不使用根目錄的端點,請使用下列 curl 命令:

curl -i -L -k --anyauth -u <AZDATA_USERNAME>:<AZDATA_PASSWORD> -X PUT 'https://<gateway-svc-external IP external address>:30443/gateway/default/webhdfs/v1/test?op=MKDIRS'

後續步驟

如需詳細資訊,請參閱 SQL Server 巨量數據叢集簡介