Обзор
Что такое Spark?
Apache Spark — это фреймворк для расчетов на больших данных (джойнов, группировок, фильтраций и т. д.).
Spark обрабатывает данные в оперативной памяти. Ключевое отличие процессинга в памяти от "классического" MapReduce образца 2005 года в том, что данные минимально затрагивают диск при работе, а значит, минимизируются расходы на IO — самую медленную часть процессинга. Для одиночной Map операции эффект от использования Spark не будет заметен. Но уже для одного каскада Map и Reduce удается избежать записи промежуточных результатов на диск при условии, что памяти будет достаточно.
Для каждого последующего каскада MapReduce экономия нарастает, появляется возможность кешировать результаты. Для больших и сложных аналитических пайплайнов рост производительности будет многократным.
Также Spark вооружен полноценным оптимизатором запросов Catalyst, который планирует выполнение и учитывает:
- расположение и объёмы входных данных;
- протягивание предикатов до файловой системы;
- целесообразность и порядок шагов при исполнении запроса;
- набор атрибутов в конечной таблице;
- локальность данных при обработке;
- возможную конвейеризацию вычислений.
Как Spark интегрирован с YTsaurus
Подробности интеграции Spark c YTsaurus можно узнать в вебинаре.
Что такое SPYT?
Spark over YTsaurus (SPYT) позволяет запускать Spark-кластер на вычислительных мощностях YTsaurus. Кластер запускается в Vanilla-операции YTsaurus, затем забирает некоторое количество ресурсов из квоты и занимает их постоянно. Spark может читать как статические, так и динамические таблицы YTsaurus, делать на них расчеты и писать результат в статическую таблицу.
Текущая базовая версия Spark — 3.2.2.
Когда использовать SPYT
SPYT оптимален в следующих случаев:
- разработка на Java с использованием MapReduce в YTsaurus;
- оптимизация производительности пайплайна на YTsaurus с двумя и более джойнами или группировками;
- настройка интеграционных ETL пайплайнов из других систем;
- ad-hoc аналитика в интерактивном режиме с использованием
Jupyter
,pyspark
илиspark-shell
.
SPYT не стоит выбирать, если:
- существует необходимость в обработке более 10 ТБ данных в одной транзакции;
- процессинг сводится к единичным Map или MapReduce.
Способы запуска расчетов на Spark в YTsaurus
- Запуск расчёта напрямую в YTsaurus, используя команду
spark-submit
Подробнее. - Создание Standalone Spark кластера внутри YTsaurus при помощи Vanilla операции Подробнее.
На каких языках можно писать
Spark поддерживает следующие языки и среды разработки: