次の方法で共有


チュートリアル: Azure Automation で Azure HDInsight クラスターを作成する

Azure Automation を使うと、クラウドで実行されるスクリプトを作成し、オンデマンドで、またはスケジュールに基づいて、Azure リソースを管理できます。 この記事では、Azure HDInsight クラスターを作成および削除するための PowerShell Runbook を作成する方法について説明します。

このチュートリアルでは、以下の内容を学習します。

  • HDInsight との対話に必要なモジュールをインストールする。
  • クラスターの作成時に必要な資格情報を作成して保存する。
  • HDInsight クラスターを作成するための新しい Automation Runbook を作成する。

Azure サブスクリプションがない場合は、開始する前に無料アカウントを作成してください。

前提条件

HDInsight モジュールをインストールする

  1. Azure portal にサインインします。

  2. Automation アカウントを選択します。

  3. [共有リソース][モジュール ギャラリー] を選択します。

  4. ボックスに「AzureRM.Profile」と入力し、Enter キーを選択して検索します。 使用可能な検索結果を選択します。

  5. AzureRM.profile の画面で、[インポート] を選択します。 Azure モジュールを更新するチェックボックスをオンにして、[OK] を選択します。

    AzureRM.profile モジュールのインポートを示すスクリーンショット。

  6. モジュール ギャラリーに戻ります。 [共有リソース][モジュール ギャラリー] を選択します。

  7. HDInsight」と入力し、[AzureRM.HDInsight] を選択します。

    HDInsight モジュールの参照を示すスクリーンショット。

  8. [AzureRM.HDInsight] ペインで、[インポート]>[OK] を選択します。

    AzureRM.HDInsight モジュールのインポート メッセージを示すスクリーンショット。

資格情報を作成する

  1. [共有リソース] で、[資格情報] を選択します。

  2. [資格情報の追加] を選択します。

  3. [新しい資格情報] ペインで必要な情報を入力します。 この資格情報は、クラスターのパスワードを格納するために使用されます。 これを使用して Ambari にサインインします。

    プロパティ
    名前 cluster-password
    ユーザー名 admin
    Password SECURE_PASSWORD
    [パスワードの確認入力] SECURE_PASSWORD
  4. [作成] を選択します

  5. 新しい認証情報 ssh-password について同じ手順を繰り返し、ユーザー名 sshuser と任意のパスワードを使用します。 [作成] を選択します この資格情報は、クラスターの Secure Shell プロトコル パスワードを格納するために使用されます。

    新しい資格情報の作成を示すスクリーンショット。

クラスターを作成するための Runbook を作成する

  1. [プロセス オートメーション][Runbook] を選択します。

  2. [Runbook の作成] を選択します。

  3. [Runbook の作成] ペインで、Runbook の名前を入力します (例: hdinsight-cluster-create)。 [Runbook の種類] ドロップダウン リストで [PowerShell] を選択します。

  4. [作成] を選択します

    Runbook の作成を示すスクリーンショット。

  5. [PowerShell Runbook の編集] 画面で次のコードを入力し、[発行] を選択します。

    Runbook の発行を示すスクリーンショット。

    Param
    (
      [Parameter (Mandatory= $true)]
      [String] $subscriptionID,
    
      [Parameter (Mandatory= $true)]
      [String] $resourceGroup,
    
      [Parameter (Mandatory= $true)]
      [String] $storageAccount,
    
      [Parameter (Mandatory= $true)]
      [String] $containerName,
    
      [Parameter (Mandatory= $true)]
      [String] $clusterName
    )
    ### Authenticate to Azure 
    $Conn = Get-AutomationConnection -Name 'AzureRunAsConnection'
    Add-AzureRMAccount -ServicePrincipal -Tenant $Conn.TenantID -ApplicationId $Conn.ApplicationID -CertificateThumbprint $Conn.CertificateThumbprint
    
    # Set cluster variables
    $storageAccountKey = (Get-AzureRmStorageAccountKey –Name $storageAccount –ResourceGroupName $resourceGroup)[0].value 
    
    # Setting cluster credentials
    
    #Automation credential for Cluster Admin
    $clusterCreds = Get-AutomationPSCredential –Name 'cluster-password'
    
    #Automation credential for user to SSH into cluster
    $sshCreds = Get-AutomationPSCredential –Name 'ssh-password' 
    
    $clusterType = "Hadoop" #Use any supported cluster type (Hadoop, HBase, etc.)
    $clusterOS = "Linux"
    $clusterWorkerNodes = 3
    $clusterNodeSize = "Standard_D3_v2"
    $location = Get-AzureRmStorageAccount –StorageAccountName $storageAccount –ResourceGroupName $resourceGroup | %{$_.Location}
    
    ### Provision HDInsight cluster
    New-AzureRmHDInsightCluster –ClusterName $clusterName –ResourceGroupName $resourceGroup –Location $location –DefaultStorageAccountName "$storageAccount.blob.core.windows.net" –DefaultStorageAccountKey $storageAccountKey -DefaultStorageContainer $containerName –ClusterType $clusterType –OSType $clusterOS –Version “3.6” –HttpCredential $clusterCreds –SshCredential $sshCreds –ClusterSizeInNodes $clusterWorkerNodes –HeadNodeSize $clusterNodeSize –WorkerNodeSize $clusterNodeSize
    

クラスターを削除するための Runbook を作成する

  1. [プロセス オートメーション][Runbook] を選択します。

  2. [Runbook の作成] を選択します。

  3. [Runbook の作成] ペインで、Runbook の名前を入力します (例: hdinsight-cluster-delete)。 [Runbook の種類] ドロップダウン リストで [PowerShell] を選択します。

  4. [作成] を選択します

  5. [PowerShell Runbook の編集] 画面で次のコードを入力し、[発行] を選択します。

    Param
    (
      [Parameter (Mandatory= $true)]
      [String] $clusterName
    )
    
    ### Authenticate to Azure 
    $Conn = Get-AutomationConnection -Name 'AzureRunAsConnection'
    Add-AzureRMAccount -ServicePrincipal -Tenant $Conn.TenantID -ApplicationId $Conn.ApplicationID -CertificateThumbprint $Conn.CertificateThumbprint
    
    Remove-AzureRmHDInsightCluster -ClusterName $clusterName
    

Runbook の実行

このセクションでは、Runbook の実行方法について説明します。

クラスターの作成

  1. Automation アカウントの Runbook の一覧を表示します。 [プロセス オートメーション][Runbook] を選択します。

  2. hdinsight-cluster-create またはクラスター作成 Runbook の作成時に使用した名前を選択します。

  3. [開始] を選択すると、Runbook がただちに実行されます。 Runbook が定期的に実行されるようにスケジュールすることもできます。 詳細については、Automation での Runbook のスケジュールに関する記事を参照してください。

  4. スクリプトに必要なパラメーターを入力して、[OK] を選択します。 このステップにより、CLUSTERNAME パラメーターで指定した名前で新しい HDInsight クラスターが作成されます。

    クラスター Runbook の実行を示すスクリーンショット。

クラスターの削除

作成した hdinsight-cluster-delete Runbook を選択してクラスターを削除します。 [開始] を選択し、CLUSTERNAME パラメーターを入力して、[OK] を選択します。

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

リソースが不要になったら、意図しない料金を避けるため、作成した Automation アカウントを削除します。 Azure portal に移動し、Automation アカウントを作成したリソース グループを選択し、Automation アカウントを選択して、[削除] を選択します。

次のステップ