Почему Apache Spark вытеснил MapReduce
Почему 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
Откликнуться в Telegram →
⚠️ Никогда не платите «за оформление» или «гарантию трудоустройства» — это признак мошенников. Работа ТРУ не несёт ответственности за содержание вакансии.