Почему Apache Spark вытеснил MapReduce?🤔
Когда‑то MapReduce был спасением для petabyte‑масштаба, но каждая итерация писала данные на диск → заново читала → снова писала. Итеративный ML, стриминг или сложные ETL превращались в марафон с кофе‑брейками. Нужно было что‑то быстрее.
Spark появился в 2009‑м в UC Berkeley и сказал:
«Давайте держать данные в памяти и давать разработчику нормальный API!»
Результат — ускорение ×10‑100 и код в пару строк вместо гирлянды map/reduce‑скриптов.
🖥Архитектура Apache Spark
Driver Program
• инициализирует SparkContext
• строит DAG вычислений
• делит работу на задачи и шлёт их в кластер
SparkContext
• общается с Cluster Manager’ом
• следит, чтобы tasks дошли до финиша
Cluster Manager (Standalone / YARN / K8s / Mesos)
• ведёт учёт ресурсов
• назначает worker‑узлы
• стартует executors
Worker Node
• хостит один или несколько executors — грузит работу, кэширует данные
Executor
• выполняет tasks параллельно
• кладёт горячие данные в память
• шлёт результаты Driver’у
Task
• самый мелкий кусочек работы - обрабатывает партицию данных
Cache / Persistence
• RAM (или SSD) для повторного использования данных без дискового тормоза
⌛Как бежит ваш job
1️⃣Пишем код на RDD / DataFrame / Dataset.
2️⃣ Запускаем — Driver поднимает SparkContext.
3️⃣ Spark лениво строит DAG всех операций.
4️⃣ Оптимизатор режет DAG на stages, те — на tasks.
5️⃣Cluster Manager раздаёт executors по worker‑ам.
6️⃣Tasks летят параллельно 🔼, данные шаффлятся только между stages.
7️⃣.cache() → Spark держит данные в памяти, ускоряя итерации.
8️⃣Завершили — результаты собираются у Driver’а и пишутся туда, куда нужно (HDFS / S3 / БД).
—
Сохраняйте, чтобы не забыть, и делитесь с теми, кто ещё путает Driver с Executor!
❓Частые вопросы на собесах:
⏺Что такое Executor и Driver?
⏺Что такое ленивая модель вычислений в Spark?
⏺Какие операции выполняются на Executors, а какие на Drivers?
⏺Для чего в Spark используется cache?
⏺Где выполняются операции в Spark( на диске или в памяти)?
⏺Из-за чего Spark быстрее Map-reduce и чем удобнее?
Поставьте 🔥, если ,было полезно! Делитесь в комментариях своими кейсами по работе со Spark!
#ApacheSpark #BigData #DataEngineering #SparkArchitecture #RDD
Когда‑то MapReduce был спасением для petabyte‑масштаба, но каждая итерация писала данные на диск → заново читала → снова писала. Итеративный ML, стриминг или сложные ETL превращались в марафон с кофе‑брейками. Нужно было что‑то быстрее.
Spark появился в 2009‑м в UC Berkeley и сказал:
«Давайте держать данные в памяти и давать разработчику нормальный API!»
Результат — ускорение ×10‑100 и код в пару строк вместо гирлянды map/reduce‑скриптов.
🖥Архитектура Apache Spark
Driver Program
• инициализирует SparkContext
• строит DAG вычислений
• делит работу на задачи и шлёт их в кластер
SparkContext
• общается с Cluster Manager’ом
• следит, чтобы tasks дошли до финиша
Cluster Manager (Standalone / YARN / K8s / Mesos)
• ведёт учёт ресурсов
• назначает worker‑узлы
• стартует executors
Worker Node
• хостит один или несколько executors — грузит работу, кэширует данные
Executor
• выполняет tasks параллельно
• кладёт горячие данные в память
• шлёт результаты Driver’у
Task
• самый мелкий кусочек работы - обрабатывает партицию данных
Cache / Persistence
• RAM (или SSD) для повторного использования данных без дискового тормоза
⌛Как бежит ваш job
1️⃣Пишем код на RDD / DataFrame / Dataset.
2️⃣ Запускаем — Driver поднимает SparkContext.
3️⃣ Spark лениво строит DAG всех операций.
4️⃣ Оптимизатор режет DAG на stages, те — на tasks.
5️⃣Cluster Manager раздаёт executors по worker‑ам.
6️⃣Tasks летят параллельно 🔼, данные шаффлятся только между stages.
7️⃣.cache() → Spark держит данные в памяти, ускоряя итерации.
8️⃣Завершили — результаты собираются у Driver’а и пишутся туда, куда нужно (HDFS / S3 / БД).
—
Сохраняйте, чтобы не забыть, и делитесь с теми, кто ещё путает Driver с Executor!
❓Частые вопросы на собесах:
⏺Что такое Executor и Driver?
⏺Что такое ленивая модель вычислений в Spark?
⏺Какие операции выполняются на Executors, а какие на Drivers?
⏺Для чего в Spark используется cache?
⏺Где выполняются операции в Spark( на диске или в памяти)?
⏺Из-за чего Spark быстрее Map-reduce и чем удобнее?
Поставьте 🔥, если ,было полезно! Делитесь в комментариях своими кейсами по работе со Spark!
#ApacheSpark #BigData #DataEngineering #SparkArchitecture #RDD