Я создаю приложение spark, которое будет работать на Dataproc.Я планирую использовать эфемерные кластеры и раскручивать новые для каждого выполнения приложения.Поэтому я хочу, чтобы моя работа поглощала как можно больше ресурсов кластера, и у меня есть очень хорошее представление о требованиях.
Я играл с отключением динамического распределения и настройкойисполнитель экземпляров и ядра сам.В настоящее время я использую 6 экземпляров и 30 ядер.
Возможно, это скорее вопрос пряжи, но я нахожу, что связь между контейнером vCores и моими ядрами искрового исполнителя немного сбивает с толку.В пользовательском интерфейсе менеджера приложений YARN я вижу, что создаются 7 контейнеров (1 драйвер и 6 исполнителей), и каждый из них использует 1 vCore.Однако в рамках spark я вижу, что сами исполнители используют указанные 30 ядер.
Поэтому мне любопытно, пытаются ли исполнители выполнять 30 задач параллельно на том, что по сути представляет собой одноядерный блок.Или, может быть, vCore, отображаемый в графическом интерфейсе AM, ошибочен?
Если это первое, интересно, как лучше настроить это приложение, чтобы у меня был один исполнитель на рабочий узел, и все процессоры былиб.