次の方法で共有


Azure Resource Manager テンプレートを使用して Azure Data Lake Storage Gen1 を使用する HDInsight クラスターを作成する

Azure PowerShell を使用して、 追加のストレージとして Azure Data Lake Storage Gen1 を使用して HDInsight クラスターを構成する方法について説明します。

サポートされている種類のクラスターでは、Data Lake Storage Gen1 を既定のストレージまたは追加のストレージ アカウントとして使用できます。 Data Lake Storage Gen1 を追加のストレージとして使用した場合、クラスター用の既定のストレージ アカウントは Azure Blob Storage (WASB) のままであり、クラスター関連のファイル (ログなど) は引き続きその既定のストレージに書き込まれますが、一方で処理対象のデータは Data Lake Storage Gen1 アカウントに格納することができます。 Data Lake Storage Gen1 を追加のストレージ アカウントとして使用しても、クラスターからストレージに対する読み取り/書き込みのパフォーマンスや機能は何も変化しません。

HDInsight クラスター記憶域で Data Lake Storage Gen1 を使用する

HDInsight で Data Lake Storage Gen1 を使用するための重要な考慮事項を次に示します。

  • 既定のストレージとしての Data Lake Storage Gen1 にアクセスできる HDInsight クラスターを作成するオプションは、HDInsight バージョン 3.5 および 3.6 で使用できます。

  • 追加のストレージとしての Data Lake Storage Gen1 にアクセスできる HDInsight クラスターを作成するオプションは、HDInsight バージョン 3.2、3.4、3.5、および 3.6 で使用できます。

この記事では、追加のストレージとして Data Lake Storage Gen1 を使用して Hadoop クラスターをプロビジョニングします。 Data Lake Storage Gen1 を既定のストレージとして使用して Hadoop クラスターを作成する方法については、「 Azure portal を使用して Data Lake Storage Gen1 を使用して HDInsight クラスターを作成する」を参照してください。

[前提条件]

Azure Az PowerShell モジュールを使用して Azure と対話することをお勧めします。 作業を開始するには、 Azure PowerShell のインストール に関するページを参照してください。 Az PowerShell モジュールに移行する方法については、「 Azure PowerShell を AzureRM から Az に移行する」を参照してください。

このチュートリアルを読み始める前に、次の項目を用意する必要があります。

  • Azure サブスクリプション「Azure 無料試用版を入手する」を参照してください。

  • Azure PowerShell 1.0 以降Azure PowerShell をインストールして構成する方法を参照してください。

  • Microsoft Entra サービス プリンシパル。 このチュートリアルの手順では、Microsoft Entra ID でサービス プリンシパルを作成する方法を説明します。 ただし、サービス プリンシパルを作成するには、Microsoft Entra 管理者である必要があります。 Microsoft Entra 管理者である場合は、この前提条件をスキップしてチュートリアルを進めることができます。

    Microsoft Entra 管理者でない場合は、サービス プリンシパルの作成に必要な手順を実行できません。 その場合は、Data Lake Storage Gen1 で HDInsight クラスターを作成する前に、まず Microsoft Entra 管理者がサービス プリンシパルを作成する必要があります。 また、「証明書を使用したサービス プリンシパルの作成」の説明に従って、 証明書を使用してサービス プリンシパルを作成する必要があります。

Data Lake Storage Gen1 を使用する HDInsight クラスターの作成

Resource Manager テンプレートとテンプレートを使用するための前提条件は、 GitHub の「新しい Data Lake Storage Gen1 を使用した HDInsight Linux クラスターのデプロイ」で入手できます。 このリンクで示されている手順に従って、Data Lake Storage Gen1 を追加ストレージとして使用する HDInsight クラスターを作成します。

上記リンクの手順には、PowerShell が必要です。 手順を進める前に、Azure アカウントにログインしていることを確認してください。 デスクトップで Azure PowerShell ウィンドウを新しく開き、次のスニペットを入力します。 ログインを求められたら、必ず、サブスクリプションの管理者または所有者としてログインしてください。

# Log in to your Azure account
Connect-AzAccount

# List all the subscriptions associated to your account
Get-AzSubscription

# Select a subscription
Set-AzContext -SubscriptionId <subscription ID>

テンプレートでは、次のリソースの種類をデプロイします。

Data Lake Storage Gen1 へのサンプル データのアップロード

Resource Manager テンプレートによって、Data Lake Storage Gen1 を使用する新しいストレージ アカウントが作成され、HDInsight クラスターに関連付けられます。 この時点で、いくつかのサンプル データを Data Lake Storage Gen1 にアップロードする必要があります。 このデータは、チュートリアルの後半で Data Lake Storage Gen1 を使用するストレージ アカウント内のデータにアクセスするジョブを HDInsight クラスターから実行するために必要です。 データをアップロードする方法については、「 Data Lake Storage Gen1 にファイルをアップロードする」を参照してください。 アップロードするサンプル データをお探しの場合は、Azure Data Lake Git リポジトリから [アンビュランス データ] フォルダーを取得できます。

サンプル データに関連 ACL を設定する

アップロードしたサンプル データに HDInsight クラスターからアクセスできるようにするには、HDInsight クラスターと Data Lake Storage Gen1 との間に ID を確立するのに使用した Microsoft Entra アプリケーションに、アクセスしようとしているファイルやフォルダーへのアクセスを持たせる必要があります。 このためには、次の手順を実行します。

  1. HDInsight クラスターと Data Lake Storage Gen1 を使用するストレージ アカウントに関連付けられている Microsoft Entra アプリケーションの名前を見つけます。 名前を検索する方法の 1 つは、Resource Manager テンプレートを使用して作成した HDInsight クラスター ブレードを開き、[ クラスター Microsoft Entra ID ] タブをクリックして、 サービス プリンシパルの表示名の値を探す方法です。
  2. 次に、HDInsight クラスターからアクセスするファイルまたはフォルダーにおいて、この Microsoft Entra アプリケーションにアクセス権を付与します。 Data Lake Storage Gen1 のファイル/フォルダーに適切な ACL を設定するには、「Data Lake Storage Gen1 でのデータのセキュリティ保護」を参照してください。

Data Lake Storage Gen1 を使用する HDInsight クラスターでテスト ジョブを実行する

HDInsight クラスターを構成した後は、クラスターでテスト ジョブを実行し、HDInsight クラスターが Data Lake Storage Gen1 にアクセス可能であるかどうかをテストできます。 これを行うには、先ほど Data Lake Storage Gen1 を使用するストレージ アカウントにアップロードしたサンプル データを使用してテーブルを作成するサンプル Hive ジョブを実行します。

このセクションでは、HDInsight Linux クラスターに SSH でアクセスし、サンプルの Hive クエリを実行します。 Windows クライアントを使用している場合は、https://www.chiark.greenend.org.uk/~sgtatham/putty/download.htmlからダウンロードできる PuTTY を使用することをお勧めします。

PuTTY の使用の詳細については、「 Windows から HDInsight 上の Linux ベースの Hadoop で SSH を使用する」を参照してください。

  1. 接続したら、次のコマンドを使用して Hive CLI を起動します。

    hive
    
  2. CLI を使用して、次のステートメントを入力し、Data Lake Storage Gen1 のサンプル データを使用して vehicles という名前の新しいテーブルを作成します。

    DROP TABLE vehicles;
    CREATE EXTERNAL TABLE vehicles (str string) LOCATION 'adl://<mydatalakestoragegen1>.azuredatalakestore.net:443/';
    SELECT * FROM vehicles LIMIT 10;
    

    次のような出力が表示されます。

    1,1,2014-09-14 00:00:03,46.81006,-92.08174,51,S,1
    1,2,2014-09-14 00:00:06,46.81006,-92.08174,13,NE,1
    1,3,2014-09-14 00:00:09,46.81006,-92.08174,48,NE,1
    1,4,2014-09-14 00:00:12,46.81006,-92.08174,30,W,1
    1,5,2014-09-14 00:00:15,46.81006,-92.08174,47,S,1
    1,6,2014-09-14 00:00:18,46.81006,-92.08174,9,S,1
    1,7,2014-09-14 00:00:21,46.81006,-92.08174,53,N,1
    1,8,2014-09-14 00:00:24,46.81006,-92.08174,63,SW,1
    1,9,2014-09-14 00:00:27,46.81006,-92.08174,4,NE,1
    1,10,2014-09-14 00:00:30,46.81006,-92.08174,31,N,1
    

HDFS コマンドを使用して Data Lake Storage Gen1 にアクセスする

Data Lake Storage Gen1 を使用するように HDInsight クラスターを構成したら、HDFS シェル コマンドを使用してストアにアクセスできます。

このセクションでは、HDInsight Linux クラスターに SSH でアクセスし、HDFS コマンドを実行します。 Windows クライアントを使用している場合は、https://www.chiark.greenend.org.uk/~sgtatham/putty/download.htmlからダウンロードできる PuTTY を使用することをお勧めします。

PuTTY の使用の詳細については、「 Windows から HDInsight 上の Linux ベースの Hadoop で SSH を使用する」を参照してください。

接続されたら、次の HDFS ファイルシステム コマンドを使用して、Data Lake Storage Gen1 を使用するストレージ アカウント内のファイルを一覧表示します。

hdfs dfs -ls adl://<storage account with Data Lake Storage Gen1 name>.azuredatalakestore.net:443/

これにより、以前に Data Lake Storage Gen1 にアップロードしたファイルが一覧表示されます。

15/09/17 21:41:15 INFO web.CaboWebHdfsFileSystem: Replacing original urlConnectionFactory with org.apache.hadoop.hdfs.web.URLConnectionFactory@21a728d6
Found 1 items
-rwxrwxrwx   0 NotSupportYet NotSupportYet     671388 2015-09-16 22:16 adl://mydatalakestoragegen1.azuredatalakestore.net:443/mynewfolder

hdfs dfs -put コマンドを使用して Data Lake Storage Gen1 にいくつかのファイルをアップロードし、hdfs dfs -ls を使用してファイルが正常にアップロードされたかどうかを確認することもできます。

次のステップ