Конференция завершена. Ждем вас на Highload++ в следующий раз!
Москва, СКОЛКОВО
8 и 9 ноября 2018

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

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

Любит технологии и простые решения непростых задач.
Около 10 лет пытается дружить с данными, иногда получается, а иногда — не очень.
В прошлой жизни разработал несколько DMP/CDP (Data Management / Customer Data Platform).

szhemzhitski@gmail.com
Тезисы

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

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