Azure CLI を使用して Data Lake Storage Gen2 でクラスターを作成する

ストレージに Data Lake Storage Gen2 を使用する HDInsight クラスターを作成するには、次の手順に従います。

前提条件

  • Azure Data Lake Storage Gen2 に慣れていない場合は、概要セクションをご覧ください。
  • まだ Azure アカウントを持っていない場合は、無料のアカウントにサインアップしてから先に進んでください。
  • CLI スクリプトの例を実行するには、次の 3 つのオプションがあります。
    • Azure ポータルから Azure Cloud Shell を使用する (次のセクションを参照してください)。
    • 各コード ブロックの右上隅にある「試してみる」ボタンを利用して、埋め込まれた Azure Cloud Shell シェルを使用します。
    • ローカル CLI コンソールを使用する場合は、Azure CLI の最新バージョン (2.0.13 以降) をインストールします。 ユーザー割り当てマネージド ID をデプロイする Azure サブスクリプションに関連付けられているアカウントを使用して、Azure に az login でサインインします (Azure CLI)。

Azure Cloud Shell

Azure では、ブラウザーを介して使用できる対話型のシェル環境、Azure Cloud Shell がホストされています。 Cloud Shell で Bash または PowerShell を使用して、Azure サービスを操作できます。 ローカル環境に何もインストールしなくても、Cloud Shell にプレインストールされているコマンドを使用して、この記事のコードを実行できます。

Azure Cloud Shell を開始するには、以下のようにします。

オプション 例とリンク
コードまたはコマンド ブロックの右上隅にある [使ってみる] を選択します。 [使ってみる] を選択しても、コードまたはコマンドは Cloud Shell に自動的にはコピーされません。 Screenshot that shows an example of Try It for Azure Cloud Shell.
https://shell.azure.com に移動するか、[Cloud Shell を起動する] ボタンを選択して、ブラウザーで Cloud Shell を開きます。 Button to launch Azure Cloud Shell.
Azure portal の右上にあるメニュー バーの [Cloud Shell] ボタンを選択します。 Screenshot that shows the Cloud Shell button in the Azure portal

Azure Cloud Shell を使用するには、以下のようにします。

  1. Cloud Shell を開始します。

  2. コード ブロック (またはコマンド ブロック) の [コピー] ボタンを選択し、コードまたはコマンドをコピーします。

  3. Windows と Linux では Ctrl+Shift+V キーを選択し、macOS では Cmd+Shift+V キーを選択して、コードまたはコマンドを Cloud Shell セッションに貼り付けます。

  4. Enter キーを選択して、コードまたはコマンドを実行します。

警告

HDInsight クラスターの料金は、そのクラスターを使用しているかどうかに関係なく、分単位で課金されます。 使用後は、クラスターを必ず削除してください。 「HDInsight クラスターを削除する方法」をご覧ください。

サンプルのテンプレート ファイルをダウンロードして、サンプルのパラメーター ファイルをダウンロードできます。 このテンプレートと以下の Azure CLI のコード スニペットを使用する前に、次のプレース ホルダーを正しい値に置き換えます。

プレースホルダー 説明
<SUBSCRIPTION_ID> Azure サブスクリプションの ID です
<RESOURCEGROUPNAME> 新しいクラスターとストレージ アカウントを作成するリソース グループです。
<MANAGEDIDENTITYNAME> Azure Data Lake Storage Gen2 を使用するストレージ アカウントに対するアクセス許可を付与するマネージド ID の名前です。
<STORAGEACCOUNTNAME> 作成する、Azure Data Lake Storage Gen2 を使用する新しいストレージ アカウントです。
<FILESYSTEMNAME> このクラスターがストレージ アカウントで使用する必要があるファイルシステムの名前。
<CLUSTERNAME> HDInsight クラスターの名前です。
<PASSWORD> SSH と Ambari ダッシュボードを使用してクラスターにサインインするために選択したパスワードです。

以下のコード スニペットでは、次の初期手順が実行されます。

  1. Azure アカウントにログインします。
  2. 作成操作が実行されるアクティブなサブスクリプションを設定します。
  3. 新しいデプロイ アクティビティ用の新しいリソース グループを作成します。
  4. ユーザー割り当てマネージド ID を作成します。
  5. Data Lake Storage Gen2 の機能を使用するために、Azure CLI に拡張機能を追加します。
  6. --hierarchical-namespace true フラグを使用して、Data Lake Storage Gen2 を使用する新しいストレージ アカウントを作成します。
az login
az account set --subscription <SUBSCRIPTION_ID>

# Create resource group
az group create --name <RESOURCEGROUPNAME> --location eastus

# Create managed identity
az identity create -g <RESOURCEGROUPNAME> -n <MANAGEDIDENTITYNAME>

az extension add --name storage-preview

az storage account create --name <STORAGEACCOUNTNAME> \
    --resource-group <RESOURCEGROUPNAME> \
    --location eastus --sku Standard_LRS \
    --kind StorageV2 --hierarchical-namespace true

次に、ポータルにサインインします。 ストレージ アカウントでユーザー割り当ての新しいマネージド ID をストレージ BLOB データ所有者ロールに割り当てます。 この手順については、Azure portal の使用に関するページの手順 3 で説明しています。

重要

ストレージ アカウントに、ストレージ BLOB データ所有者ロールのアクセス許可を持つユーザー割り当て ID があることを確認します。そうでない場合、クラスターの作成は失敗します。

az deployment group create --name HDInsightADLSGen2Deployment \
    --resource-group <RESOURCEGROUPNAME> \
    --template-file hdinsight-adls-gen2-template.json \
    --parameters parameters.json

リソースをクリーンアップする

記事を完了したら、必要に応じてクラスターを削除できます。 HDInsight を使用すると、データは Azure Storage に格納されるため、クラスターは、使用されていない場合に安全に削除できます。 また、HDInsight クラスターは、使用していない場合でも課金されます。 クラスターの料金は Storage の料金の何倍にもなるため、クラスターを使用しない場合は削除するのが経済的にも合理的です。

次のコマンドのすべてまたは一部を入力して、リソースを削除します。

# Remove cluster
az hdinsight delete \
    --name $clusterName \
    --resource-group $resourceGroupName

# Remove storage container
az storage container delete \
    --account-name $AZURE_STORAGE_ACCOUNT \
    --name $AZURE_STORAGE_CONTAINER

# Remove storage account
az storage account delete \
    --name $AZURE_STORAGE_ACCOUNT \
    --resource-group $resourceGroupName

# Remove resource group
az group delete \
    --name $resourceGroupName

トラブルシューティング

HDInsight クラスターの作成で問題が発生した場合は、「アクセス制御の要件」を参照してください。

次のステップ

HDInsight クラスターが正常に作成されました。 次に、クラスターを操作する方法を学習してください。

Apache Spark クラスター

Apache Hadoop クラスター

Apache HBase クラスター