Создание кластеров под управлением Linux в HDInsight с помощью Azure PowerShell

Azure PowerShell — это полнофункциональная среда сценариев, которую можно использовать для контроля и автоматизации развертывания и управления вашей рабочей нагрузкой в Microsoft Azure. В этой статье содержится информация о том, как создать кластер HDInsight под управлением Linux с помощью Azure PowerShell, а также приведен пример скрипта.

Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.

Предварительные требования

Примечание.

Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Чтобы начать работу, см. статью Установка Azure PowerShell. Чтобы узнать, как перенести Azure PowerShell с AzureRM на Az, см. Перенос Azure PowerShell с AzureRM на Az.

Azure PowerShell модуль Az.

Создание кластера

Предупреждение

Оплата за кластеры HDInsight начисляется поминутно, независимо от их фактического использования. Обязательно удалите кластер, когда завершите его использование. См. как удалить кластер HDInsight.

Для создания кластера HDInsight с помощью Azure PowerShell необходимо выполнить следующие процедуры:

  • создание группы ресурсов Azure;
  • Создание учетной записи хранения Azure
  • Создание контейнера BLOB-объектов Azure
  • Создание кластера HDInsight

Примечание.

В настоящее время не поддерживается создание кластера HDInsight с Azure Data Lake Storage 2-го поколения с помощью PowerShell.

Следующий сценарий демонстрирует создание нового кластера.

# 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

Значения, указываемые для входа в кластер, используются для создания учетной записи пользователя Hadoop в кластере. Используйте эту учетную запись для подключения к службам, размещенным в кластере, например веб-интерфейсам пользователя или REST API.

Значения, указываемые для пользователя SSH, используются для создания пользователя SSH в кластере. Используйте эту учетную запись для запуска удаленного сеанса SSH в кластере и выполнения заданий. Дополнительные сведения см. в статье Подключение к HDInsight (Hadoop) с помощью SSH.

Внимание

Если вы планируете использовать более 32 рабочих узлов (при создании кластера или в процессе масштабирования после его создания), вам также необходимо указать размер головного узла с процессором минимум на 8 ядер и 14 ГБ ОЗУ.

Дополнительные сведения о размерах узлов и их стоимости см. на странице с ценами на HDInsight.

Операция создания кластера может занять до 20 минут.

Создание кластера: объект конфигурации

Можно также создать объект конфигурации HDInsight с помощью командлета New-AzHDInsightClusterConfig. Затем можно изменить этот объект конфигурации, чтобы включить дополнительные параметры конфигурации для кластера. Наконец, используйте параметр -Config командлета New-AzHDInsightCluster, чтобы использовать эту конфигурацию.

Настройка кластеров

Удаление кластера

Предупреждение

Оплата за кластеры HDInsight начисляется поминутно, независимо от их фактического использования. Обязательно удалите кластер, когда завершите его использование. См. как удалить кластер HDInsight.

Устранение неполадок

Если при создании кластеров HDInsight возникли проблемы, см. раздел требования к управлению доступом.

Следующие шаги

Теперь, когда вы успешно создали кластер HDInsight, обратитесь к следующим ресурсам, чтобы научиться с ним работать.

Кластеры Apache Hadoop

Кластеры Apache HBase

Кластеры Apache Spark