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
です。
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
を使用します。
Active Directory 認証で curl
を使用するには、次のコマンドを実行します。
kinit <username>
このコマンドによって、使用する curl
に対して Kerberos トークンが生成されます。 次のセクションで説明するコマンドによって、curl
の --anyauth
パラメーターが指定されます。 ネゴシエート認証が必要な URL の場合、curl
を使用することで、その URL に対して認証を行うためのユーザー名とパスワードではなく、生成された Kerberos トークンが自動的に検出および使用されます。
ファイルの一覧表示
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 ビッグ データ クラスターの概要」を参照してください。