agsandrew - Fotolia
Drizzle : un turbo pour Spark Streaming
Jusqu’alors, Spark Streaming et son architecture attiraient l’œil pour ses atouts en matière de programmation. Désormais, alors que d’autres projets se présentent sur le marché, Drizzle vise à réduire la latence des flux.
L’innovation autour de l’architecture de Spark Streaming se poursuit, a confirmé la société Databricks, le créateur de Spark. La société a présenté la semaine dernière un add-on dont la vocation est de réduire la latence. Un point clé dans le steaming.
Nom de code : Drizzle. Ce projet est né dans les laboratoires de l’Université de Californie et devrait être intégré à Apache Spark plus tard dans l’année, selon Databricks. Cette mise à jour est très attendue car elle marque la volonté de la société de créer une plateforme qui répond aux nouveaux cas d’usage en matière d’analyse de donnée. En ce sens, Drizzle doit accompagner les utilisateurs vers les architectures dites Lambda qui associent le traitement de données en mode batch au temps réel.
Spark, très trendy chez Netflix
Conjuguer le mode batch au temps réel n’est pas chose facile, même pour les entreprises du Web les plus agiles. Mais il s’agit toutefois d’une évolution naturelle, explique Shriya Arora, ingénieur de la donnée chez Netflix. Chez ce spécialiste de la VOD, Elle fait partie d’une équipe qui utilise les capacités de traitement et de streaming de Spark pour transformer et pousser les données vers les data scientists qui développent des algorithmes censés personnaliser chaque recommandation de films. NetFlix a entamé un chantier qui consiste à basculer certaines applications vers le temps réel, et elle travaille donc à ajuster Spark Streaming.
« Le streaming est plus efficace que d’avoir des jobs qui s’exécutent sur le long terme, mais cela a un prix. Par exemple, les dysfonctionnements du streaming doivent être traités immédiatement. Si une application est inopérante trop longtemps, on risque de perdre des données », a-t-elle expliqué lors du Spark Summit East 2017 qui s’est tenu la semaine dernière à Boston.
Le temps réel : mais pourquoi attendre ?
Toutefois, ces travaux autour du temps réel sont très pertinents car cela permet de mieux harmoniser les recommandations de films avec ce que souhaitent les clients, dans l’immédiat. La sélection « Tendances Actuelles », par exemple, peut devenir rapidement désuète, poursuit-elle. « Pourquoi attendre 24 heures quand l’information mise à jour peut être collectée en une heure ? », lance-t-elle.
Toutefois, l’architecture de Spark Streaming ne supporte pas le streaming d’événements pur que l’on attend aujourd’hui. Spark repose encore sur une approche de micro-batch qui peut traiter rapidement des petits lots de données. Dans certains cas, il est préférable d’opter pour des framework alternatifs, comme Flink ou Storm, indique Shriya Arora, surtout pour des applications où les temps de traitement sont critiques.
C’est là qu’entre en jeu Drizzle, né dans le RISELab de UC Berkeley et un descendant du projet AMPLab où a débuté Apache Spark. L’objectif de Drizzle est de réunir streaming et micro-batch. Il est en quelque sorte une réponse à Flink, un framework qui monte et qui a déjà montré des gains de performances par rapport à Spark Streaming.
Sur les traces de Flink
Ion Stoica, le président et co-fondateur de Databricks, n’a pas essayé de minimiser les lacunes de Spark en matière de latence - comparé à Flink. Selon lui, Drizzle doit réduire la latence de Spark d’un facteur de 10.
Ion Stoica est également professeur d’informatique à UC Berkeley et fait partie du RISELab. Dans un graphique, il a clairement montré que Spark était derrière Flink de plusieurs centaines de millisecondes. Il a aussi montré comment Drizzle et le moteur d’exécution Drizzle-opt pouvaient améliorer les performances de Flink. Si les détails sont encore rares, l’architecture de Drizzle est expliquée sur le site Web des RISELab.
Matei Zaharia, l’inventeur de Spark, également CTO de Databricks – et son autre co-fondateur – a confirmé que certaines briques de Drizzle devraient être incluses à Apache Spark au troisième trimestre 2017.
Un modèle unifié
Les deux fondateurs de Databricks ont également expliqué que les dernières évolutions de Spark, comme le moteur Structured Streaming et les API, ajoutés dans la v2 du framework l’année dernière, ont permis de donner une approche plus cohérente aux développeurs – en combinant temps réel et batch dans une unique plateforme. Selon eux, Spark constitue une plateforme unifiée pour différents besoins en matière de gestion de données et analytiques, qui comprend de l’ETL, du Machine Learning, SQL et le streaming.
« Nous pensons Spark comme une infrastructure pour le Machine Learning, qui ne représente qu’une partie infime du workflow global », soutient Ion Stoica. « Vous devez nettoyer la donnée puis la transformer. Puis au final, vous y appliquez des algorithmes de Machine Learning. »
Une réunion batch et temps réel qui fait d’ailleurs écho. « Avant notre utilisation de Spark, nous utilisions un ETL, du Machine Learning et d’autres outils analytiques, et tous étaient des composants logiciels différents », explique Saket Mengle, data scientist principal chez DataXu. « Spark nous permet de tout mettre ensemble. Il faut certes adapter cela, mais cette unification est bonne. »
Spark, plus rapide qu’Hadoop
Dans un billet de blog, Doug Henschen, analyste principal chez Constellation Research, remarque justement que Spark connait une progression plus rapide qu’Hadoop, au même stade de leur développement. Selon lui, Spark devrait connaître des cas d’usage plus étendus de la part des développeurs et des data scientists.
Un indicateur de l’avancée de Spark est son niveau d’adoption par les fournisseurs de technologies, explique-t-il. En fait, la version Open Source de Spark est proposée par des acteurs clés comme IBM et Oracle et Hadoop par des fournisseurs de distributions, comme Cloudera, Hortonworks et MapR.