Spark Summit 2016: обзор и впечатления

55da7d55833a454c8d8c7824d5701c74.png

В июне прошло одно из самых крупных мероприятий мира в сфере big data и data science — Spark Summit 2016 в Сан-Франциско. Конференция собрала две с половиной тысячи человек, включая представителей крупнейших компаний (IBM, Intel, Apple, Netflix, Amazon, Baidu, Yahoo, Cloudera и так далее). Многие из них используют Apache Spark, включая контрибьюторов в open source и вендоров собственных разработок в big data/data science на базе Apache Spark.


Мы в Wrike активно используем Spark для задач аналитики, поэтому не могли упустить возможности из первых рук узнать, что происходит нового на этом рынке. С удовольствием делимся своими наблюдениями.


Schedule, video, slides: https://spark-summit.org/2016/schedule/
Twitter: https://twitter.com/spark_summit/status/741015491045642241


Тренды


Если очень кратко резюмировать то, о чём говорили на конференции, получится примерно следующее:
Был объявлен выход Spark 2.0. Спикеры из DataBricks (организаторы конференции и основные разработчики продукта) рассказали, что нового он в себе несёт. В отдельных докладах раскрывалась подноготная этих изменений — это улучшенный планировщик задач, позволяющий оптимизировать работу кода над DataFrame, даже если код написан не самым лучшим образом, а также новый spark streaming и развитие SparkSQL.
Стриминг. Еще раз подтвердился тренд, что современный бизнес движется в сторону real-time процессов, аналитики, etl и т. д., он становится реактивнее и требует быстрых инструментов.
Всё больше и больше внимания уделяется распределённому машинному обучению: для сложных моделей глубокого обучения необходимо очень много данных. На конференции обсуждалось, как с помощью Spark можно ускорить процесс обучения.
В нескольких докладах затрагивались проблемы облачных провайдеров инфраструктуры для аналитики и машинного обучения — как сделать, чтобы пользователи доверяли облакам, убедились, что это дёшево и надёжно.
Многие докладчики акцентировали внимание на том, что Spark сегодня становится системой, объединяющей огромное количество источников данных. Благодаря этому его часто используют бизнес-аналитики и продукт-аналитики как инструмент etl и отчётности, поэтому сейчас брошены значительные силы на улучшение SparkSQL
И, как это стало принято на больших конференциях, компании мерились вкладом в сообщество и количеством коммитов в Open-Source.


Немного о личных впечатлениях


Были опасения, что из-за большого количества заявленных участников мы столкнемся с толпами у стоек регистрации, однако процесс был отлично продуман и автоматизирован: подходишь к автомату регистрации, вводишь имя и фамилию, после небольшого ожидания выскакивает бейджик участника. У сотрудников саммита можно было взять кармашки и талон на выдачу футболок и других мелочей. В общем, к организации нет никаких претензий — навигация была продумана, информации, что и где сейчас происходит — предостаточн. Толкотня возникла только на обеде в первый день, зато, стоя в очереди, была хорошая возможность пообщаться с другими участниками и обсудить доклады. Разумеется, в любое время на конференции можно было найти кофе-поинты с напитками и снэками.


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


Несколько слов о выставке. Поразило, насколько сильно развита экосистема и какое количество продуктов для аналитики сейчас есть на рынке. Коммерческие, open source и условно бесплатные решения — на любой вкус.


На выставке были сотрудники компаний, предоставляющих различные системы хранения (обещают прирост производительности доступа к данным), консалтинговые компании (обещают помощь в развёртывании Spark или в применении машинного обучения к бизнесу), провайдеры частных облаков (заточенные под hadoop/spark), различные интеграторы, системы визуализации, графического программирования etl, облачные платформы, библиотеки машинного обучения и даже средства для отладки и профилирования приложений над Spark. Иными словами, целый мир вокруг Spark! Ниже несколько решений, которые особенно привлекли наше внимание.


Интересные решения


MemSQL — масштабируемая база данных в памяти для работы с реляционными объектами — обещали особую эффективность с числовыми данными.


Couchbase — нерялиционная база данных; оказывается, существует enterprise-решение на базе redis-сервера


Библиотека машинного обучения H2O и её связка со Spark.


Конечно, нельзя пройти мимо новинок от DataBricks, Intel и IBM. С первыми всё довольно очевидно, а вот о решении TAP от Intel до этого слышно не было. Облако Bluemix от IBM уже у всех на слуху. На этот раз они активно продвигали девиз «Learn. Create. Collaborate».


Довольно интересной была презентация системы визуализации ZoomData. Система подключается к огромному количеству источников и может выводить данные в реальном времени. На первый взгляд, решение очень похоже на Tableau с live-соединением, но в деталях ребята подошли по-своему.


Также нам показался интересным продукт от Startio. Это ПО, которое можно скачать и поставить, так что не очень понятна схема монетизации: то ли планируется платная поддержка, то ли есть платные версии платформы с большим количеством фич. Как я понял по описанию, в сразу и бесплатно получаете большую распределённую систему аналитики, с мониторингом, менеджментом и т. д.


Также было интересное выступление сотрудников Mesosphere — они представляли open-source версию DC/OS — «операционной системы» над ДЦ. По сути это Mesos, Zookeeper, Marathon, Сonsul в одном флаконе и с красивыми GUI, который объединяет машины в один пул ресурсов. У них также есть платная enterprise версия — довольно интересный продукт для распределённых вычислений и современных облачных платформ.


А ещё на саммите мы увидели ребят, которые делают суперкомпьютеры Cray и по дефолту предоставляют сервера с установленными решениями для аналитики, в том числе Spark.


Яркие презентации


— Riak TS от Basho NoSQL key-value хранилище, ориентированное на TimeSeries Data формат, обещается resiliency (100% доступность данных), автомасштабирование, data co-location, возможность использования SQL и, в частности, оптимизированных SQL— range запросов, поддержку Java, Python, Node.js и других популярных языков, мультикластер-репликацию и, само собой, коннектор к Apache Spark.


— GridGain (между прочим, наши соотечественники) представляли свои разработки построенные, на собственном open-source решении — Apache Ignite. Если кратко, то это технология из 2-х основных компонент: 1. In-Memory MapReduce и 2.Ignite FileSystem (In-Memory файловая система). Эта штука может быть очень полезна для инфраструктуры, основанной на компонентах hadoop-экосистемы, так как позволяет ускорить вычисления в сотни раз практически без изменения кода, работая с YARN кластер-менеджером и будучи совместимой с HDFS. Другой полезный кейс Apache-Ignite In-Memory Data Fabric — это shared in-memory хранилище, которое позволяет Apache Spark-джобам обмениваться данными также на порядок быстрее.


— Были и забавные проекты, которые обещали нам инструмент для аналитики без написания строчки кода. Проект Seahorse — Visual Spark от компании deepsense.io. Это UI-приложение а-ля Matlab Simulink или LabView — графический инструмент для создания пайплайнов Spark задач из графических блоков.


Также мы услышали призывы использовать Apache Spark в качестве back-end движка для различных веб-сервисов, где есть или ожидается большая нагрузка данными, над которыми нужно будет проделывать аналитическую обработку и использовать результаты — либо как непосредственно при выходе продукта для пользователя, либо в качестве промежуточного слоя для последующих сервисов. Один из таких проектов — Eclair.js. Фактически, это js-обертки над Apache Spark API, позволяющие на JavaScript (NodeJS) создавать пайплайны вычислений, в том числе используя синтаксис js для имплементации мапперов и редьюсеров.


Об архитектуре


Kafka


Об этом продукте отдельного доклада не было, но Kafka мелькала почти на каждом слайде про стриминг и просто воспринималась как данность. Обычно для стриминга рисуют множество ресурсов, всё это летит в Kafka, а оттуда в Spark Streaming, также подсасываются микросервисы или что-то ещё опциональное.


Mesos — удивило огромное количество как коммерческого, так и открытого софта на базе этого кластер-менеджера. Stratio, mesosphere, cray и.т.д — это продукты, которые уже работают, несмотря на то, что сама технология пока выглядит сырой. Многие отмечали, что проблем хватает, но Mesos выглядит очень серьезной заявкой на будущее — это универсальный кластер менеджер, легкий в использовании, развертывании и кастомизации. Доклад на эту тему: https://youtu.be/LG5HE9gI07A


Baidu и Yahoo рассказывали о том, как они строили deep-learning на базе Spark. И везде фигурировал некий сервер параметров, возможно именно этот проект. К примеру, на этом сервере хранились вектора, построенные с помощью word2vec.


Python и Spark


Питон над Spark работает медленно, если вы используете лямбды и объекты питона. Проблема известная, есть несколько путей ее решения — использование только DataFrame API, где, по сути, питон лишь указывает, какие функции надо применить, и применяются java (scala) функции Spark. Но как только вы добавляете лямбда функцию, всё ломается — данные сначала десериализуются Спарком, потом сериализуются, передаются на сторону Питона, он десериализует данные, обрабатывает их, и снова сериализует и передаёт обратно. Проблема в том, что объекты Питона не понимаются Скалой и наоборот. Предлагались различные пути решения: от написаний функций на Scala с последующим вызовом из Python, так и более глубокое встраивание интерпретатора в Spark, например, с использованием Jython. Но самым амбициозным и вкусным выглядит проект Apache Arrow (видео доклада: https://youtu.be/abZ0f5ug18U — по сути, реализовать формат объектов, единый для всех языков — тогда можно без потерь обмениваться данными — удобно и быстро! Верим, ждём и по возможности помогаем!


49ffd77e32ef4790bf8d7e53597bcca5.png

CEO Databricks и один из создателей Apache Spark рассказывает про новый глобальный релиз


Spark 2.0


В июне обещают выпуск новой версии спарка, которая включает в себя целый ряд улучшений. Это новый планировщик Catalyst, он строит дерево выполнения и старается оптимизировать выполнение: посчитать константы заранее, фильтрацию данных перевести на уровень ниже и выполнить её по возможности до джойнов. Обещается рост производительности чуть ли не на 70%, но не совсем понятно, в каких случаях.
Также представлен новый Streaming API. Многие говорили о том, что etl должен быть приближен к real-time и streaming, и изменения в API — это наболевшее. Теперь работа с потоком данных будет происходить как с бесконечным DataFrame — вы просто читаете stream и делаете стандартные операции, плюс можно написать SQL!


Пример:
St = sqlContext.read.format(‘json’).open(‘’) было
St = sqlContext.read.format(‘json’).stream(‘’) стало


И дальше всё как обычно, можно даже использовать SQL. Profit!


В версии 2.0 или 2.1 обещали полную поддержку стандарта SQL 2003. Как уже отмечалось ранее, Spark используется и в классических областях аналитики, поэтому разработчики стараются усилить показатели в SQL интерфейсе.


Видео докладов:


Apache Spark 2.0 — https://youtu.be/fn3WeMZZcCk,
Structuring Spark: Dataframes, Datasets And Streaming — https://youtu.be/1a4pgYzeFwE,
A Deep Dive Into Structured Streaming — https://youtu.be/rl8dIzTpxrI,
Deep Dive Into Catalyst: Apache Spark 2 0'S Optimizer — https://youtu.be/UBeewFjFVnQ


Machine Learning


Хотели бы отметить несколько презентаций по Machine Learning.


  1. MLlib 2.0, в котором появилось persistence API, то есть возможность сохранять обученные модели, написанные на одном языке (например, Python) и использовать их в любом другом, поддерживаемом Apache Spark (например, Java). Примечательно то, что эта же логика работает и для пайплайнов. Без преувеличения, это прорыв, так как шаринг моделей между командами DataScience и девелоперами — одна из самых наболевших тем в индустрии. Также почти все алгоритмы MLlib теперь поддерживают DataFrame-based API.


  2. Ребята-контрибьюторы ML фреймворка для больших объемов данных H2O рассказали нам про Sparkling Water — инструмент для удобной интеграции фрейморков Apache Spark и H2O. По словам самих девелоперов, они соединили мощь параллельной обработки больших массивов данных и мощный движок для машинного обучения на этих данных. Судя по их презентации, работа с Sparkling Water по логике использования API мало отличается от Spark. Например, обратная конвертация H2OFrame в Spark DataFrame или в RDD вообще не требует дуплицирования данных, а просто создает DataFrame или RDD обертки. Что же касается конвертации RDD/DataFrame в H20, то тут все-таки дупликация данных требуется. В общем итоге H2O и MLlib имеют не пересекающийся функционал, который может быть полезен во многих случаях.

Немного об атмосфере


Когда видишь столько людей, занимающихся большими данными, машинным обучением, аналитикой, наукой, и т.д, это сильно мотивирует, хочется не отставать и идти вперёд. Воздух был пропитан разговорами, что AI — это новое электричество (тут мы отсылаемся к докладу Andrew Ng) и те, кто его не освоят, останутся за бортом как мануфактуры с ручным трудом, что скоро подключить к бизнесу AI будет все равно что воткнуть вилку в розетку, а big data сможет ответить на любые вопросы, а Spark — это краеугольный камень в будущем новых умных систем.


60cebed415794f67a40952263c734bcf.jpg

Andrew Ng, всем известный основатель Сoursera, убеждает нас в том, что AI — это новое топливо


Много разговоров было о том, что облако — это быстро и дешево. Так и есть, если ваш бизнес построен на системе рекомендаций, как, скажем, у Netflix. В этом случае вам нужна армия Spark инженеров и облако, где можно развернуть инфраструктуру буквально за часы. Но если вы работаете над исследовательским проектом, и аналитика используется только для внутренних нужд, стоит задуматься. Почти каждый, говорил, что за Спарком будущее, не забывал упомянуть, что у них есть решение, «упрощающее жизнь». Так что тут важно не попасться на удочку маркетинга, купив ненужное. Но изучать эти области в любом случае нужно!


Что мы вынесли из этого мероприятия


Мы в Wrike на верном пути. Познакомившись с целым рядом успешных больших компаний и поговорив об их аналитической инфраструктуре и технологиях, мы убедились, что во многом применяем те же решения и выбрали верный путь развития.
Spark развивается, развивается активно и в ближайшее время его станет намного проще внедрять в продакшн.
У нас появились ценные контакты людей, которые работают над схожими проблемами. Нетворкинг удался.
Взглянули на рынок предложений в этой области, если что-то не получится собрать самим — знаем, у кого купить.
Немного расширили свои технические компетенции.
Зарядились новыми идеями и планами.


В чём мы прогадали


К подобным событиям надо готовиться и, как минимум, подумать о том, как вы будете обмениваться контактами и.т.д. Мы забыли распечатать визитные карточки, из-за чего приходилось набирать свой email на чужом телефоне, фотографировать бейджики и.т.д.
Не будет лишним заранее посмотреть на выставочные комплексы и определиться с вопросами, возможно, какие-то продукты будут интересны и другим отделам вашей компании. Также, если изучить материалы заранее, можно подготовить вопросы по докладам.


Зачем и кому нужно ехать на саммит


Это отличная возможность взглянуть на рынок big data, построенный вокруг Spark. Если вы подумываете о том, чтобы приобрести какое-то решение — это идеальное место чтобы посмотреть, что есть на рынке, и сравнить.
Вы можете завести полезные связи со Spark-сообществом.
Это отличная возможность поспрашивать, что и как устроено в других компаниях.


В качестве послесловия хочется добавить, что мы лично беседовали с главными контрибьюторами Apache Spark — ребятами из DataBricks. Они презентовали нам инструмент а-ля Jupiter на стероидах для работы с Apache Spark. Это ipython-ноутбуки, которые работают поверх облаков, но имеющие развитую систему мониторинга статуса отдельно выполняющихся ячеек (jobs), продвинутую логику шаринга ноутбуков и учета пользователей. Из той же вкладки можно менять версии спарка / языки / настройки облака (кластера). При этом у продукта DataBricks есть бесплатная Edition-версия. Также ребята планируют сделать кастомизируемый шаринг готовых автообновляемых дашбордов.


Если что-то забыли рассказать, задавайте вопросы, с удовольствием ответим в комментариях.

Комментарии (0)

© Habrahabr.ru