Erstellen von Linux-basierten Clustern in HDInsight mit Azure PowerShellCreate Linux-based clusters in HDInsight using Azure PowerShell

Azure PowerShell ist eine leistungsstarke Skriptumgebung, mit der Sie die Bereitstellung und Verwaltung Ihrer Workloads in Microsoft Azure steuern und automatisieren können.Azure PowerShell is a powerful scripting environment that you can use to control and automate the deployment and management of your workloads in Microsoft Azure. Dieses Dokument enthält Informationen zum Erstellen eines Linux-basierten HDInsight-Clusters mit Azure PowerShell.This document provides information about how to create a Linux-based HDInsight cluster by using Azure PowerShell. Darüber hinaus ist ein Beispielskript enthalten.It also includes an example script.

Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.If you don't have an Azure subscription, create a free account before you begin.

VoraussetzungenPrerequisites

Hinweis

Dieser Artikel wurde aktualisiert und beinhaltet jetzt das neue Az-Modul von Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. Sie können das AzureRM-Modul weiterhin verwenden, das bis mindestens Dezember 2020 weiterhin Fehlerbehebungen erhält.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Weitere Informationen zum neuen Az-Modul und zur Kompatibilität mit AzureRM finden Sie unter Introducing the new Azure PowerShell Az module (Einführung in das neue Az-Modul von Azure PowerShell).To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Anweisungen zur Installation des Az-Moduls finden Sie unter Install Azure PowerShell (Installieren von Azure PowerShell).For Az module installation instructions, see Install Azure PowerShell.

Azure PowerShell-Az-ModulAzure PowerShell Az module.

Cluster erstellenCreate cluster

Warnung

Die Abrechnung für die HDInsight-Cluster erfolgt anteilsmäßig auf Minutenbasis und ist unabhängig von der Verwendung.Billing for HDInsight clusters is prorated per minute, whether you use them or not. Daher sollten Sie Ihren Cluster nach der Verwendung unbedingt wieder löschen.Be sure to delete your cluster after you finish using it. Sehen Sie sich die Informationen zum Löschen eines HDInsight-Clusters an.See how to delete an HDInsight cluster.

Für die Erstellung eines HDInsight-Clusters mithilfe von Azure PowerShell müssen die folgenden Prozeduren ausgeführt werden:To create an HDInsight cluster by using Azure PowerShell, you must complete the following procedures:

  • Erstellen einer Azure-RessourcengruppeCreate an Azure resource group
  • Erstellen eines Azure-SpeicherkontosCreate an Azure Storage account
  • Erstellen eines Azure-BlobcontainersCreate an Azure Blob container
  • Erstellen eines HDInsight-ClustersCreate an HDInsight cluster

Hinweis

Die Verwendung von PowerShell zum Erstellen eines HDInsight-Clusters mit Azure Data Lake Storage Gen2 wird derzeit nicht unterstützt.Using PowerShell to create an HDInsight cluster with Azure Data Lake Storage Gen2 is not currently supported.

Das folgende Skript veranschaulicht das Erstellen eines neuen Clusters:The following script demonstrates how to create a new cluster:

# Login to your Azure subscription
$context = Get-AzContext
if ($context -eq $null) 
{
    Connect-AzAccount
}
$context

# If you have multiple subscriptions, set the one to use
# $subscriptionID = "<subscription ID to use>"
# Select-AzSubscription -SubscriptionId $subscriptionID

# Get user input/default values
$resourceGroupName = Read-Host -Prompt "Enter the resource group name"
$location = Read-Host -Prompt "Enter the Azure region to create resources in"

# Create the resource group
New-AzResourceGroup -Name $resourceGroupName -Location $location

$defaultStorageAccountName = Read-Host -Prompt "Enter the name of the storage account"

# Create an Az.Storage account and container
New-AzStorageAccount `
    -ResourceGroupName $resourceGroupName `
    -Name $defaultStorageAccountName `
    -Type Standard_LRS `
    -Location $location
$defaultStorageAccountKey = (Get-AzStorageAccountKey `
                                -ResourceGroupName $resourceGroupName `
                                -Name $defaultStorageAccountName)[0].Value
$defaultStorageContext = New-AzStorageContext `
                                -StorageAccountName $defaultStorageAccountName `
                                -StorageAccountKey $defaultStorageAccountKey

# Get information for the HDInsight cluster
$clusterName = Read-Host -Prompt "Enter the name of the HDInsight cluster"
# Cluster login is used to secure HTTPS services hosted on the cluster
$httpCredential = Get-Credential -Message "Enter Cluster login credentials" -UserName "admin"
# SSH user is used to remotely connect to the cluster using SSH clients
$sshCredentials = Get-Credential -Message "Enter SSH user credentials"

# Default cluster size (# of worker nodes), version, type, and OS
$clusterSizeInNodes = "4"
$clusterVersion = "3.6"
$clusterType = "Hadoop"
$clusterOS = "Linux"
# Set the storage container name to the cluster name
$defaultBlobContainerName = $clusterName

# Create a blob container. This holds the default data store for the cluster.
New-AzStorageContainer `
    -Name $clusterName -Context $defaultStorageContext 

# Create the HDInsight cluster
New-AzHDInsightCluster `
    -ResourceGroupName $resourceGroupName `
    -ClusterName $clusterName `
    -Location $location `
    -ClusterSizeInNodes $clusterSizeInNodes `
    -ClusterType $clusterType `
    -OSType $clusterOS `
    -Version $clusterVersion `
    -HttpCredential $httpCredential `
    -DefaultStorageAccountName "$defaultStorageAccountName.blob.core.windows.net" `
    -DefaultStorageAccountKey $defaultStorageAccountKey `
    -DefaultStorageContainer $clusterName `
    -SshCredential $sshCredentials

Die Werte, die Sie für die Clusteranmeldung angeben, werden verwendet, um das Hadoop-Benutzerkonto für den Cluster zu erstellen.The values you specify for the cluster login are used to create the Hadoop user account for the cluster. Verwenden Sie dieses Konto, um eine Verbindung mit Diensten herzustellen, die auf dem Cluster gehostet werden, z.B. Webbenutzeroberflächen oder REST-APIs.Use this account to connect to services hosted on the cluster such as web UIs or REST APIs.

Die Werte, die Sie für den SSH-Benutzer angeben, werden verwendet, um den SSH-Benutzer für den Cluster zu erstellen.The values you specify for the SSH user are used to create the SSH user for the cluster. Verwenden Sie dieses Konto zum Starten einer SSH-Remotesitzung mit dem Cluster und zum Ausführen von Aufträgen.Use this account to start a remote SSH session on the cluster and run jobs. Weitere Informationen finden Sie im Dokument Herstellen einer Verbindung mit HDInsight (Hadoop) per SSH.For more information, see the Use SSH with HDInsight document.

Wichtig

Wenn Sie die Verwendung von mehr als 32 Workerknoten planen (entweder bei Erstellung des Clusters oder durch eine Skalierung des Clusters nach der Erstellung), müssen Sie auch eine Hauptknotengröße von mindestens 8 Kernen und 14 GB Arbeitsspeicher (RAM) angeben.If you plan to use more than 32 worker nodes (either at cluster creation or by scaling the cluster after creation), you must also specify a head node size with at least 8 cores and 14 GB of RAM.

Weitere Informationen zu Knotengrößen und den damit verbundenen Kosten finden Sie unter HDInsight – Preise.For more information on node sizes and associated costs, see HDInsight pricing.

Das Erstellen eines Clusters kann bis zu 20 Minuten dauern.It can take up to 20 minutes to create a cluster.

Erstellen eines Clusters: KonfigurationsobjektCreate cluster: Configuration object

Sie können ein HDInsight-Konfigurationsobjekt auch mit dem Cmdlet New-AzHDInsightClusterConfig erstellen.You can also create an HDInsight configuration object using New-AzHDInsightClusterConfig cmdlet. Anschließend können Sie dieses Konfigurationsobjekt ändern, um zusätzliche Konfigurationsoptionen für Ihren Cluster zu aktivieren.You can then modify this configuration object to enable additional configuration options for your cluster. Verwenden Sie abschließend den Parameter -Config des Cmdlets New-AzHDInsightCluster, um die Konfiguration zu verwenden.Finally, use the -Config parameter of the New-AzHDInsightCluster cmdlet to use the configuration.

Das folgende Skript erstellt ein Konfigurationsobjekt zum Konfigurieren eines Clustertyps R-Server in HDInsight.The following script creates a configuration object to configure an R Server on HDInsight cluster type. Die Konfiguration aktiviert einen Edge-Knoten, RStudio, sowie ein zusätzliches Speicherkonto.The configuration enables an edge node, RStudio, and an additional storage account.

$additionalStorageAccountName = Read-Host -Prompt "Enter the name of the additional storage account"

# Create the additional storage account
New-AzStorageAccount -ResourceGroupName $resourceGroupName `
    -StorageAccountName $additionalStorageAccountName `
    -Location $location `
    -Type Standard_LRS

# Get the additional storage account key
$additionalStorageAccountKey = (Get-AzStorageAccountKey -Name $additionalStorageAccountName -ResourceGroupName $resourceGroupName)[0].Value

# Create a new configuration for RServer cluster type
# Use -EdgeNodeSize to set the size of the edge node for RServer clusters
# if you want a specific size. Otherwise, the default size is used.
$config = New-AzHDInsightClusterConfig `
    -ClusterType "RServer" `
    -EdgeNodeSize "Standard_D12_v2"

# Add RStudio to the configuration
$rserverConfig = @{"rstudio"="true"}
$config = $config | Add-AzHDInsightConfigValues `
    -RServer $rserverConfig `
    -Spark2Defaults $spark2Config

# Add an additional storage account
Add-AzHDInsightStorage -Config $config -StorageAccountName "$additionalStorageAccountName.blob.core.windows.net" -StorageAccountKey $additionalStorageAccountKey

# Create a new HDInsight cluster using -Config
New-AzHDInsightCluster `
    -ClusterName $clusterName `
    -ResourceGroupName $resourceGroupName `
    -HttpCredential $httpCredential `
    -Location $location `
    -DefaultStorageAccountName "$defaultStorageAccountName.blob.core.windows.net" `
    -DefaultStorageAccountKey $defaultStorageAccountKey `
    -DefaultStorageContainer $defaultStorageContainerName  `
    -ClusterSizeInNodes $clusterSizeInNodes `
    -OSType $clusterOS `
    -Version $clusterVersion `
    -SshCredential $sshCredentials `
    -Config $config

Warnung

Die Verwendung eines Speicherkontos an einem anderen Ort als dem HDInsight-Cluster wird nicht unterstützt.Using a storage account in a different location than the HDInsight cluster is not supported. Wenn Sie dieses Beispiel verwenden möchten, erstellen Sie das zusätzliche Speicherkonto am gleichen Speicherort wie den Server.When using this example, create the additional storage account in the same location as the server.

Anpassen von ClusternCustomize clusters

Löschen des ClustersDelete the cluster

Warnung

Die Abrechnung für die HDInsight-Cluster erfolgt anteilsmäßig auf Minutenbasis und ist unabhängig von der Verwendung.Billing for HDInsight clusters is prorated per minute, whether you use them or not. Daher sollten Sie Ihren Cluster nach der Verwendung unbedingt wieder löschen.Be sure to delete your cluster after you finish using it. Sehen Sie sich die Informationen zum Löschen eines HDInsight-Clusters an.See how to delete an HDInsight cluster.

ProblembehandlungTroubleshoot

Falls beim Erstellen von HDInsight-Clustern Probleme auftreten, sehen Sie sich die Voraussetzungen für die Zugriffssteuerung an.If you run into issues with creating HDInsight clusters, see access control requirements.

Nächste SchritteNext steps

Nachdem Sie einen HDInsight-Cluster erfolgreich erstellt haben, nutzen Sie die folgenden Ressourcen, um zu erfahren, wie Sie mit Ihrem Cluster arbeiten.Now that you've successfully created an HDInsight cluster, use the following resources to learn how to work with your cluster.

Apache Hadoop-ClusterApache Hadoop clusters

Apache HBase ClusterApache HBase clusters

Storm-ClusterStorm clusters

Apache Spark-ClusterApache Spark clusters