ビッグ データ クラスターに HDFS 階層制御のための ADLS Gen2 をマウントする方法

以降のセクションでは、Azure Data Lake Storage Gen2 データソースを使用して HDFS 階層制御を構成する方法の例を示します。

重要

Microsoft SQL Server 2019 ビッグ データ クラスターのアドオンは廃止されます。 SQL Server 2019 ビッグ データ クラスターのサポートは、2025 年 2 月 28 日に終了します。 ソフトウェア アシュアランス付きの SQL Server 2019 を使用する既存の全ユーザーはプラットフォームで完全にサポートされ、ソフトウェアはその時点まで SQL Server の累積更新プログラムによって引き続きメンテナンスされます。 詳細については、お知らせのブログ記事と「Microsoft SQL Server プラットフォームのビッグ データ オプション」を参照してください。

前提条件

Azure Data Lake Storage にデータを読み込む

次のセクションでは、HDFS 階層制御をテストするための Azure Data Lake Storage Gen2 の設定方法について説明します。 Azure Data Lake Storage に既にデータが格納されている場合は、このセクションを省略して独自のデータを使用することができます。

  1. Data Lake Storage Gen2 機能を持つストレージ アカウントを作成します

  2. このストレージ アカウントに自分のデータ用のファイル システムを作成します。

  3. CSV ファイルまたは Parquet ファイルをコンテナーにアップロードします。 これは、ビッグ データ クラスターの HDFS にマウントされる外部 HDFS データです。

マウントのための資格情報

OAuth 資格情報を使用してマウントする

OAuth 認証情報を使用してマウントするには、次の手順に従う必要があります。

  1. Azure portal に移動します

  2. Microsoft Entra ID に移動します。 このサービスは、左側のナビゲーション バーに表示されています。

  3. メニューから [アプリの登録] を選択し、新しい登録を作成します。

  4. Web アプリケーションを作成し、ウィザードに従います。 このステップで作成したアプリの名前を忘れないでください。 この名前を承認されたユーザーとして ADLS アカウントに追加する必要があります。 また、アプリを選択したときの [概要] のアプリケーション クライアント ID も記録しておきます。

  5. Web アプリケーションが作成されたら、[証明書とシークレット] に移動し、[新しいクライアント シークレット] を選択して作成します。 鍵の期間を選択します。 [追加] を使用してシークレットを保存します。

  6. [アプリの登録] ページに戻り、上部にある [エンドポイント] をクリックします。 OAuth トークン エンドポイント (v2) の URL を記録しておきます

  7. ここまでで、OAuth に関する次の内容をメモしておく必要があります。

    • Web アプリケーションの "アプリケーション クライアント ID"
    • クライアント シークレット
    • トークン エンドポイント

ADLS アカウントへのサービス プリンシパルの追加

  1. ポータルにもう一度移動し、お使いの ADLS ストレージ アカウントのファイル システムに移動して、左側のメニューで [アクセス制御 (IAM)] を選択します。
  2. [ロールの割り当てを追加する] を選択します
  3. [ストレージ BLOB データ共同作成者] ロールを選択します
  4. 上で作成した名前を検索します (一覧には表示されませんが、フル ネームを検索すると見つかります)。
  5. ロールを保存します。

マウントで資格情報を使用するまで、5 分から 10 分お待ちください

OAuth 資格情報の環境変数を設定する

ビッグ データ クラスターにアクセスできるクライアント マシンでコマンド プロンプトを開きます。 次の形式を使用して環境変数を設定します。資格情報はコンマ区切りの一覧にする必要があります。 Windows では 'set' コマンドが使用されます。 Linux を使用している場合は、代わりに 'export' を使用してください。

資格情報を指定するときは、コンマ "," の間の改行または空白文字を削除する必要があることに注意してください。 以下の書式設定は、読みやすくするためのものです。

   set MOUNT_CREDENTIALS=fs.azure.account.auth.type=OAuth,
   fs.azure.account.oauth.provider.type=org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider,
   fs.azure.account.oauth2.client.endpoint=[token endpoint],
   fs.azure.account.oauth2.client.id=[Application client ID],
   fs.azure.account.oauth2.client.secret=[client secret]

アクセス キーを使用してマウントする

Azure portal で ADLS アカウント用に取得できるアクセス キーを使用してマウントすることもできます。

ヒント

ストレージ アカウントのアクセス キー (<storage-account-access-key>) を検索する方法の詳細については、「アカウント キーと接続文字列を表示する」を参照してください。

アクセス キー資格情報の環境変数を設定する

  1. ビッグ データ クラスターにアクセスできるクライアント マシンでコマンド プロンプトを開きます。

  2. ビッグ データ クラスターにアクセスできるクライアント マシンでコマンド プロンプトを開きます。 次の形式を使用して環境変数を設定します。 資格情報はコンマ区切りの一覧にする必要があります。 Windows では 'set' コマンドが使用されます。 Linux を使用している場合は、代わりに 'export' を使用してください。

資格情報を指定するときは、コンマ "," の間の改行または空白文字を削除する必要があることに注意してください。 以下の書式設定は、読みやすくするためのものです。

set MOUNT_CREDENTIALS=fs.azure.abfs.account.name=<your-storage-account-name>.dfs.core.windows.net,
fs.azure.account.key.<your-storage-account-name>.dfs.core.windows.net=<storage-account-access-key>

リモート HDFS ストレージをマウントする

アクセス キーまたは OAuth を使用するための MOUNT_CREDENTIALS 環境変数を設定したので、マウントを開始することができます。 次の手順では、Azure Data Lake のリモート HDFS ストレージを、ビッグ データ クラスターのローカル HDFS ストレージにマウントします。

  1. kubectl を使用して、ビッグ データ クラスター内のエンドポイント controller-svc-external サービスの IP アドレスを検索します。 External-IP を検索します。

    kubectl get svc controller-svc-external -n <your-big-data-cluster-name>
    
  2. クラスターのユーザー名とパスワードによるコントローラー エンドポイントの外部 IP アドレスを使用して azdata でログインします。

    azdata login -e https://<IP-of-controller-svc-external>:30080
    
  3. 環境変数 MOUNT_CREDENTIALS を設定する (手順については上へスクロール)

  4. azdata bdc hdfs mount create を使用して、Azure でリモート HDFS ストレージをマウントします。 次のコマンドを実行する前に、プレースホルダーの値を置き換えます。

    azdata bdc hdfs mount create --remote-uri abfs://<blob-container-name>@<storage-account-name>.dfs.core.windows.net/ --mount-path /mounts/<mount-name>
    

    Note

    mount create コマンドは非同期です。 現時点では、マウントが成功したかどうかを示すメッセージはありません。 [状態] セクションで、マウントの状態を確認してください。

正常にマウントされていれば、HDFS データに対してクエリを実行し、そのデータに対して Spark ジョブを実行できます。 これは、--mount-path によって指定された場所にあるビッグ データ クラスターの HDFS に表示されます。

マウントの状態を取得する

ビッグ データ クラスター内のすべてのマウントの状態を一覧表示するには、次のコマンドを使用します。

azdata bdc hdfs mount status

HDFS で指定されたパスのマウントの状態を一覧表示するには、次のコマンドを使用します。

azdata bdc hdfs mount status --mount-path <mount-path-in-hdfs>

マウントを更新する

次の例では、マウントを更新しています。 この更新により、マウント キャッシュもクリアされます。

azdata bdc hdfs mount refresh --mount-path <mount-path-in-hdfs>

マウントを削除する

マウントを削除するには、azdata bdc hdfs mount delete コマンドを使用して、HDFS で次のマウント パスを指定します。

azdata bdc hdfs mount delete --mount-path <mount-path-in-hdfs>

次のステップ

SQL Server 2019 ビッグ データ クラスターの詳細については、「SQL Server 2019 ビッグ データ クラスターとは」を参照してください。