Відповідність між інфраструктурою часу великих даних; el Spark перемагає

Що стосується великих даних, ряд випадків використання не задовольняються пакетною обробкою даних. Боротьба з шахрайством, кібербезпекою, виявлення аномалій у промисловому виробництві, моніторинг дорожнього руху або навіть рекомендації продуктів на веб-сайті електронної комерції вимагають обробки потоків даних у реальному часі для отримання результатів майже негайно. Щоб відповісти на цю проблему, на межі 2010-х років у плеяді пропозицій Hadoop з’явилися три фреймворки з відкритим кодом, що спеціалізуються на потоковому передаванні даних. Або, за порядком появи, Іскра, Флінк та Шторм. До цього тріо ми можемо додати Kafka Streams, який надає потоковий вимір Kafka, структурі, присвяченій обробці подій. Всі вони пропонуються за ліцензією Apache.
Спочатку ці рамки відповідають двом різним філософіям. Flink і Storm виконують обробку в режимі реального часу - у реальному часі, тоді як Spark працює в мікро-партіях для обробки та отримання результатів кожні X мілісекунд, щоб наблизитись до реального часу.
| 2011 рік | 2009 рік | 2010 рік |
| UC Берклі | Берлінський університет | |
| Обробка подій | Мікро партії | Обробка в реальному часі |
| Клоджуре, Ява | Java, Python, R, Scala | Java, Python, Scala |
| - | Cloudera, Hortonworks та MapR | - |
| - | Таленд, Дадайку | Таленд |
| - | Збір даних | Ремісники даних (придбані Alibaba) |
| Apache Storm на Azure HDInsight | Apache Spark на Amazon EMR, Spark на Azure HDInsight, Cloud Dataproc від Google Cloud (Spark + Hadoop) | Apache Flink на Amazon EMR |
| Yahoo !, Twitter, Spotify, Groupon. | Uber, ING, Criteo, Zalando. | Alibaba, AWS, CapitalOne, OVH, Bouygues Telecom. |
За словами Крістофа Парагедо, старшого експерта з питань архітектури даних та Java у Ippon Technologies, "також слід враховувати інші критерії відбору, такі як зрілість структури, її популярність у спільнотах розробників або навіть підтримка рішення комерційним видавцем Так багато гарантій сталості та масштабованості ".
Іскра, найпопулярніша
Що стосується популярності, Spark пройшов довгий шлях попереду своїх конкурентів. Щоб переконатися в цьому, вам просто потрібно побачити кількість запитів, пов’язаних із фреймворком на Google Trends. Структура, розроблена в престижному AMPLab Каліфорнійського університету в Берклі, насправді має все, що може сподобатися на папері. Що було його головною недоліком (обробка даних у мікро-пакетному режимі, а не в потоці) було подолано два роки тому випуском його версії 2.0. З цієї нагоди нова функція Spark Streaming представила, як випливає з назви, управління потоковим передаванням даних. З цієї версії Spark також взаємодіє з TensorFlow для інтеграції виміру глибокого навчання. "Неперевершений плюс", за словами Развана Бізоя, незалежного консультанта з архітектури баз даних та тренера в інституті Орсіса.
"У дусі DevOps цікаво, що ті самі рамки можуть використовувати вчені-дані та інженери даних"
Spark був створений у Scala, але також підтримує Java, Python та R, дві останні мови популярні серед статистиків та науковців даних. "Цікаво в дусі DevOps, що ті самі рамки можуть використовувати науковці даних та інженери даних", зауважує Крістоф Параге.
Шпарка швидко придумав точну і віконну. Тобто врахування подій за певний період (або часове вікно). Він також був би міцнішим та стійкішим за своїх конкурентів. Ще одна головна перевага: він інтегрований такими дистриб'юторами Hadoop, як Cloudera, Hortonworks та MapR.
Нарешті, Spark підтримується активною та великою спільнотою з відкритим кодом. За допомогою Databricks він має потужний редактор, який збагачує його розширеними функціями, одночасно пропонуючи послуги адміністрування та підтримки. Заснована первинними творцями Spark (зокрема Матей Захарія, який є її технічним директором), компанія в лютому минулого року зібрала 250 мільйонів доларів з метою збільшення присутності в Європі.
Коли приходить час підвести підсумки, Разван Бізої намагається знайти недоліки у Spark, якщо це не обробка даних типу графіків або відсутність зрілості інструментів машинного навчання.
Шторм, втрата пари
Що стосується Шторму, то це найновіший фреймворк, але також той, що виник найшвидше. Після багатообіцяючого початку він зараз втрачає позиції. Розроблений розробниками Twitter, Storm залишається цікавим інструментом для отримання стрічок із соціальних мереж, але має кілька недоліків для інших випадків використання. Разван Бізой зазначає, що "хоча" Шторм "і народився в результаті руху великих даних, він не інтегрований у кластери типу Hadoop".
Більше того, Storm створювався в основному в Clojure, досить екзотичній мові програмування. З тих пір архітектура Storm була перероблена, особливо з нагоди виходу її версії 2.0, а її основні функції були реалізовані на Java. Незважаючи на те, що це полегшило керування та розробку API, Java не є найбільш гнучкою мовою для використання.
Для Крістофа Парагео спільнота Бурі також вчинила первородний гріх, пізніше запропонувавши поняття "рівно один раз", тобто гарантію того, що подія розглядається лише один раз. У фінансовому розрахунку, врахування однієї і тієї ж операції двічі автоматично призведе до спотворення результатів. З тих пір інший фреймворк, який називається Trident, розширює можливості Storm та виправляє цю помилку, надаючи інфраструктурі з відкритим кодом більшу гнучкість щодо управління розміром ІТ-ресурсів.
Флінк, вічний претендент
Зіткнувшись зі Спарком, Флінк є хорошим студентом. Однак він не досягає такого ж ступеня популярності. Флінк був розроблений ще до того, як Іскра вилетіла під назвою Стратосфера дослідниками Берлінського технічного університету. Згодом Флінк виграв у багатьох пунктах. Власне управління потоками в реальному часі, він також запропонував вікно, саме те, швидше. Крім того, він підтримує Java, Python та Scala.
То чому він не залишив Спарка позаду? Європейське походження могло сприйматися як мінус. Берлінський університет не має такої сили тяжіння, як Берклі. Головний наслідок: набагато менш динамічна спільнота учасників. Крім того, Flink не інтегрований дистриб'юторами Hadoop.
Ситуація може змінитися з придбанням компанії Alibaba компанії Data Artisans, яка займається промисловим обслуговуванням Flink.
Ситуація може змінитися після поглинання в січні минулого року німецької компанії Data Artisans, яка промислово розвиває послуги для Flink, компанією Alibaba за 90 мільйонів євро. Китайський гігант електронної комерції повинен надати новий вимір стартапу в Берліні, який пропонує готові до використання інструменти інтеграції, користувальницький інтерфейс для візуалізації потоків і навіть функції автентифікації.
Компанії, що використовують як Spark, так і Flink, можуть спокуситись проектом Apache Beam, який дозволяє "перемикатися" між двома фреймворками.
Нарешті, слід зазначити, що кілька хмарних провайдерів пропонують керовані сервіси великих даних, що інтегрують вимір у реальному часі, покладаючись на Spark та Flink. Це стосується Amazon, яка перенесла Apache Spark на свою службу Elastic MapReduce. Деякі навіть розробляють власні рішення для потокової передачі даних, такі як Google з потоком даних, Microsoft з Azure Stream Analytics або навіть Amazon з Kinesis. Пакувальні пропозиції, які дають можливість експериментувати із випадками використання, не інвестуючи у виділену інфраструктуру.