Рейтинг@Mail.ru

Обмани меня… Разрушаем мифы о Spark-аккумуляторахBigData и машинное обучение

Доклад отклонён
Сергей Жемжицкий
CleverDATA

В IT уже более 13 лет. Поработал как в инвест-банках ("Тройка Диалог", "Сбербанк CIB"), так и в outsource-компаниях ("Артезио"). Сейчас технический директор, инженер в "CleverDATA". Периодически можно встретить в качестве спикера на различных конференциях, webinar'ах, meetup'ах по построению платформ обработки данных и высоконагруженных систем.

s.zhemzhitsky@cleverdata.ru
Тезисы

На сегодняшний день техники оптимизации обработки данных весьма хорошо известны и понятны. Вот некоторые из них:

1) Вертикальное или горизонтальное масштабирование инфраструктуры путем добавления большего количества серверов, RAM, CPU, GPU, увеличение пропускной способности сети – другими словами, оптимизация методом грубой силы.

2) Чтение только тех данных, которые необходимо прочитать, минимизируя дисковый IO, например:
- путем организации данных в соответствии с паттерном доступа к ним, например, используя шардинг, партиционирование, бакетирование и т.д. или
- путем использования колоночных форматов хранения данных, таких как Parquet и ORC.

3) Минимизация сетевого IO
- путем партиционирования нескольких наборов данных заранее и одинаковым образом (co-partitioning).

В условиях недостаточного количества вычислительных ресурсов различные хитрости по оптимизации процессов обработки данных могут стать особенно актуальны.

Например, Spark-аккумуляторы, которые зачастую используются при построении конвейеров обработки данных как самим Spark'ом, так и его пользователями, могут стать неплохим подспорьем в сборе и подсчете метрик обработки ваших данных, однако, гарантии, обеспечиваемые этими аккумуляторами, весьма слабы, ведь официальная документация утверждает, что лишь изменения аккумуляторов, выполненные в Spark action'ах будут применены единожды, в то время как изменения аккумуляторов в трансформациях могут применяться более одного раза, тем самым побуждая пользователя обрабатывать один и тот же набор данных минимум дважды, в случае необходимости получения гарантированно точных показателей.

Мы с вами попробуем разобраться, можно ли использовать Spark-аккумуляторы для подсчета и сбора метрик гарантированно единожды, в качестве side-effect'а основного процесса обработки данных (немного заглянув во внутренности Spark'а), тем самым сократив объемы обрабатываемых данных и время выполнения задач в некоторых случаях более чем в 2 раза, а также с тем, действительно ли верны утверждения документации Spark и, если нет, то в каких случаях.

Scala
,
Big Data и Highload в Enterprise
,
Hadoop
,
ETL

Другие доклады секции BigData и машинное обучение

Rambler's Top100