Tworzenie klastrów opartych na systemie Linux w usłudze HDInsight przy użyciu Azure PowerShell

Azure PowerShell to zaawansowane środowisko skryptowe, którego można użyć do kontrolowania i automatyzowania wdrażania obciążeń i zarządzania nimi na platformie Microsoft Azure. Ten dokument zawiera informacje o sposobie tworzenia klastra usługi HDInsight opartego na systemie Linux przy użyciu Azure PowerShell. Zawiera również przykładowy skrypt.

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.

Wymagania wstępne

Uwaga

Zalecamy korzystanie z modułu Azure Az programu PowerShell do interakcji z platformą Azure. Zobacz Instalowanie programu Azure PowerShell, aby rozpocząć. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.

Azure PowerShell moduł Az.

Tworzenie klastra

Ostrzeżenie

Rozliczenia dla klastrów usługi HDInsight są naliczane proporcjonalnie na minutę, niezależnie od tego, czy są używane. Pamiętaj, aby usunąć klaster po zakończeniu korzystania z niego. Zobacz , jak usunąć klaster usługi HDInsight.

Aby utworzyć klaster usługi HDInsight przy użyciu Azure PowerShell, należy wykonać następujące procedury:

  • Tworzenie grupy zasobów platformy Azure
  • Tworzenie konta usługi Azure Storage
  • Tworzenie kontenera obiektów blob platformy Azure
  • Tworzenie klastra HDInsight

Uwaga

Tworzenie klastra usługi HDInsight przy użyciu programu PowerShell z Azure Data Lake Storage Gen2 nie jest obecnie obsługiwane.

Poniższy skrypt pokazuje, jak utworzyć nowy klaster:

# 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

$storageAccountResourceId = (Get-AzStorageAccount -ResourceGroupName $resourceGroupName -AccountName $defaultStorageAccountName).Id  

$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" -UserName "sshuser"

# Default cluster size (# of worker nodes), version, type, and OS
$clusterSizeInNodes = "4"
$clusterVersion = "5.1"
$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 `
    -StorageAccountResourceId $storageAccountResourceId `
    -StorageAccountKey $defaultStorageAccountKey `
    -StorageContainer $defaultBlobContainerName `
    -SshCredential $sshCredentials

Wartości określone dla logowania klastra są używane do tworzenia konta użytkownika usługi Hadoop dla klastra. To konto służy do łączenia się z usługami hostowanymi w klastrze, takimi jak internetowe interfejsy użytkownika lub interfejsy API REST.

Wartości określone dla użytkownika SSH są używane do tworzenia użytkownika SSH dla klastra. Użyj tego konta, aby uruchomić zdalną sesję SSH w klastrze i uruchomić zadania. Aby uzyskać więcej informacji, zobacz dokument Używanie protokołu SSH w usłudze HDInsight.

Ważne

Jeśli planujesz używać więcej niż 32 węzłów roboczych (w ramach tworzenia klastra lub przez skalowanie klastra po utworzeniu), musisz również określić rozmiar węzła głównego z co najmniej 8 rdzeniami i 14 GB pamięci RAM.

Aby uzyskać więcej informacji o rozmiarach węzła i powiązanych kosztach, zobacz Cennik usługi HDInsight.

Utworzenie klastra może potrwać do 20 minut.

Tworzenie klastra: obiekt konfiguracji

Można również utworzyć obiekt konfiguracji usługi HDInsight przy użyciu New-AzHDInsightClusterConfig polecenia cmdlet. Następnie można zmodyfikować ten obiekt konfiguracji, aby włączyć dodatkowe opcje konfiguracji klastra. Na koniec użyj -Config parametru New-AzHDInsightCluster polecenia cmdlet, aby użyć konfiguracji.

Dostosowywanie klastrów

Usuwanie klastra

Ostrzeżenie

Rozliczenia dla klastrów usługi HDInsight są naliczane proporcjonalnie na minutę, niezależnie od tego, czy są używane. Pamiętaj, aby usunąć klaster po zakończeniu korzystania z niego. Zobacz , jak usunąć klaster usługi HDInsight.

Rozwiązywanie problemów

W razie problemów podczas tworzenia klastrów usługi HDInsight zapoznaj się z wymaganiami dotyczącymi kontroli dostępu.

Następne kroki

Po pomyślnym utworzeniu klastra usługi HDInsight użyj następujących zasobów, aby dowiedzieć się, jak pracować z klastrem.

Klastry Apache Hadoop

Klastry Apache HBase

Klastry Apache Spark