適用於: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_USERNAME
和 AZDATA_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_USERNAME
和 AZDATA_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_USERNAME
和 AZDATA_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 巨量數據叢集簡介。