Big data : où en sont ces 5 projets open source ? Dont on a tant parlé

Parier sur l’open source pour sa stratégie Big Data : est-ce bien raisonnable ?

L’open source est-il une bonne piste en matière de Big Data ? Peut-on, sur une matière aussi sensible (les données) faire confiance à des outils open source ?

Dans une note de recherche récente, l’entreprise de conseil et de recherche Gartner insiste, en matière de big data,  sur le problème de la maturité des logiciels open source. Il faut se poser la question “sur quelle couche sont-ils sont déployés dans l’environnement – en fonction de ce niveau de maturité”. « En règle générale, plus le logiciel est largement déployé, moins le risque associé est élevé. La raison est que la dynamique de l’industrie entraîne généralement (a) l’amélioration du code source, (b) l’amélioration de la documentation et du support et (c) une plus grande disponibilité du personnel compétent. »

S’imagine-t-on pour autant  annoncer dans un CODIR (comité de direction) : “notre stratégie Big Data reposera sur l’Open source” ?

Si vous faites partie de ceux qui ne se sentent pas totalement prêt à relever ce genre de défi, il faut absolument que vous lisiez ce qui suit. Vous y puiserez les arguments et les informations nécessaires pour préparer votre présentation powerpoint dans ce même comité. Oui, les choses avancent et les projets open source en matière de big data se structurent. En outre, il y a toujours en appui des acteurs de premier plan (LinkedIn, Cloudera, etc.) qui animent les communautés de contributeurs. Et désormais des références de taille qui utilisent ces technologies.

Il y a en fait de nombreux projets open source en la matière. Les passer tout en revue est impossible. Alors concentrons-nous sur les 5 plus célèbres du moment.

Une incroyable liste d’Apaches

Jetez juste un oeil à liste des projets de l’ ASF. La Apache Software Foundation. Pas  moins de 38 concernent les big data à l’heure où nous écrivons ces lignes. De quoi se sentir dépassé par les événements.

D’autant qu’il ne faut pas perdre de vue que de nombreux projets big data vraiment intéressants ne se font pas sous l’ombrelle ASF.

Commençons donc déjà par ceux que les blogs et la presse spécialisée à élu comme les 5 grands projets sur lesquels il faut garder un oeil.

Apache Flink


Flink  fonctionne avec un moteur central de streaming data (1) à tolérance aux pannes. Sa philosophie : traiter les batches d’opérations comme un cas particulier de streaming data. Il offre des bibliothèques pour le machine learning et le graph processing et est compatible avec Apache Kafka et H Base, entre autres composants Hadoop (2).

Il fait penser à Spark, mais son paradigme “streaming first” avec tolérance aux pannes le rend un peu différent.
Ceci étant, les deux moteurs ont de nombreux points communs dans leurs scénarios et ils vont vraiment rester en concurrence l’un avec l’autre.

Pour suivre l’évolution de la pertinence cet outil, observer ce qui se passe dans l’écosystème du streaming data est important.

Et notamment les modalités d’interrogation des bases de données qui sont spécifiques en streaming data. De ce point de vue, la présentation en août 2017 lors d’une conférence Kafka de KSQL, une nouvelle façon de gérer SQL, adaptée au streaming data est à suivre.

Une information récente qui braque les projecteurs sur Flink est le fait qu’Uber ait fini par choisir Flink, après avoir testé Spark et Samza. Plus léger, plus rapide.

“Le déchargement local de données de la mémoire vers un système de cache est un avantage important pour le stockage rapide”, explique Chinmay Soman, Ingénieur programmes chez Uber Technologies.

Apache Samza

Le projet  Samza  met, lui aussi, le focus sur le process de streaming data. Samza, en la matière, a quelque chose en plus que toutes les solutions (Storm, Spark et Flink). Il est capable de travailler avec Kafka et YARN, mais son véritable plus, c’est qu’il offre une architecture qui permet l’intégration à d’autres moteurs de messagerie ou d’exécution de tâches.

La combinaison de Kafka et Samza a ainsi été utilisée en premier chez LinkedIn. Le fait que ce code ait été mis en oeuvre en production avant même le lancement du projet open source par une telle entreprise  attire forcément l’attention. Surtout par une entreprise pour qui  les données sont la valeur-clé.

Le 15 mai dernier, l’ ASF a annoncé la mise à disposition de la version 0.13.
Samza offre une API qui permet le streaming data depuis des systèmes de messageries telles que Kafka ou des batches de données venant de Apache Hadoop. La version 0.13 facilite la portabilité d’applications en temps réel et permet de gérer jusqu’à 1.1 million de messages par seconde sur une même machine.  Parmi les besoins auxquels répond Apache Samza, on peut évoquer :

  • l’analyse en temps réel des utilisateurs,
  • le routage de messages,
  • la lutte contre la fraude,
  • la détection d’anomalies,
  • le monitoring des performances,
  • la communication en temps réel,
  • etc.

Parmi les nouveaux utilisateurs, on peut aussi citer, Netflix, Optimizely, Redfin, TripAdvisor (voir https://cwiki.apache.org/confluence/display/SAMZA/Powered+By)

Ibis (Cloudera-incubated)

L’origine du projet open source a été de développer de nouvelles possibilités en s’appuyant sur le langage  Python.

Python n’est pas conçu pour des applications qui tournent dans un système “noeuds” et “cluster”. En même temps, c’est un langage très populaire chez les data scientists . Ceux-ci ont besoin de travailler avec des lots de données qui dépassent les capacités d’un seul serveur. Ceci oblige les partitionneurs à utiliser l’échantillonnage de données dans leur travail, pour construire des modèles fonctionnant dans un délai raisonnable sur un nœud unique.

Le projet Ibis permet à Python d’exécuter son travail à travers plusieurs nœuds dans un même cluster plutôt que sur une seule station de travail ou un seul serveur.

Cette technologie est le résultat de l’acquisition par Cloudera de DataPad, une startup spécialisée dans l’utilisation de Python pour la data vizualisation et les big data. Même s’il est open source, le projet reste piloté par Cloudera et n’a pas rejoint l’ASF. Il est destiné aux data scientists et l’objectif est d’amener les “plus” du Python dans le monde des applications distribuées.

Un des intérêts d’Ibis est également de se libérer désormais d’Impala, afin de pouvoir fonctionner sur d’autres plateformes également.  On sait en effet que, même si  Cloudera a fait parler de lui en adoptant Apache Spark, il était resté attaché à son propre moteur SQL, Impal, concurrent de Spark SQL. Et cela restait un frein.

Apache Twill (incubating)

Le projet Twill apporte une couche d’abstraction à YARN, le gestionnaire de ressources des clusters d’Hadoop.
YARN est le composant qui découple Hadoop de l’algorithme MapReduce, afin de lui permettre de tourner parallèlement à d’autres process (dont Spark et Flink).

En faisant cela, YARN fait de Hadoop une plateforme d’informatique distribuée plus généraliste. Le problème, cependant, est que YARN est complexe. S’y former prend du temps.

La couche d’abstraction Twill vise à rendre YARN accessible à tous les développeurs Java. Son équipe est dirigée par Arun Murthy, architecte et fondateur de Hortonwork.

Ceci est le signe que Twill va devenir une part de l’offre YARN.

Apache Mahout-Samsara

Mahout est un moteur de machine-learning qui n’est ni nouveau ni obscur dans le paysage des projets Hadoop. Mais cette vieille histoire a été remise au goût du jour depuis 2 ans  avec l’ajout d’un nouvel environnement de calcul appelé Samsara.

Samsara tourne sur Spark.

Cela fait de Mahout bien plus qu’un couche d’abstration de MapReduce d’Hadoop. Cela devient une bibliothèque d’outils de machine learning scalables et responsives.

Selon la communauté qui travaille sur Mahout, divers arguments plaident en faveur de l’utilisation d’Apache Mahout  :

  • bibliothèque de machine-learning  très complète comprenant les principaux algorithmes, y compris les 3C ;
    • Collaborative Filtering : algorithmes servant à recommander des items à un utilisateur par identification de similarités,
    • Clustering : algorithmes permettant de découvrir des groupements parmi un lot de données (ex. : profilage de clients, analyse de tendances…),
    • Classification : algorithmes permettant de classifier automatiquement des documents à partir de documents déjà classifiés (ex. : association automatique de tags à des textes, filtrage des mails de type spams…) ;
  • algorithmes bien testés et supportés ;
  • open source ;
  • appui sur Hadoop MapReduce, ce qui répond à des problèmes de scalabilité (stockage réparti redondant) et de parallélisme (calculs distribués de type MapReduce) pour être utilisé avec de gros volumes de données ;
  • communauté active, ce qui garantit une croissance rapide ;
  • Java ;
  • bibliothèque extensible avec la possibilité d’ajout de nouveaux algorithmes.

Le rôle central de Hadoop

Même si ce choix de 5 projets phares est un peu arbitraire, il montre néanmoins un fait important : Hadoop est dans ce paysage en position centrale. Une sorte de métropole avec ses banlieues, ses ruelles et ses extensions. Mais, comme pour Paris, pour bien comprendre cette ville, il ne faut pas se contenter de visiter le centre, l’intérieur du périphérique. Il faut raisonner globalement, observer le “Grand Paris”. Hadoop, c’est un peu la même chose.

(1) Le streaming data est un mécanisme utilisé pour mettre à jour les données. Il sert à créer des applications proposant une expérience en temps réel  (application nécessitant un système de notification en temps réel, par exemple, jeux vidéo ou “chats”). Il est intéressant pour les données de type achats de e-commerce, services géolocalisés, logs, etc. Au-delà des fonctionnalités simples, comme l’envoi d’alarmes quand un seuil est dépassé, on cherche désormais à aller plus loin et à utiliser par exemple des algorithmes de machine learning. Le streaming data fournit aux entreprises des informations pour éclairer le parcours client, l’activité du site Internet, la géolocalisation, l’utilisation de services, etc.

(2). Hadoop est une des technologies phares en matière de big data. Les 4 projets centraux sont : Hadoop Common (utilities), Hadoop Distributed File System (HDFS), Hadoop YARN (scheduler) and Hadoop MapReduce (parallel processing). Parmi les add-ons, on peut citer :  Ambari (cluster management), Cassandra (base de données multi-master ), Avro (data serialization), Chukwa (data collection), Hive (data warehouse), HBase (base de données distribuée), Mahout (machine learning et data mining), Spark (compute engine), Pig (framework), Tez (data-flow programming framework  destiné à remplacer MapReduce), et ZooKeeper (coordination).

 

N.B. Sur les raisons du choix de ces 5 projets, lire aussi cet article de zdnet.