Apache Spark (от англ. spark — искра, вспышка) — фреймворк с открытым исходным кодом для реализации распределённой обработки данных, входящий в экосистему проектов Hadoop. В отличие от классического обработчика из ядра Hadoop, реализующего двухуровневую концепцию MapReduce с хранением промежуточных данных на накопителях, Spark работает в парадигме резидентных вычислений — обрабатывает данные в оперативной памяти, благодаря чему позволяет получать значительный выигрыш в скорости работы для некоторых классов задач[7], в частности, возможность многократного доступа к загруженным в память пользовательским данным делает библиотеку привлекательной для алгоритмов машинного обучения[8].

Apache Spark
Логотип программы Apache Spark
Скриншот программы Apache Spark
Тип фреймворк, фреймворк поддержки машинного обучения[вд] и облачные вычисления
Разработчик Apache Software Foundation
Написана на Scala[6][1], Java[1], Python[1], R[1], SQL[1] и Java Database Connectivity[1]
Операционные системы Windows, Linux и macOS
Первый выпуск 30 мая 2014 и 1 марта 2014[1]
Аппаратная платформа Java Virtual Machine
Последняя версия
Репозиторий github.com/apache/spark
gitbox.apache.org/repos/…
Лицензия Apache License 2.0 и BSD
Сайт spark.apache.org (англ.)
Логотип Викисклада Медиафайлы на Викискладе

Проект предоставляет программные интерфейсы для языков Java, Scala, Python, R. Изначально написан на Scala, впоследствии добавлена существенная часть кода на Java для предоставления возможности написания программ непосредственно на Java. Состоит из ядра и нескольких расширений, таких как Spark SQL (позволяет выполнять SQL-запросы над данными), Spark Streaming (надстройка для обработки потоковых данных), Spark MLlib (набор библиотек машинного обучения), GraphX (предназначено для распределённой обработки графов). Может работать как в среде кластера Hadoop под управлением YARN, так и без компонентов ядра Hadoop, поддерживает несколько распределённых систем хранения — HDFS, OpenStack Swift, NoSQL-СУБД Cassandra, Amazon S3.

Ключевой автор — румынско-канадский учёный в области информатики Матей Захария (англ. Matei Zaharia), начал работу над проектом в 2009 году, будучи аспирантом Университета Калифорнии в Беркли. В 2010 году проект опубликован под лицензией BSD, в 2013 году передан фонду Apache и переведён на лицензию Apache 2.0, в 2014 году принят в число проектов верхнего уровня Apache. В 2022 году проект получил ежегодную премию SIGMOD в номинации «Системы»[9].

Примечания

править
  1. 1 2 3 4 5 6 7 https://projects.apache.org/json/projects/spark.json
  2. Release 3.5.3 — 2024.
  3. 1 2 3 4 http://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.sql.DataFrameReader
  4. 1 2 3 4 5 6 http://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.sql.DataFrameWriter
  5. 1 2 https://spark.apache.org/docs/latest/sql-data-sources-avro.html
  6. The apache-spark Open Source Project on Open Hub: Languages Page — 2006.
  7. Xin, Reynold; Rosen, Josh; Zaharia, Matei; Franklin, Michael; Shenker, Scott; Stoica, Ion. Shark: SQL and Rich Analytics at Scale (англ.) : journal. — 2013. — June. Архивировано 9 августа 2017 года.
  8. Matei Zaharia. Spark: In-Memory Cluster Computing for Iterative and Interactive Applications (англ.). Invited Talk at NIPS 2011 Big Learning Workshop: Algorithms, Systems, and Tools for Learning at Scale. Архивировано 15 июня 2016. Дата обращения: 1 октября 2017.{{cite AV media}}: Википедия:Обслуживание CS1 (location) (ссылка) Источник. Дата обращения: 1 октября 2017. Архивировано 15 июня 2016 года.
  9. 2022 SIGMOD Systems Award. ACM (10 мая 2022). Дата обращения: 27 мая 2022. Архивировано 15 июня 2022 года.

Литература

править
  • Х. Карау, Э. Конвински, П. Венделл, М. Захария. Изучаем Spark. Молниеносный анализ данных = Learning Spark: Lightning-Fast Big Data Analytics (O’Reilly, 2015). — ДМК Пресс, 2015. — 304 с. — ISBN 978-5-97060-323-9.
  • С. Риза, У. Лезерсон, Ш. Оуэн, Д. Уиллс. Spark для профессионалов: современные паттерны обработки больших данных = Advanced Analytics with Spark. Patterns for Learning from Data at Scale (O’Reilly, 2015). — Питер, 2017. — 272 с. — ISBN 978-5-496-02401-3.
  • Уоррен Р., Карау Х. Эффективный Spark. Масштабирование и оптимизация = High Performance Spark. Best Practices for Scaling and Optimizing Apache Spark. — Питер, 2018. — 352 с. — ISBN 978-5-4461-0705-6.

Ссылки

править