Обзор

Что такое 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 поддерживает следующие языки и среды разработки: