Apache Spark embrase le secteur du Big Data. Devant la promesse de hautes performances et d’API conviviales, certains pensent que Spark va remplacer Hadoop MapReduce. Qu’en est-il réellement ? Si l’on y regarde de plus près, Spark semble plutôt être un bon complément d’Apache Hadoop YARN, le noyau architectural d’Hadoop…

Hadoop est actuellement en train de révolutionner de nombreux secteurs en accélérant les projets Big Data, aidant les entreprises à transformer leurs données en un avantage compétitif. Des entreprises de tous horizons utilisent aujourd’hui Hadoop dans des projets à grande échelle pour faciliter la recherche approfondie de données, se forger une vue d’ensemble des clients parmi de multiples ensembles de données et réaliser des analyses prédictives. Ce faisant, les entreprises sont en mesure de satisfaire les besoins clients, d’anticiper l’évolution dynamique du marché et des comportements des consommateurs et de tester diverses hypothèses de travail, de vrais atouts pour se démarquer de leurs concurrents.

L’essor de la demande enregistré pour le Big Data a entraîné une hausse fulgurante des dépenses dans les technologies associées. L’un des plus actifs et remarquables des projets open source de l’Apache Software Foundation est Apache Spark qui permet d’exécuter des programmes jusqu’à 100X plus vite que MapReduce grâce à un moteur d’exécution DAG (graphe acyclique dirigé) adapté aux flux de données cycliques et au stockage de données en mémoire. Spark est également une technologie conviviale pour les développeurs qui utilisent Java, Scala, Python et R pour créer facilement des applications avec les opérateurs. Sachant que Spark combine le langage SQL, le streaming et des capacités d’analyse complexes, la compatibilité avec de nombreux outils est assurée : un véritable avantage pour réaliser des analyses à partir de sources de données éparses.

Apache Spark suscite un certain enthousiasme dans la communauté Big Data, inspirant des contributions de plus de 400 développeurs depuis le début du projet en 2009. Devant la promesse d’une telle performance et d’API conviviales, certains ont pensé que cela signait la fin d’Hadoop MapReduce. Si Spark est plus performant lorsque toutes les données entrent dans la mémoire, et en particulier sur des clusters dédiés, Hadoop MapReduce est quant à lui conçu pour les données qui n’entrent pas dans la mémoire et peut parfaitement fonctionner en parallèle d’autres services. Les deux technologies présentent des avantages et la plupart des entreprises n’utiliseront pas Spark seul. Elles ont besoin de HDFS pour stocker les données et peuvent vouloir utiliser HBase, Hive, Pig, Impala ou d’autres projets Hadoop. Cela signifie qu’elles devront continuer d’utiliser Hadoop et MapReduce avec Spark pour disposer d’une solution Big Data complète.

En réalité, Spark complète idéalement Apache Hadoop YARN, le noyau architectural de Hadoop, et permet à plusieurs moteurs de traitement de données d’interagir avec les données stockées sur une plateforme unique. YARN offre un service de gestion des ressources et une plateforme centrale pour assurer des opérations régulières, une sécurité avancée et des outils de gestion des données dans les clusters Hadoop. Il ouvre la voie à une toute nouvelle approche d’analyse Big Data et Spark est un élément clé de cette approche. En associant Spark et YARN, il est possible de constituer une architecture de données moderne qui permet aux utilisateurs de stocker des données dans un endroit unique et d’interagir avec de multiples façons en utilisant le moteur de traitement des données le mieux adapté à l’analyse voulue.

Cette intégration inter-pile fait de Spark on YARN l’une des meilleures options pour tirer parti des très gros référentiels Big Data et extraire des données utiles d’un vaste océan de données, d’autant que les entreprises souhaitent pouvoir exploiter tous les avantages de YARN pour l’analyse partagée Big Data. Désormais, les experts en données peuvent étayer les données dérivées des machines avec Spark avec des données d’Apache Hive ou des informations en temps réel d’Apache Storm (pour ne citer que deux des nombreux moteurs gérés par YARN).

Certaines entreprises commencent qui se lancent avec Spark font leurs gammes sur des clusters ne contenant pas de données sensibles ou n’étant pas dédiés à une seule application, ce qui signifie qu’ils ne seront pas soumis à un nombre excessif d’exigences de sécurité et qu’ils sont relativement autonomes.

Rassurées par l’efficacité de Spark, ces entreprises souhaitent ensuite tirer parti de la valeur de YARN. Elles tentent alors de déployer des applications basées sur Spark parallèlement à d’autres applications sur le même cluster, mais avec cette intégration étendue dont elles ont besoin pour satisfaire des exigences de sécurité plus strictes.

L’alliance de Spark et Hadoop s’impose donc la solution aux difficultés de certaines entreprises, par exemple dans les domaines suivants :
– Coûts : améliorer les capacités d’évolution du stockage et du traitement peut aider à réduire les coûts de 20 à 40% tout en ajoutant des volumes de données supplémentaires.
– Duplication: déployer une plateforme Big Data dans le cloud peut réunir plusieurs clusters dans un unique cluster qui fonctionnera avec Spark et Hadoop.
– Analyse : avec une vision rétroactive des données seulement, la capacité de prévision des entreprises est réduite, limitant ainsi la valeur stratégique du Big Data et les empêchant d’anticiper efficacement les tendances du marché et les besoins des clients. Spark aide à traiter des milliards d’événements par jour à un rythme analytique de 40 millisecondes par événement.

Nous sommes convaincus qu’il est crucial de mener des efforts cohérents d’intégration de Spark avec les éléments de sécurité d’une plateforme Hadoop plus large, pour être certains que Spark pourra fonctionner sur un cluster Hadoop sécurisé. Il existe aussi un travail au sein de la communauté pour faire en sorte que Spark fonctionne sur un cluster compatible avec le protocole Kerberos afin que seuls les utilisateurs authentifiés puissent soumettre des tâches Spark. Les avantages potentiels sont énormes pour les entreprises !