次の方法で共有


ビッグ データ クラスターで 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 資格情報の環境変数を設定する

ビッグ データ クラスターにアクセスできるクライアント コンピューターでコマンド プロンプトを開きます。 次の形式を使用して環境変数を設定します。資格情報はコンマ区切りのリストに含まれている必要があります。 'set' コマンドは Windows で使用されます。 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. ビッグ データ クラスターにアクセスできるクライアント コンピューターでコマンド プロンプトを開きます。 次の形式を使用して環境変数を設定します。 資格情報はコンマ区切りのリストに含まれている必要があります。 'set' コマンドは Windows で使用されます。 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 を使用して、ビッグ データ クラスター内のエンドポイント コントローラー-svc-external サービスの IP アドレスを検索します。 外部 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>
    

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

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

マウント状況を確認する

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

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 ビッグ データ クラスターとは」を参照してください。