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_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:/// の下に 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_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 ビッグ データ クラスターの概要」を参照してください。