Настройка автомасштабирования в кластере Azure HDInsight

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.
Автор статьи: Рустем Галиев

Senior DevOps Engineer & Integration Architect в IBM

Давайте поговорим о том, как настроить автомасштабирование для существующего кластера Azure HDInsight с помощью Azure CLI.

Microsoft Azure — это служба облачных вычислений, предлагаемая и управляемая Microsoft. 

Azure HDInsight — это управляемая комплексная облачная служба аналитики с открытым кодом, предназначенная для предприятий. С помощью HDInsight в среде Azure можно использовать платформы с открытым кодом, такие как Apache Spark, Apache Hive, LLAP, Apache Kafka, Hadoop и другие.

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

Вот общие шаги, которые необходимо предпринять для обработки данных в Azure HDInsight.

  • Подготовим  кластер Azure HDInsight на портале или с помощью таких инструментов, как Azure CLI.

  • Обработка данных, используя функции вашего кластера, такие как выполнение запросов Hive и т. д.

С вводной разобрались, перейдем к делу

Войдем в Azure CLI:

az login -u $username -p $password

Создадим новую учетную запись хранения Azure для использования с кластером HDInsight:

az storage account create -n $storageAccountName --resource-group $resource --sku Standard_LRS

Сохраним ключ учетной записи хранения в переменной:

storageKey=$(az storage account keys list -g $resource -n $storageAccountName --output json --query [0].value)

Создадим контейнер в предыдущей учетной записи хранения:

az storage container create -n myhdcontainer --account-name $storageAccountName --account-key $storageKey

Наконец создадим новый кластер Azure HDInsight. Это займет до 20 минут:

az hdinsight create --resource-group $resource --name $hdClusterName --type spark --http-password "MySecureP@$$word1" --storage-account $storageAccountName --storage- контейнер myhdcontainer --minimal-tls-version 1.2 --encryption-in-transit true

О чем нам говорят параметры команды:

  • name: имя кластера Azure HDInsight.

  • resource-group: родительская группа ресурсов для нового кластера.

  • type: тип кластера HDInsight, например hadoop, hbase, kafka, storm или spark.

  • http-password: Кластерный пароль.

  • storage-account: имя учетной записи Azure Storage/Data Lake Storage 2-го поколения, которая будет присоединена к кластеру.

  • storage-container: контейнер хранилища, который будет использовать кластер. Использует имя кластера, если оно не указано.

  • minimal-tls-version: минимальная поддерживаемая версия TLS. Выберите максимально возможную версию для большей безопасности.

  • encryption-in-transit: включение/выключение шифрования при передаче с использованием SSL/TLS.

Общие сведения об автомасштабировании Azure HDInsight

Azure HDInsight — это служба аналитики данных, которая позволяет вам использовать широкий спектр аналитических механизмов, включая Hadoop, Apache Spark, Apache Hive и другие, в ваших решениях по обработке и анализу данных.

В каждом кластере Azure HDInsight есть один или несколько рабочих узлов. Это машины, которые обрабатывают ваши данные. Мы можем управлять количеством рабочих узлов в кластере следующими способами:

  • Установив фиксированное количество рабочих узлов на кластер, например, 5 узлов.

  • Настроив автомасштабирование для кластера. Мы устанавливаем минимальные и максимальные пределы рабочих узлов, и кластер будет автоматически масштабироваться в зависимости от нагрузки.

  • Запланируем добавление или удаление узлов в установленное время; например, установим значение для количества рабочих узлов 3 реплики в 11:00 CEST.

В этом практикуме мы настроим второй вариант, а также предоставим команду CLI для третьего.

Настройка автомасштабирования Azure HDInsight

Перепровим все. Вернее просто проверим, существует ли наш кластер:

az hdinsight list --resource-group $resource --query [].name

Настроим автомасштабирование для существующего кластера. Наш кластер будет иметь минимум 1 и максимум 3 рабочих узла в зависимости от нагрузки кластера:

az hdinsight autoscale create --resource-group $resource --cluster-name $hdClusterName --type Load --min-workernode-count 1 --max-workernode-count 3

Говорим да “y”, эта операция переопределит предыдущую конфигурацию автомасштабирования. Нас просто спросят:

Are you sure you want to perform this operation (y/n):

Выполнение этой команды может занять до 5 минут.

Вот параметры команды:

  • cluster-name: имя кластера Azure HDInsight, для которого нужно настроить автомасштабирование.

  • resource-group: родительская группа ресурсов для кластера.

  • type: автомасштабирование в зависимости от нагрузки на кластер или по расписанию. Допустимые значения: «Load» и «Schedule».

  • min-workernode-count: минимальное количество рабочих узлов на кластер.

  • max-workernode-count: максимальное количество рабочих узлов на кластер.

Вы также можете настроить масштабирование по расписанию. Например, следующая команда установит для рабочих узлов кластера значение 3:

az hdinsight autoscale create --resource-group $resource --cluster-name $hdClusterName --type Schedule --timezone "Central European Standard Time" --days Tuesday Wednesday --time 11:00 --workernode-count 3

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

az hdinsight autoscale show --resource-group $resource --cluster-name $hdClusterName

Убедимся, что для параметра maxInstanceCount установлено значение 3, а для параметра minInstanceCount — значение 1.

Обратите внимание, что переменная среды $resource содержит имя выделенной группы ресурсов Azure.

Давайте также проверим эти параметры на портале Azure.

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

echo "Username: $username"

echo "Password: $password"

После входа в систему перейдите в кластеры HDInsight. Убедитесь:

  • Что в разделе «Settings» нажмите «Cluster size».

  • Что установлен флажок Enable autoscale.

  • Что тип автомасштабирования — «Load-based».

  • Что минимальное значение равно 1, а максимальное установлено на 3.

    Если все верно, то вы восхитительны!

В заключение приглашаю всех на бесплатный урок курса Cloud Solution Architecture, где рассмотрим основные особенности бессерверного исполнение программного кода, а так же изучим базовые принципы архитектуры основанной на событиях.

  • Подробнее о бесплатном уроке.

Источник: https://habr.com/ru/company/otus/blog/712802/


Интересные статьи

Интересные статьи

Говоря о разработке сайтов с использованием CMS 1C Bitrix вопрос покрытия тестами поднимается редко. Главная причина в том, что большинство проектов обходится штатным функционалом, который предоставля...
В данном посте я хотел бы рассмотреть способ установки персонального облака на домашний сервер Synology при помощи Docker, поделиться своими ошибками и опытом использования в повседневной жизни. Я буд...
Мы с радостью сообщаем об общей доступности (GA) PostgreSQL 14 на платформе Azure с опцией Hyperscale (Citus). Насколько нам известно, это первый случай, когда крупный облачный провайдер объявляет GA ...
Источник В этой статье — о настройке проб готовности, работоспособности и запуска для обнаружения и работы с нездоровыми модулями в переводе команды Kubernetes aaS. Чи...
Настроить хранение данных приложений, запущенных в кластере Kubernetes, можно несколькими способами. Одни из них уже устарели, другие появились совсем недавно. В этой статье рассмотри...