Распределение памяти Spark - сценарий в реальном времени

Я пытаюсь найти лучший способ использовать ресурсы кластера для выполнения искрового задания. Ниже приведены сведения о моем кластере:

  • Общее количество активных узлов в кластере: 100
  • Общее количество ядер на каждом узле: 16 ядер
  • Общее количество ядер, доступных в кластере: 100 узлов * 16 ядер = 1600 ядер
  • Распределение памяти на каждом узле (RAM): 64 ГБ
  • Общий объем памяти в кластере: 64 ГБ * 100 узлов = 6400 ГБ

Теперь мне нужно обработать два файла с помощью искрового задания и выполнить операцию соединения с помощью Spark sql и сохранить выходной фрейм данных в Hive Table. Два размера файлов: file1.csv (30 ГБ) и file2.csv (10 ГБ).

Итак, вот мои вопросы:

  1. Сколько памяти драйвера Spark (--driver-memory) мне нужно выделить и почему?
  2. Сколько исполнителей Spark (--num-Executors) мне нужно определить и почему?
  3. Сколько памяти Spark Executor (--executor-memory) мне нужно выделить и почему?
  4. Сколько ядер драйвера и исполнителя нужно указать?
  5. Сообщите мне, нужны ли дополнительные конфигурации памяти для лучшей параллельной обработки?

Заранее спасибо.

0 ответов

Другие вопросы по тегам