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

Действия, описанные в этом документе, по созданию кластера HDInsight 4.0 с помощью Azure CLI.

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

Счета за кластеры HDInsight выставляются пропорционально в минутах, независимо от их использования. Обязательно удалите кластер, когда завершите его использование. Дополнительные сведения см. в статье Удаление кластера HDInsight с помощью браузера, PowerShell или классического интерфейса Azure CLI.

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

Необходимые компоненты

  • Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см . в кратком руководстве по Bash в Azure Cloud Shell.

  • Если вы предпочитаете выполнять справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.

    • Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о других возможностях, доступных при входе, см. в статье Вход с помощью Azure CLI.

    • Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.

    • Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.

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

  1. Войдите в подписку Azure. Если вы планируете использовать Azure Cloud Shell, щелкните Попробовать в правом верхнем углу блока кода. В противном случае введите следующую команду:

    az login
    
    # If you have multiple subscriptions, set the one to use
    # az account set --subscription "SUBSCRIPTIONID"
    
  2. Задайте переменные среды. В этой статье используются переменные, характерные для Bash. Для других сред требуются небольшие варианты. Полный список возможных параметров для создания кластера см. в команде az-hdinsight-create.

    Параметр Описание
    --workernode-count Число рабочих узлов в кластере. В этой статье используется переменная clusterSizeInNodes в качестве значения, передаваемого в --workernode-count.
    --version Версия кластера HDInsight. В этой статье используется переменная clusterVersion в качестве значения, передаваемого в --version. См. также: Поддерживаемые версии HDInsight.
    --type Тип кластера HDInsight, например hadoop, интерактивный hive, hbase, kafka, spark, rserver, mlservices. В этой статье используется переменная clusterType в качестве значения, передаваемого в --type. См. также: Типы и конфигурация кластеров.
    --component-version Версии различных компонентов Hadoop в формате "компонент = версия", разделенные пробелами. В этой статье используется переменная componentVersion в качестве значения, передаваемого в --component-version. См. также: Компоненты Hadoop.

    Замените RESOURCEGROUPNAME, LOCATION, CLUSTERNAME, STORAGEACCOUNTNAME и PASSWORD нужными значениями. При необходимости измените значения для других переменных. Затем введите указанные команды CLI.

    export resourceGroupName=RESOURCEGROUPNAME
    export location=LOCATION
    export clusterName=CLUSTERNAME
    export AZURE_STORAGE_ACCOUNT=STORAGEACCOUNTNAME
    export httpCredential='PASSWORD'
    export sshCredentials='PASSWORD'
    
    export AZURE_STORAGE_CONTAINER=$clusterName
    export clusterSizeInNodes=1
    export clusterVersion=4.0
    export clusterType=hadoop
    export componentVersion=Hadoop=3.1
    
  3. Создайте группу ресурсов, введя следующую команду:

    az group create \
        --location $location \
        --name $resourceGroupName
    

    Для получения списка допустимых расположений выполните команду az account list-locations, а затем воспользуйтесь одним из расположений из значения name.

  4. Создайте учетную запись служба хранилища Azure, введя следующую команду:

    # Note: kind BlobStorage is not available as the default storage account.
    az storage account create \
        --name $AZURE_STORAGE_ACCOUNT \
        --resource-group $resourceGroupName \
        --https-only true \
        --kind StorageV2 \
        --location $location \
        --sku Standard_LRS
    
  5. Извлеките первичный ключ из учетной записи служба хранилища Azure и сохраните его в переменной, введя следующую команду:

    export AZURE_STORAGE_KEY=$(az storage account keys list \
        --account-name $AZURE_STORAGE_ACCOUNT \
        --resource-group $resourceGroupName \
        --query [0].value -o tsv)
    
  6. Создайте контейнер служба хранилища Azure, введя следующую команду:

    az storage container create \
        --name $AZURE_STORAGE_CONTAINER \
        --account-key $AZURE_STORAGE_KEY \
        --account-name $AZURE_STORAGE_ACCOUNT
    
  7. Создайте кластер HDInsight, введя следующую команду:

    az hdinsight create \
        --name $clusterName \
        --resource-group $resourceGroupName \
        --type $clusterType \
        --component-version $componentVersion \
        --http-password $httpCredential \
        --http-user admin \
        --location $location \
        --workernode-count $clusterSizeInNodes \
        --ssh-password $sshCredentials \
        --ssh-user sshuser \
        --storage-account $AZURE_STORAGE_ACCOUNT \
        --storage-account-key $AZURE_STORAGE_KEY \
        --storage-container $AZURE_STORAGE_CONTAINER \
        --version $clusterVersion
    

    Важно!

    Кластеры HDInsight бывают разных типов, которые соответствуют рабочей нагрузке или технологии, для которой предназначен кластер. Не существует поддерживаемого метода создания кластера, объединяющего несколько типов, например HBase в одном кластере.

    Процесс создания кластера может занять несколько минут. обычно около 15 минут.

Очистка ресурсов

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

Введите все следующие команды или некоторые из них, чтобы удалить ресурсы:

# 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 с помощью интерфейса командной строки Azure, обратитесь к следующим статьям, чтобы научиться работать с кластером:

Кластеры Apache Hadoop

Кластеры Apache HBase