У меня есть кластер c4.4x20 в режиме 20 для запуска искрового задания.Каждый узел - это 16 vCore, 30 ГиБ памяти, только хранилище EBS. EBS Storage: 32 ГиБ машины.
Поскольку каждый узел имеет 16 vCore, я понимаю, что максимальное число исполнителей составляет 16 * 20> 320 исполнителей.Общий объем доступной памяти составляет 20 (# узлов) * 30 ~ 600 ГБ.Назначая 1/3 для системных операций, у меня есть 400 ГБ памяти для обработки моих данных в памяти.Является ли это правильным пониманием.
Кроме того, Spark History показывает неравномерное распределение ввода и перемешивания.Я считаю, что обработка не распределяется равномерно между исполнителями.Я передаю эти параметры конфигурации в мой иск-отправка -
> —-conf spark.dynamicAllocation.enabled=true —-conf spark.dynamicAllocation.minExecutors=20
Сводка по исполнителю из пользовательского интерфейса истории искры также показывает, что нагрузка при распределении данных полностью перекошена, и я не использую кластер наилучшим образом.Как лучше распределить нагрузку -