carloscastilla - Fotolia

Les conteneurs : une clé des déploiements de Spark et Hadoop en production

Passer des PoC Spark ou Hadoop en production peut relever du parcours du combattant. Mais les conteneurs ont la capacité de faciliter cette transition si critique.

Si les projets Spark et Hadoop en place dans les entreprises ont donné satisfaction lors de phases pilotes, ou au sein de projets de taille réduite, leur passage en production, pour armer les analystes et autres data scientists, reste aujourd’hui véritablement difficile. Pour nombre d’entreprises, cela représente même un obstacle dans leur quête du Big Data.

La complexité des processus de configuration est souvent citée comme le premier obstacle. Il est souvent difficile et très long de re-créer un prototype, à façon, développé par un data scientist dans son coin. Et bien souvent, cela rime avec échec lorsqu’il est partagé auprès d’un groupe d’utilisateurs bien plus large. Pour résoudre ce problème, certains misent sur les microservices, les conteneurs et autres pratiques DevOps, pour assembler leurs composants Spark et Hadoop.

« Nos équipes de data scientists et nos métiers ne veulent pas attendre des jours voire des semaines, le temps que nous configurions un nouveau cluster Spark ou un environnement Big Data avec tous les outils, les bonnes versions et les bonnes configurations et bien sûr, les bonnes données », affirme Ramesh Thyagarajan, directeur de The Advisory BOard Company, une société américaine de conseil, spécialisée dans l’analytique pour le secteur de la Santé.

Ce spécialiste considère les conteneurs Docker comme un levier pour une plus grande agilité des data scientists et des utilisateurs métier.

Pour ses déploiements dans le style DevOps, Advisory Board s’appuie sur la plateforme EPIC de BlueData Software pour exécuter Spark SQL et Spark, ainsi qu’Apache Zeppelin (une interface Web pour analyser des données depuis Spark). « Pour nous, tout est question d’agilité et d’accélération de l’innovation », explique-t-il, soulignant l’architecture en conteneurs de la plateforme de BlueData Software.

Cette plateforme permet la mise en place de clusters Spark à la demande, manipulables par les data scientists et les analystes, masquant ainsi la complexité des configurations induites par de tels déploiements.

Son équipe a d’ailleurs développé son propre framework pour porter les données vers HDFS. Résultat, les clusters Spark s’appuie sur une seule source de données. Une telle centralisation est importante. « C’est la seule façon de supporter plus de 400 utilisateurs et leurs clusters. »

Conteneurs et Big Data : un mariage qui n’est pas consommé

L’usage de conteneurs  dans les environnements Big Data est encore rare. Les clusters Spark ont principalement été déployés sur des clusters bare-metal, soutient Tom Phelan, co-fondateur et architecte en chef à BlueData, et un vétéran de l’industrie de la virtualisation. Cela rime avec des configurations ardues et des implémentations statiques difficiles à modifier, a-t-il précisé dans une présentation lors du Spark Summit East 2017.

Selon lui, l’implémentation de conteneurs peut certes être effectuée par du scripting manuel, mais cela devient plus difficile dans les environnements Big Data qui cumulent les composants. Aujourd’hui, poursuit-il, Spark ne correspond souvent qu’à une partie de workloads complexes et orchestrées qui ne peuvent pas être adaptées facilement aux conteneurs. « Vous devez vous frayer un chemin dans une jungle de gestionnaire de conteneurs », a-t-il expliqué aux participants de la conférence, ajoutant que c’est justement un des problèmes auxquels BlueData tente d’apporter une réponse.

Une réponse au dimensionnement

Selon Tom Phelan, les dernières mises à jour de la plateforme BlueData ciblent justement les besoins des data scientists qui utilisent Spark, comme ceux cités plus haut par Advisory Board.  Dans sa dernière version, la plateforme supporte les outils Spark, comme Jupyterhub, RStudio Server et Zeppelin, en tant qu’images Docker pré- configurées. L’objectif est d’apporter plus d’agilité, et de DevOps aux data scientists.

Ces méthodes liées aux conteneurs et aux microservices sont en fait un moyen pour automatiser un peu plus d’aspects du déploiement d’applications. Elles représentent d’ailleurs souvent une réponse au dimensionnement et à l’élasticité des applications. Cela permet aux administrateurs de provisionner et de dé-provisionner des ressources au rythme des  workloads.

Les conteneurs sont de plus en plus courants dans le Cloud Computing ainsi que dans les implémentations on- premise. Une tendance que Spark et Hadoop pourraient suivre, si leur usage est voué à grandir dans les entreprises.

 

 

Pour approfondir sur Big Data et Data lake