В сценариях применения больших данных, особенно при анализе и обработке данных в реальном времени, количество узлов кластера необходимо динамически регулировать в соответствии с изменениями объёма данных для обеспечения надлежащих ресурсов. Функция auto scaling сервиса MRS позволяет кластерам автоматически масштабироваться наружу или внутрь в зависимости от нагрузки кластера.
Вы можете настроить правила auto scaling, планы ресурсов или оба варианта для запуска auto scaling.
В следующем примере описывается, как использовать одновременно правила auto scaling и планы ресурсов:
Сервис обработки данных в реальном времени наблюдает нестабильный рост объёма данных с 7:00 до 13:00 в понедельник, вторник и субботу. Например, требуется от 5 до 8 узлов Task в период с 7:00 до 13:00 в понедельник, вторник и субботу, а за пределами этого периода — от 2 до 4 узлов.
Можно задать правило auto scaling, основанное на плане ресурсов. Когда объём данных превышает ожидаемое значение, количество узлов Task меняется в соответствии с нагрузкой ресурсов, не выходя за пределы диапазона узлов, указанные в плане ресурсов. При срабатывании плана ресурсов количество узлов изменяется в пределах указанного диапазона с минимальным воздействием. То есть узлы увеличиваются до верхнего предела и уменьшаются до нижнего предела.
Вы можете масштабировать кластер MRS наружу, вручную добавляя узлы Task.
Чтобы добавить узел Task в пользовательский кластер, выполните следующие действия:
Figure 1Добавление группы узлов Task

Чтобы добавить узел задачи в нестандартный кластер, выполните следующие действия:
Time Range: Установите значение 07:00-13:00.
Node Range: Установите значение 5-8.
Rule Name: default-expand-2.
If: Выберите объекты правила и ограничения из раскрывающихся списков, например, YARNAppRunning больше 75.
Last For: Установите значение 1 five-minute periods.
Add: Установите значение 1 node.
Cooldown Period: Установите значение 20 minutes.
При добавлении правила вы можете обратиться к Table 1 для настройки соответствующих метрик.
Cluster Type | Metric | Value Type | Description |
|---|---|---|---|
Streaming cluster | StormSlotAvailable | Integer | Количество доступных слотов Storm. Диапазон значений: от 0 до 2147483646. |
StormSlotAvailablePercentage | Percentage | Процент доступных слотов Storm, то есть доля доступных слотов от общего количества слотов. Диапазон значений: 0 до 100. | |
StormSlotUsed | Integer | Количество используемых слотов Storm. Диапазон значений: 0 до 2147483646. | |
StormSlotUsedPercentage | Percentage | Процент используемых слотов Storm, то есть отношение используемых слотов к общему количеству слотов. Диапазон значений: 0 до 100. | |
StormSupervisorMemAverageUsage | Integer | Среднее использование памяти процесса Supervisor в Storm. Диапазон значений: 0 до 2147483646. | |
StormSupervisorMemAverageUsagePercentage | Percentage | Средний процент используемой памяти процесса Supervisor в Storm от общей памяти системы. Диапазон значений: 0 до 100. | |
StormSupervisorCPUAverageUsagePercentage | Процент | Средний процент используемых CPU процесса Supervisor в Storm от общего количества CPU. Диапазон значений: [0, 6000]. | |
Кластер анализа | YARNAppPending | Целое число | Количество ожидающих задач в Yarn. Диапазон значений: 0 до 2147483646. |
YARNAppPendingRatio | Соотношение | Соотношение ожидающих задач в Yarn, то есть отношение количества ожидающих задач к количеству запущенных задач в Yarn. Диапазон значений: 0 до 2147483646. | |
YARNAppRunning | Integer | Количество запущенных задач в Yarn. Диапазон значений: от 0 до 2147483646. | |
YARNContainerAllocated | Integer | Количество контейнеров, выделенных YARN. Диапазон значений: от 0 до 2147483646. | |
YARNContainerPending | Integer | Количество ожидающих контейнеров в Yarn. Диапазон значений: от 0 до 2147483646. | |
YARNContainerPendingRatio | Коэффициент | Коэффициент ожидающих контейнеров в Yarn, то есть отношение количества ожидающих контейнеров к количеству запущенных контейнеров в Yarn. Диапазон значений: 0 до 2147483646. | |
YARNCPUAllocated | Integer | Количество виртуальных CPU (vCPU), выделенных Yarn. Диапазон значений: 0 до 2147483646. | |
YARNCPUAvailable | Integer | Количество доступных vCPU в Yarn. Диапазон значений: 0 до 2147483646. | |
YARNCPUAvailablePercentage | Percentage | Процент доступных vCPU в Yarn, то есть доля доступных vCPU от общего количества vCPU. Диапазон значений: 0 до 100. | |
YARNCPUPending | Integer | Количество ожидающих vCPUs в Yarn. Диапазон значений: 0 до 2147483646. | |
YARNMemoryAllocated | Integer | Память, выделенная Yarn. Единица измерения — MB. Диапазон значений: 0 до 2147483646. | |
YARNMemoryAvailable | Integer | Доступная память в Yarn. Единица измерения — MB. Диапазон значений: 0 до 2147483646. | |
YARNMemoryAvailablePercentage | Percentage | Процент доступной памяти в Yarn, то есть отношение доступной памяти к общей памяти в Yarn. Диапазон значений: 0 до 100. | |
YARNMemoryPending | Целое | Ожидающая память в Yarn. Диапазон значений: от 0 до 2147483646. |
При добавлении плана ресурсов вы можете задавать параметры, ссылаясь на Table 2.
Параметр | Описание |
|---|---|
Дата начала действия | Дата вступления в силу плана ресурсов. Daily выбрана по умолчанию. Вы также можете выбрать один или несколько дней с понедельника по воскресенье. |
Временной диапазон | Время начала и окончания плана ресурсов указывается с точностью до минут, значения находятся в диапазоне от 00:00 до 23:59. Например, если план ресурсов начинается в 8:00 и заканчивается в 10:00, задайте этот параметр как 8:00-10:00. Время окончания должно быть минимум на 30 минут позже времени начала. Временные диапазоны, настроенные для разных планов ресурсов, не могут пересекаться. |
Диапазон узлов | Количество узлов в плане ресурсов находится в диапазоне от 0 до 500. В указанном в плане ресурсов временном диапазоне, если количество узлов задач меньше указанного минимального количества узлов, оно будет увеличено до заданного минимального значения диапазона узлов за один раз. Если количество узлов задач превышает максимальное количество узлов, указанное в плане ресурсов, функция автоскейлинга уменьшает количество узлов задач до максимального значения диапазона узлов за один раз. Минимальное количество узлов должно быть меньше или равно максимальному количеству узлов. |