Hadoop Summit 2013 à Amsterdam - CR de deux jours de conférences techniques
Présentation
Le Hadoop Summit arrive en Europe, et pour sa première édition Européenne, c’est la ville d’Amsterdam qui a été choisie.
Beaucoup d'acteurs importants du monde Hadoop étaient présents : LinkedIn, HP, RedHat, Yahoo, HortonWorks, Cloudera, Microsoft, …
L’article qui suit est un retour sur ce qui nous avons de retenu d’un point de vue architecture et technique de ces deux jours riches en conférences.
Amener Hadoop dans l’entreprise
L’infrastructure
La question de la virtualisation a été abordée à plusieurs reprises dans les conférences.
Ce que nous en retenons est que la virtualisation d’Hadoop est possible aujourd’hui avec un impact minime sur les performances si cette dernière est bien faîte et que les DataNodes et le stockage restent sur des noeuds physiques.
LinkedIn a présenté les résultats de leurs benchmarks Hadoop, sujet toujours très difficile à traiter, avec des conclusions intéressantes sur le dimensionnement des machines, jugés trop coûteuses et suréquipées aujourd’hui.
HBase
Les présentations sur HBase se sont concentrées sur les bonnes pratiques permettant d’optimiser les performances de ce dernier, surtout au niveau des écritures et du Write Ahead Log, goulet d’étranglement numéro 1 aujourd’hui. Fait intéressant, toutes ces recommandations ont débouché sur des règles de calcul pour dimensionner son cluster HBase.
Au delà des bonnes pratiques, les futures évolutions de HBase auront deux axes principaux :
l’amélioration des performances des I/O
la réduction du temps de récupération après un crash
Parmi les améliorations notables, on notera le support des snapshots, des locks, le passage à protobuf ou encore le support de plusieurs Write Ahead Log (WAL) par Region Server.
Les outils d'administration et de supervision
Superviser, administrer, déployer un cluster Hadoop est un sujet complexe. HortonWorks a présenté Ambari, concurrent du Cloudera Manager, de Chef ou encore de Puppet.
Ambari a une approche intéressante dans la mesure où il s’agit d’un projet d’incubation Apache dont l’objectif est d’être extensible via des API internet mais aussi utilisable à distance via des API REST.
Plus qu’une interface web ou qu’un simple gestionnaire de configuration, Ambari se veut plus comme un centre de contrôle de vos clusters Hadoop.
D’ailleurs, il fournit également des vues agrégées des jobs ou des DAG de jobs générés par des requêtes Hive ou Pig, simplifiant ainsi leur analyse.
Cependant, le projet en est encore au stade d’incubation, ce n’est donc pas un produit stable et utilisable en production bien que des utilisations en préproduction existent sur des clusters allant jusqu’à 500 noeuds.
Améliorer les performances des outils d’analyse existant
Un nouveau format de stockage pour Hive
On croyait Hive condamné à de mauvaises performances, à en croire ce que nous avons pu voir lors du Hadoop Summit ce n’est pas le cas !
Il n'y a pas si longtemps, nous entendions parler de Parquet,un format de fichier poussé par Cloudera. Lors de ce Summit, c'était Optimized Row Columnar ou ORC, poussé par HortonWorks.
ORC est un format de fichier optimisé pour Hive. Il propose notamment :
un index permettant de rapidement savoir si le fichier contient des données utiles à la requête ou pas
des encodeurs par type de donnée stockée
un précalcul de statistiques du contenu d’un fichier (min, max, count, sum)
A en croire les benchmarks, ORC serait beaucoup plus efficient en terme d’espace de stockage utilisé et permettrait d’accelérer les requêtes Hive.
D'autre part, ORC est un élément dans un ensemble plus large appelé l'initiative Stinger. Cette initiative est un effort collectif de plusieurs acteurs utilisant Hive dans leurs systèmes et voulant le rendre 100x plus rapide.
MapReduce revu et optimisé sur YARN
D’autre part, YARN, la nouvelle architecture d’Hadoop 2.0 commence à produire ses effets.
Tez par exemple, est une implémentation de MapReduce tirant parti de l’architecture de YARN. Plus précisément, il s’agit d’un ApplicationMaster au même titre que MapReduce.
L’objectif de Tez, qui est un autre élément de l'initiative Stinger, est de permettre à Hive de supporter aussi bien une utilisation en batch qu’interactive. Par ailleurs, Cascading et Pig évoluent également vers Tez.
Comment être plus rapide tout en restant sur du traitement MapReduce ? Deux axes ont été présentés :
optimisation de DAG de jobs sous la forme d’un seul job et élimination des maps inutiles
traitement en mémoire sans passer par HDFS lorsque cela est possible
Le projet est actuellement en phase de vote pour être un projet d’incubation Apache. Il ne s’agit donc pas d’une version prête pour la production mais l’évolution est très intéressante et laisse entrevoir de nouveaux usages pour Hive ou encore Pig.
Conclusion
Au delà de HBase et de Hive qui continuent de s’améliorer au fil des versions apparaissent de nouveaux outils, certains tirant parti de la nouvelle architecture YARN introduite dans Hadoop 2.0.
Beaucoup d'innovations sont encore à venir et le mouvement engagé oriente clairement Hadoop vers une utilisation interactive voire temps réel et une industrialisation qui passera vraissemblablement par une virtualisation au moins partielle des clusters.
Liens
Présentation de LinkedIn : http://fr.slideshare.net/allenwittenauer/2012-lihadoopperf
Dimensionnement de HBase : http://archive.apachecon.com/eu2012/presentations/06-Tuesday/L2L-Big_Data/aceu-2012-HBase-sizing-and-schema-design.pdf
Tez : http://hortonworks.com/blog/introducing-tez-faster-hadoop-processing
Parquet : http://blog.cloudera.com/blog/2013/03/introducing-parquet-columnar-storage-for-apache-hadoop