使用 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 來上傳/下載檔案,您需要 gateway-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
的驗證參數來配合交涉驗證。
若要使用 curl
搭配 Active Directory 驗證,請執行此命令:
kinit <username>
命令會產生 Kerberos 權杖供 curl
使用。 下節示範的命令會指定 curl
的 --anyauth
參數。 對於需要交涉驗證的 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 驗證的部署。 請參閱版本資訊中的透過閘道端點存取服務的認證。
針對不是使用 root 的端點,請使用下列 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 驗證的部署。 請參閱版本資訊中的透過閘道端點存取服務的認證。
針對不是使用 root 的端點,請使用下列 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:///
下建立目錄 test,請使用下列命令:
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 驗證的部署。 請參閱版本資訊中的透過閘道端點存取服務的認證。
針對不是使用 root 的端點,請使用下列 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 巨量資料叢集簡介。