Twitter Storm et Apache Spark sont des solutions Open Source de traitement de flux distribués en temps réel. Storm dispose depuis peu d'un port pour Yarn développé par Yahoo! : Storm-Yarn.
Ainsi, si votre problème est de construire des topologies de traitement (calcul d'agrégats, prévisions en R ou autre, …) sur de grands volumes de flux de données en temps réel, il devient possible de le faire sans avoir besoin de monter un cluster à part, dédié à Storm ou sans générer des jobs MapReduce.
Dans un précédent article, nous vous parlions des bases graphes et des solutions de calcul sur ces dernières, Apache Giraph est une solution Open Source de calcul distribué sur des graphes. Facebook s'en sert pour l'analyse de leur graphe social.
Ainsi, vous pouvez maintenant reposer sur les ressources de votre cluster Hadoop pour ce type d'analyses.
Dans YARN, le ResourceManager et le NodeManager sont dédiés à la gestion des ressources du cluster et à leur ordonnancement. Par conséquent et contrairement à ce que vous connaissiez en Hadoop 1, votre cluster ne gère plus de slots mapper et de slots reducer. A la place, une abstraction plus générique, le container fait son entrée. Celle ci vise à améliorer le contrôle des ressources allouées à chaque unité de traitement, que ce soit du Map, du Reduce ou autre chose.
Quelle différence concrètement ?
A la différence de Hadoop 1, le container se définit selon plusieurs axes :
L'API permettant de développer un framework de calcul distribué sur YARN est un peu complexe. Des librairies ont été mises au point afin de simplifier l'intégration de nouveaux frameworks de calculs distribué dans YARN.
Ainsi, si vous avez des besoins non couverts de manière satisfaisante par les solutions existantes ou que le coût d'adaptation de vos codes est trop élevé, il est maintenant possible d'envisager l'ajout de son propre framework de calcul distribué à YARN.
Hadoop 2 supporte officiellement Windows Server et Windows Azure. Microsoft est d'ailleurs de plus en plus impliqué dans le développement d'Hadoop. Ainsi, si votre SI et vos compétences sont majoritairement sur Windows, le passage à Hadoop n'est plus synonyme de passage à GNU/Linux, ce qui peut être intéressant dans certains contextes.
HDFS aussi bénéficie d'un certain nombres d'améliorations, bien que certaines avaient déjà été rendues disponibles dans les différentes distributions du marché.
L'une des premières fonctionnalités de HDFS 2 est la haute disponibilité du NameNode, par ailleurs déjà répandue dans les distributions du marché.
Il est maintenant possible de créer des snapshots en lecture seule et en lecture écriture de répertoires HDFS.
Ces snapshots ont par ailleurs quelques caractéristiques importantes :
Le client HDFS en ligne de commande et l'interface web à HDFS n'étaient pas particulièrement agréables, surtout pour des non techniques.
Dorénavant, il est possible de travailler sur HDFS au travers d'un partage NFS standard. Ainsi, HDFS devient réellement un disque partagé comme un autre sur votre réseau.
Couplé au support Kerberos déjà existant dans Hadoop, il est maintenant possible de fournir des partages HDFS sur les postes de votre parc, facilitant par là même grandement son adoption.
Cependant, il faudra voir dans quelle mesure les contraintes propres à HDFS (taille des blocs, fichiers écrits une seule fois) vont impacter l'utilisation via NFS.
Avec cette nouvelle version majeure, Hadoop franchi un seuil de maturité et le rend maintenant réellement prêt pour nos DSI.
D'autre part, l'intégration de NFS, des snapshots ainsi que l'ouverture à de nouveaux frameworks de calcul distribué le positionne clairement comme la glue, le facilitateur qui facilite l'application de traitements lourds (et donc distribués) sur de gros volumes de données.