Quoi de neuf sur Azure HDInsight ? – 1ère partie
Qui dit Cloud, dit généralement évolutions en continu pour apporter une proposition toujours plus pertinente. Comme Apache Hadoop en tant que service, Azure HDInsight (Hadoop) n’échappe fort heureusement pas à cette dynamique.
Pour autant, nous n’avons pas échangé depuis un certain temps :( et il est donc grand temps de revenir notamment sur les annonces faites lors de la récente conférence Strata + Hadoop World 2015 vis-à-vis du service Azure HDInsight à l’image de la version préliminaire publique d’Azure HDInsight s’exécutant sous Linux ou encore de la disponibilité d’Apache Storm pour Azure HDInsight mais aussi sur certaines évolutions introduites précédemment comme vous allez le voir dans cette première partie du billet.
Un bref rappel sur Azure HDInsight
Comme nous avons déjà pu l’illustrer au travers de nombreux billet sur ce blog, Azure HDInsight est un service Cloud entièrement géré qui déploie et approvisionne des clusters Apache Hadoop dans le Cloud, en fournissant une infrastructure logicielle conçue pour gérer et analyser une quantité quelconque de données, et passer de plusieurs Téraoctets (To) à plusieurs Pétaoctets (Po) à la demande, et générer des rapports à leur sujet.
Les sujets ne manquent pas à l’image des scénarios du quotidien illustrés ici, sujets qui permettent d’illustrer s’il en était besoin des usages et apports d’Hadoop dans votre environnement pour résoudre certains défis auxquels vous pouvez être confrontés aujourd'hui avec de larges volumes de données. A ce propos, vous pouvez également bénéficier de nombreuses sources de données dans le domaine public comme celles listées ici.
Avec une offre gérée "Hadoop-as-a-service", vous pouvez démarrer n'importe quel nombre de nœuds à tout moment et seul le calcul et le stockage que vous utilisez réellement est facturé. Azure HDInsight vous apporte la puissance de cet écosystème open source à destination des mégadonnées ou Big Data dans l’environnement Azure d'une manière intégrée, gérée et complètement supportée.
Le livre électronique Présentation de Hadoop HDInsight (en anglais) vous propose un aperçu de ce service.
Dans la pratique, Azure HDInsight prend en charge plusieurs versions de cluster Apache Hadoop qui peuvent être déployées à tout moment. Le choix d'une version approvisionne une version spécifique de la distribution de la plateforme de données Hortonworks (Hortonworks Data Platform ou HDP) et un ensemble de composants qui sont contenus dans cette distribution, avec bien sûr non seulement :
- Hadoop Core : mode de stockage de données fiable grâce au système HDFS (Hadoop Distributed File System).
- Map/Reduce et YARN : modèle de programmation simple destiné à traiter et à analyser, en parallèle, les données stockées dans ce système distribué, avec la gestion associée des ressources.
Mais aussi :
- Apache Ambari : approvisionnement, gestion et surveillance des clusters.
- Apache Avro (Bibliothèque Microsoft .NET pour Avro) : sérialisation des données pour l'environnement Microsoft .NET.
- Apache HBase : base de données NoSQL (“not only Structured Query Language”) pour les très grandes tables en disponibilité générale depuis le 21 août 2014 dernier comme indiqué ici.
- Apache Hive : requêtes similaires à SQL.
- Apache Mahout : Machine Learning (apprentissage automatique).
- Apache Oozie : gestion de workflow.
- Apache Pig : création de scripts simplifiée pour les transformations Map/Reduce.
- Apache Sqoop : importation et exportation de données.
- Apache Storm : traitement en (quasi) temps réel de flux de données rapides et volumineux.
- Apache Zookeeper : coordination des processus dans les systèmes distribués.
Vous trouverez ici un tableau répertoriant les versions de composants associées à chaque version de cluster HDInsight. La version de cluster par défaut actuellement utilisée par Azure HDInsight est la version 3.1, cette dernière est basée sur HDP 2.1.7. Cette version d'Azure HDInsight s’inscrit dans le travail de Microsoft avec la communauté open source, pour p. ex. augmenter la performance des requêtes Hadoop, faisant équipe avec Hortonworks et la communauté open source,
Les présentations étant ainsi faites s’il en était besoin, revenons sur les évolutions majeures introduites vis-à-vis d’Azure HDInsight et commençons notre liste (des « courses ») par la personnalisation des clusters Hadoop.
Personnalisation des clusters
Comme nous venons de le souligner ne serait-ce qu’au travers de la liste des composants contenus dans une distribution HDP, l’écosystème Hadoop est un portefeuille de projets open source qui évoluent rapidement.
Pour vous offrir la meilleure flexibilité possible dans ce contexte, Azure HDInsight vous permet de déployer également des projets Hadoop arbitraires via des scripts personnalisés, projets qu’il n’était pas possible de déployer auparavant. Cela inclut des projets bien connus tels qu’Apache Spark, R, Apache Giraph et Apache Solr comme décrits respectivement ici, ici, ici et ici.
Apache Storm pour HDInsight
Apache Storm précédemment mentionné dans la liste des composants disponibles est un système distribué d'analyse de flux à tolérance de pannes qui permet de traiter des données (comme en particulier des évènements) à grande échelle comme celles générées par les appareils et les capteurs et ce, au fur et à mesure de leurs collecte et ingestion.
Les solutions Storm peuvent également permettre un traitement garanti des données, ainsi que la possibilité de relire les données dont le traitement a échoué une première fois.
HDInsight inclut Apache Storm en disponibilité générale. A l’aide de Storm pour Azure HDInsight, vous pouvez ainsi traiter, déployer et gérer des applications pour des analyses (quasi) temps réel comme dans les scénarii et cas d'usage relatifs à l'Internet des Objets (IoT) en quelques minutes avec juste quelques clics ; ce qui ouvre de nouvelles portes, comme notamment celles de la maintenance prédictive avec les appareils connectés, de nouveaux modèles commerciaux en passant d’une offre produit vers des contrats de niveaux de service (SLA), etc.
Pour plus détails, vous pouvez vous référer à l’article Prise en main de Storm avec HDInsight (Hadoop).
Développement d’applications intégrées avec Visual Studio
Toujours au registre des évolutions, l'outillage pour HDInsight dans Visual Studio se bonifie avec la dernière version du SDK Azure 2.5 (téléchargeable ici selon la version de Visual Studio : Visual Studio 2012 | Visual Studio 2013 | Visual Studio 2015 version préliminaire).
Cette extension pour Visual Studio vous permet de visualiser vos clusters Hadoop et le stockage associé depuis des outils familiers.
Ainsi, l’intégration des différents objets HDInsight dans l'Explorateur de serveurs amène vos actifs en matière de Big Data sur le même plan et la même page que les autres services Cloud dans Azure au sein de l’environnement de développement intégré (IDE). Cela autorise dès lors p. ex. une exploration rapide et simple des clusters, des tables Hive et de leurs schémas, avec l’interrogation des 100 premières lignes d'une table ; ce qui vous aide à comprendre rapidement la forme des données sur lesquelles vous travaillez dans Visual Studio :-)
Vous pouvez maintenant également créer et soumettre des requêtes ad hoc Hive pour HDInsight directement vis-à-vis d’un cluster depuis Visual Studio, ou encore créer une application Hive qui se trouve gérée comme n'importe quel autre projet Visual Studio. Une brève présentation vidéo des possibilités vous est proposée ici.
Intégration avec les sites web Azure
Comme le titre de la section le suggère, une intégration d’HDInsight vous est proposé avec vos sites web Azure, un autre service cloud intégralement géré de la plateforme, qui vous permet de concevoir, de déployer et de développer des applications web d'entreprise en quelques secondes.
De tels sites génèrent les journaux web qui enregistrent toutes les transactions HTTP avec une journalisation détaillée des erreurs. Ces journaux sont stockés dans un stockage Azure au sein d’objets blob Azure sous forme de fichiers semi-structurés. De tels fichiers semi-structurés sont traditionnellement plus difficiles à analyser, à moins qu'ils ne soient extraits et transformés en une base de données/table relationnelle.
Hadoop a été justement développé pour de tels cas d’usage et Azure HDInsight voit sa console de requêtes mise à jour pour vous proposer une galerie de modèles à parcourir et vous guider dans la réalisation d'une tâche qui est ici l’analyse de journaux capturés vis-à-vis de vos sites web Azure.
Pour bénéficier de cette intégration au sein de votre abonnement, vous devez créer un cluster HDInsight depuis le portail de gestion Azure et sélectionner Query Console pour voir les solutions ainsi disponibles.
Ceci conclut cette première partie que nous avons souhaitée un peu plus fonctionnelle. Nous aborderons les évolutions plus orientées machine virtuelle (VM) et cluster dans une seconde partie.