Создание кластера в Data Lake Storage 2-го поколения с помощью Azure CLI

Чтобы создать кластер HDInsight, который использует для хранения данных Data Lake Storage 2-го поколения, выполните следующие действия.

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

  • Если вы не знакомы с Azure Data Lake Storage 2-го поколения, см. общие сведения.
  • Если у вас нет учетной записи Azure, зарегистрируйтесь для получения бесплатной пробной учетной записи, прежде чем продолжать.
  • Чтобы запустить примеры скриптов CLI, у вас есть три варианта:
    • использовать Azure Cloud Shell с портала Azure (см. следующий раздел).
    • использовать внедренный компонент Azure Cloud Shell с помощью кнопки "Попробуйте!", расположенной в правом верхнем углу каждого блока кода.
    • установить последнюю версию Azure CLI (2.0.13 или выше), если вы предпочитаете использовать локальную консоль CLI. Войдите в Azure с помощью az login. Используйте учетную запись, которая связана с подпиской Azure, с помощью которой нужно развернуть управляемое удостоверение, назначаемое пользователем. Откройте Azure CLI.

Azure Cloud Shell

В Azure есть Azure Cloud Shell, интерактивная оболочка среды, с которой можно работать в браузере. Для работы со службами Azure можно использовать Bash или PowerShell с Cloud Shell. Для запуска кода из этой статьи можно использовать предварительно установленные команды Cloud Shell. Ничего дополнительного в локальной среде устанавливать не нужно.

Начало работы с Azure Cloud Shell

Вариант Пример и ссылка
Нажмите кнопку Попробовать в правом верхнем углу блока кода или команд. При нажатии кнопки Попробовать код или команда не копируется в Cloud Shell автоматически. Screenshot that shows an example of Try It for Azure Cloud Shell.
Чтобы открыть Cloud Shell в браузере, перейдите по адресу https://shell.azure.com или нажмите кнопку Запуск Cloud Shell. Button to launch Azure Cloud Shell.
Нажмите кнопку Cloud Shell в строке меню в правом верхнем углу окна портала Azure. Screenshot that shows the Cloud Shell button in the Azure portal

Чтобы использовать Azure Cloud Shell, выполните следующие действия:

  1. Запустите Cloud Shell.

  2. Нажмите кнопку Копировать в блоке кода (или блоке команд), чтобы скопировать код или команду.

  3. Вставьте код или команду в окно сеанса Cloud Shell, нажав клавиши CTRL+SHIFT+V в Windows и Linux или CMD+SHIFT+V в macOS.

  4. Нажмите клавишу ВВОД, чтобы запустить код или команду.

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

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

Вы можете скачать примеры файла шаблона и файла параметров. Прежде чем использовать шаблон и приведенный ниже фрагмент кода Azure CLI, замените перечисленные в таблице ниже заполнители необходимыми значениями.

Заполнитель Description
<SUBSCRIPTION_ID> Идентификатор подписки Azure.
<RESOURCEGROUPNAME> Группа ресурсов, в которой вы хотите создать новый кластер и учетную запись хранения.
<MANAGEDIDENTITYNAME> Имя управляемого удостоверения, которому будут предоставлены разрешения на использование учетной записи хранения с хранилищем Azure Data Lake Storage 2-го поколения.
<STORAGEACCOUNTNAME> Новая учетная запись хранения, которая будет создана с хранилищем Azure Data Lake Storage 2-го поколения.
<FILESYSTEMNAME> Имя файловой системы, которую этот кластер должен использовать в учетной записи хранения.
<CLUSTERNAME> Это имя вашего кластера HDInsight.
<PASSWORD> Выбранный вами пароль для входа в кластер по протоколу SSH и через панель мониторинга Ambari.

Указанный ниже фрагмент кода выполняет следующие начальные действия:

  1. Подключается к учетной записи Azure.
  2. Определяет активную подписку, в которой будут выполняться операции создания.
  3. Создает группу ресурсов для новых развертываний.
  4. Создает управляемое удостоверение, назначаемое пользователем
  5. Добавляет расширение к Azure CLI, которое позволяет использовать функции Data Lake Storage 2-го поколения.
  6. Создает новую учетную запись хранения с хранилищем Data Lake Storage 2-го поколения, используя флаг --hierarchical-namespace true.
az login
az account set --subscription <SUBSCRIPTION_ID>

# Create resource group
az group create --name <RESOURCEGROUPNAME> --location eastus

# Create managed identity
az identity create -g <RESOURCEGROUPNAME> -n <MANAGEDIDENTITYNAME>

az extension add --name storage-preview

az storage account create --name <STORAGEACCOUNTNAME> \
    --resource-group <RESOURCEGROUPNAME> \
    --location eastus --sku Standard_LRS \
    --kind StorageV2 --hierarchical-namespace true

Теперь войдите на портал. Добавьте новое управляемое удостоверение, назначаемое пользователем, в роль владельца данных BLOB-объектов служба хранилища в учетной записи хранения. Это действие описано на шаге 3 в разделе Использование портала Azure.

Внимание

Убедитесь, что у учетной записи хранения есть удостоверение, назначаемое пользователем, с разрешениями на роль владельца данных BLOB-объектов служба хранилища, в противном случае создание кластера завершится ошибкой.

az deployment group create --name HDInsightADLSGen2Deployment \
    --resource-group <RESOURCEGROUPNAME> \
    --template-file hdinsight-adls-gen2-template.json \
    --parameters parameters.json

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

После завершения работы с этой статьей кластер можно удалить. В случае с 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. Теперь узнайте, как работать с кластером.

Кластеры Apache Spark

Кластеры Apache Hadoop

Кластеры Apache HBase