name-nodes, task-trackers & co. Une bonne partie du travail est faite pour vous, c'est assez transparent.
Possibilité 1 : Vous souhaitez un cluster Hadoop "classique" compute+storage.
Offres :
Dans ce cas, vous aurez un cluster complet, avec une certaine flexibilité, notamment pour utiliser de la donnée en provenance d'un autre stockage (AWS S3, Azure Blob Storage), ou encore instancier des noeuds de calcul (workers sans stockage).
Possibilité 2 : En allant encore plus loin dans cette approche PaaS, il devient possible de n'utiliser que certains composants particuliers de l'univers Hadoop, en étant facturé à l'usage.
Par exemple, n'utiliser que Map-Reduce sur un cluster transitoire. De 0 à des dizaines de noeuds en quelques minutes, sans persistance du stockage en HDFS. Avec l'offre AWS Elastic-Map-Reduce et leur distribution Hadoop historique ("amazon standard"), ou celle de Joyent Manta, un challenger, l'utilisation typique est le stockage de données dans un object-store (S3 ou Manta), puis l'instanciation de noeuds de traitements Map-Reduce pour un ensemble de travaux. Les données sont lues directement depuis l'object-store, ou peuvent être copiées en local (HDFS). A la fin du traitement, le résultat est renvoyé dans l'object-store et les noeuds sont supprimés. Ici vous paierez le stockage (volume et transferts) d'une part, et le traitement au temps CPU consommé de l'autre.
Autre exemple, n'utiliser qu'une fonctionnalité de requêtage SQL sur des volumes gigantesques. Google met à disposition son fameux Dremel -- que la communauté Hadoop essaie d'ailleurs de reconstruire -- dans son offre Google BigQuery. Vous pouvez injecter la donnée en flux, et en faire de l'analyse interactive. Vous paierez au stockage, et au volume manipulé dans vos analyses.
Un dernier exemple, s'orienter vers un stockage noSQL, et le manipuler par opérations Map-Reduce. Des offres comme celle d'AWS et MapR, ou encore avec celles d'InfoChimps vous permettront de construire ce type d'architecture.
En résumé :
Dans cette catégorie "Hadoop as a Service", beaucoup de flexibilité, et en fonction de vos besoins des réponses et des offres bien différentes. Les prix quant à eux sont bien difficiles à comparer (il suffit de regarder les grilles tarifaires d'AWS pour s'en convaincre). Le marché est en pleine ébullition !
Pour terminer cet aperçu des offres cloud, il faut évoquer les services d'analyse sur étagère. Vous fournissez des données, et vous pouvez consommer en retour le résultat d'algorithmes d'analyse, ou de machine learning.
En guise d'exemple : Intel cloud services fournit un moteur de recommendation personnalisée d'items, qui s'alimente des données que vous lui fournissez, à savoir les données d'appréciation de ces items par les utilisateurs (achats ou avis). Ou encore KXEN qui propose des services d'aide à la vente couplés aux applications SalesForce.
On sort toutefois du cadre de cet article, puisque la technologie Hadoop n'est plus visible pour vous. Elle est masquée derrière des APIs, et gérée intégralement par le fournisseur. Là encore, le marché est très jeune, mais déjà riche d'offres très variées.
Certaines DSI ont des contraintes d'hébergement (place disponible, coût, approvisionnement, compétences) qui ne leur permettent pas de mettre en place rapidement un lot de machines adaptées à Hadoop (commodity hardware, disques JBOD) pour construire un cluster de petite ou moyenne taille.
Dans d'autre cas, il s'agit de projets d'innovation pour lesquels on ne sait pas déterminer précisément à l'avance la taille du cluster dont on aura besoin, ni quel sera son taux d'utilisation.
Comme on a pu le voir dans cet article, créer un cluster Hadoop dans un cloud fait clairement sens, et les technologies proposées par ces fournisseurs sont crédibles et gagnent toujours plus en maturité. Soyez vigilant aux questions de durabilité des données si elles ne sont présentes que dans le cloud, et aux performances I/O des stockages cloud.
Le gain immédiat est indéniablement le temps de démarrage de votre projet. Vous pouvez commencer demain ! Il sera toujours temps de rationaliser et d'internaliser plus tard, si cela fait sens, lorsque vous aurez une meilleure idée de votre utilisation réelle d'Hadoop.
[1] Apache Wiki - Virtual Hadoop
[2] VMWare - Benefits of Virtualizing Hadoop