Spark Summit 2016: огляд і враження


У червні пройшло одне з найбільших заходів світу у сфері 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 — по суті, реалізувати формат об'єктів, єдиний для всіх мов — тоді можна без втрат обмінюватися даними — зручно і швидко! Віримо, чекаємо і по можливості допомагаємо!

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('<path>')

St = sqlContext.read.format('json').stream('<path>')
стало
І далі все як звичайно, можна навіть використовувати 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 — це наріжний камінь у майбутньому нових розумних систем.

Andrew Ng, всім відомий засновник Соигѕега, переконує нас в тому, що AI — це нове паливо
Багато розмов було про те, що хмара — це швидко і дешево. Так і є, якщо ваш бізнес побудований на системі рекомендацій, як, скажімо, у Netflix. В цьому випадку вам потрібна армія Spark інженерів і хмара, де можна розгорнути інфраструктуру буквально за годину. Але якщо ви працюєте над дослідницьким проектом, і аналітика використовується тільки для внутрішніх потреб, варто задуматися. Майже кожен, говорив, що за Спарком майбутнє, не забував згадати, що у них є рішення, «полегшення життя». Так що тут важливо не попастися на вудку маркетингу, купивши непотрібне. Але вивчати ці області в будь-якому випадку потрібно!
Що ми винесли з цього заходу
Ми в Wrike на вірному шляху. Познайомившись з цілим рядом успішних великих компаній і поговоривши про їх аналітичної інфраструктури та технологіях, ми переконалися, що багато в чому застосовуємо ті ж рішення і обрали вірний шлях розвитку.
Spark розвивається, розвивається активно і найближчим часом його буде набагато простіше впроваджувати в продакшн.
У нас з'явилися цінні контакти людей, які працюють над схожими проблемами. Нетворкінг вдався.
Поглянули на ринок пропозицій у цій області, якщо щось не вийде зібрати самим — знаємо, в кого купити.
Трохи розширили свої технічні компетенції.
Зарядилися новими ідеями та планами.
В чому ми помилилися
До подібних подій треба готуватися і, як мінімум, подумати про те, як ви будете обмінюватися контактами в.т. д. Ми забули роздрукувати візитні картки, з-за чого доводилося набирати свій email на чужому телефоні, фотографувати бейджики і. т. д.
Не буде зайвим заздалегідь подивитися на виставкові комплекси і визначитися з питаннями, можливо, якісь продукти будуть цікаві й іншим відділам вашої компанії. Також, якщо вивчити матеріали заздалегідь, можна підготувати питання з доповідями.
Навіщо і кому потрібно їхати на саміт
Це відмінна можливість поглянути на ринок big data, побудований навколо Spark. Якщо ви роздумуєте про те, щоб придбати якесь рішення — це ідеальне місце, щоб подивитися, що є на ринку, і порівняти.
Ви можете завести корисні зв'язки з Spark-спільнотою.
Це відмінна можливість розпитати, що та як влаштовано в інших компаніях.
В якості післямови хочеться додати, що ми особисто спілкувались з головними контрибьюторами Apache Spark — хлопцями з DataBricks. Вони презентували нам інструмент а-ля Jupiter на стероїдах для роботи з Apache Spark. Це ipython-ноутбуки, які працюють поверх хмар, але мають розвинену систему моніторингу статусу окремо виконуються комірок (jobs), просунуту логіку шарінга ноутбуків та обліку користувачів. З тієї ж вкладки можна змінювати версії спарка / мови / налаштування хмари (кластера). При цьому у продукту DataBricks є безкоштовна Edition-версія. Також хлопці планують зробити кастомизируемый шарінг готових автообновляемых дашбордов.
Якщо щось забули розповісти, задавайте питання, із задоволенням відповімо в коментарях.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.