curl을 사용하여 SQL Server 빅 데이터 클러스터의 HDFS로 데이터를 로드합니다
적용 대상: SQL Server 2019(15.x)
이 문서에서는 curl을 사용하여 SQL Server 2019 빅 데이터 클러스터의 HDFS로 데이터를 로드하는 방법을 설명합니다.
Important
Microsoft SQL Server 2019 빅 데이터 클러스터 추가 기능이 사용 중지됩니다. SQL Server 2019 빅 데이터 클러스터에 대한 지원은 2025년 2월 28일에 종료됩니다. Software Assurance를 사용하는 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
입니다.
WebHDFS에 액세스하는 URL 생성
이제 다음과 같이 WebHDFS에 액세스하는 데 사용할 URL을 생성할 수 있습니다.
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>
이 명령은 curl
이 사용할 Kerberos 토큰을 생성합니다. 다음 섹션에서 설명하는 명령은 curl
에 대해 --anyauth
매개 변수를 지정합니다. Negotiate 인증이 필요한 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:///
아래에 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 인증을 사용하는 배포에는 이 변경 내용이 적용되지 않습니다. 릴리스 정보에서 게이트웨이 엔드포인트를 통해 서비스에 액세스하기 위한 자격 증명을 참조하세요.
루트를 사용하지 않는 엔드포인트의 경우 다음 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 빅 데이터 클러스터 소개를 참조하세요.