Más contenido relacionado
La actualidad más candente (20)
Similar a Aqui hadoop draft (20)
Aqui hadoop draft
- 1. INTRODUCTION
-----------La première technologie qui vient à l esprit lorsque l on évoque
aujourd hui le sujet du Big Data est Hadoop est le framework analytique Java
développé au sein de la fondation Apache. Populaire, Hadoop reste toutefois un
mystère pour nombre d utilisateurs. Pour mieux comprendre les fondements
technologiques d Hadoop et les différentes briques qui le composent, LeMagIT
s est plongé dans l histoire et l architecture du framework.
Doug Cutting, Cloudera
Doug Cutting, créateur d Hadoop, avec l éléphant qui servait de peluche
à son fils, et est aujourd'hui la mascotte du framework Java
Hadoop trouve ses racines dans les technologies propriétaires d analyse de
données de Google. En 2004, le moteur de recherche a publié un article de
recherche présentant son algorithme MapReduce, conçu pour réaliser des
opérations analytiques à grande échelle sur un grand cluster de serveurs, et
sur son système de fichier en cluster, Google Filesystem (GFS). Doug Cutting,
qui travaillait alors sur le développement du moteur de recherche libre Apache
Lucene et butait sur les mêmes problèmes de volumétrie de données qu avait
rencontré Google, s est alors emparé des concepts décrits dans l article
du géant de la recherche et a décidé de répliquer en open source les outils
développés par Google pour ses besoins. Employé chez Yahoo, il s est alors
lancé dans le développement de ce qui est aujourd hui le projet Apache
Hadoop   pour la petite histoire, Hadoop est le nom de l éléphant qui
servait de doudou à son jeune fils.
Hadoop : un framework modulaire
Hadoop n a pas été conçu pour traiter de grandes quantités de données
structurées à grande vitesse. Cette mission reste largement l apanage des
grands systèmes de Datawarehouse et de datamart reposant sur des SGBD
traditionnelles et faisant usage de SQL comme langage de requête. La
spécialité d Hadoop, ce serait plutôt le traitement à très grande
échelle de grands volumes de données non structurées tels que des documents
textuels, des images, des fichiers audio… même s il est aussi possible de
traiter des données semi-structurées ou structurées avec Hadoop.
HDFS : le système de gestion de fichier en cluster au cŀur d Hadoop
Au cŀur du framework open source se trouve avant tout un système de fichiers
en cluster, baptisé HDFS (Hadoop Distributed Filesystem). HDFS a été conçu
pour stocker de très gros volumes de données sur un grand nombre de machines
équipées de disques durs banalisés.
Le filesystem HDFS est conçu pour assurer la sécurité des données en
répliquant de multiples fois l ensemble des données écrites sur le cluster.
- 2. Par défaut, chaque donnée est écrite sur trois nŀuds différents. Il ne
s agit pas du plus élégant des mécanismes de redondance, ni du plus
efficace, mais étant donné que l on s appuie sur des disques durs SATA
économiques, un cluster HDFS a le bénéfice d offrir une solution de
stockage très économique par rapport à celui des baies de stockage
traditionnelles. En l état, HDFS est optimisé pour maximiser les débits de
données et non pas pour les opérations transactionnelles aléatoires. La
taille d un bloc de données est ainsi de 64 Mo dans HDFS contre 512 octets Ã
4 Ko dans la plupart des systèmes de fichiers traditionnels. Cette taille de
bloc s explique par le fait que Hadoop doit analyser de grandes quantités de
données en local.
Avec la version 2.0 d Hadoop, la principale faiblesse d HDFS a été
levée : jusqu alors la gestion des métadonnées associées aux fichiers
étaient la mission d un unique « name node » ; ce qui constituait un point
de faille unique. Depuis la version 2.0 et l arrivée de la fonction HDFS High
Availability, le "name node" est répliqué en mode actif/passif, ce qui offre
une tolérance aux pannes. Un autre « défaut » d HDFS est que le système
n est pas conforme au standard POSIX et que certaines commandes familières
sur un filesystem traditionnel ne sont pas disponibles.
Il est à noter que si HDFS est le système de fichiers par défaut d Hadoop,
le framework peut aussi être déployé sur des systèmes tiers, souvent grâce
à des couches de compatibilité. MapR, l un des pionniers d Hadoop, a ainsi
développé son propre système de gestion de fichiers qui règle le problème
de fragilité lié aux "name nodes" d HDFS (en distribuant les informations de
métadonnées sur les nŀuds de données) et qui ajoute aussi des fonctions
avancées comme les snapshots, la réplication ou le clonage. Plusieurs
constructeurs de baies de stockage comme EMC, HP ou IBM ont aussi développé
des couches de compatibilité HDFS au dessus de certaines de leurs baies ; ce
qui leur permet de stocker les données d un cluster Hadoop.
MapReduce : distribuer le traitement des données entre les nŀuds
Le second composant majeur d Hadoop est MapReduce, qui gère la répartition
et l exécution des requêtes sur les données stockées par le cluster. Le
framework MapReduce est conçu pour traiter des problèmes parallèlisables Ã
très grande échelle en s appuyant sur un très grand nombre de nŀuds.
L objectif de MapReduce et de son mécanisme avancé de distribution de tÃ
¢ches est de tirer parti de la localité entre données et traitements sur le
même nŀud de façon à minimiser l impact des transferts de données entre
les nŀuds du cluster sur la performance.
MapReduce est un processus en plusieurs étapes. Dans la phase « Map », le
nŀud maitre divise le problème posé en sous-problèmes et les distribue entre
nÅ€uds de traitement. Ces nÅ€uds peuvent en cascade distribuer à nouveau les tÃ
¢ches qui leur ont été assignées. Les réponses sont ensuite remontées de
nÅ€uds en nÅ€uds jusqu au nÅ€ud maitre ayant assigné les travaux Ã
l origine.
C est alors que s opère l étape "Reduce" : le nŀud maitre collationne
les réponses remontant des nŀuds de traitement et les combine afin de fournir
la réponse à la question posée à l origine. Il est à noter que les
traitements Mapreduce s opèrent sur des données structurées sous la forme
(clé, valeur) et que des mécanismes d optimisation assurent que les
traitements sont distribués de telle sorte qu ils s opèrent au plus proche
des données (c est-à -dire idéalement sur les neuds qui hébergent les
données concernées).
De nouveaux outils et langages pour faciliter les requêtes sur Hadoop
- 3. L'architecture de la distribution Hadoop d'Hortonworks
Les API clés de MapReduce sont accessibles en Java, un langage certes populaire
mais qui requiert des compétences bien plus pointues que la maîtrise d un
langage d interrogation comme SQL. Plusieurs langages ont donc émergé pour
tenter de simplifier le travail des utilisateurs d Hadoop, dont Pig et Hive.
Né chez Yahoo, Pig est conçu pour traiter toute forme de données. Le langage
de Pig est PigLatin, complété par un runtime destiné à exécuter les
programmes rédigés en PigLatin. PigLatin a une sémantique assez simple. Il
permet de charger des données, puis de les manipuler (appliquer des filtres,
des groupements, des opérations mathématiques…).
Chez Facebook, des développeurs ont quant à eux conçu Hive, pour permettre Ã
des développeurs familiers du langage SQL de manipuler des données dans
Hadoop. Hive dispose d un langage baptisé HQL (Hive Query Langage) dont la
syntaxe est similaire à celle de SQL. Le service Hive découpe les requêtes en
jobs MapReduce afin de les exécuter sur le cluster.
Au fil des ans, Hadoop a continué à s enrichir de nouvelles applications,
comme la base de données Hbase, qui fournit des services similaires au service
BigTable de Google. Hbase est une base de données en colonnes (dans la mouvance
NoSQL) qui s appuie sur le système de gestion de fichiers en cluster HDFS
pour le stockage de ses données. Hbase est notamment utile pour ceux qui ont
besoin d accès aléatoires en lecture/écriture à de grands volumes de
données. La base intègre des fonctions de compression et de traitement « inmemory ».
Parmi les autres composants connus, on peut aussi citer la technologie
d apprentissage Apache Mahout, ainsi que la technologie d administration de
cluster Zookeeper. Zookeeper est lui-même un service distribué qui permet de
coordonner l ensemble des processus distribués sur le cluster, mais aussi de
gérer les configurations de ses différents éléments.
Un écosystème qui ne cesse de s enrichir
Signalons pour terminer que le périmètre d Hadoop continue de s élargir,
les différents développeurs de distributions Hadoop ajoutant progressivement
de nouveaux composants, outils ou langages afin d enrichir les composants de
base du framework. Cloudera a ainsi récemment publié Impala, sa technologie de
query SQL massivement parallèle, pour le traitement en temps réel de données
stockées dans Hbase ou dans HDFS. Dans le cadre de son projet Hawq, Pivotal a,
quant à lui, porté sa base de données massivement parallèle Greenplum sur
HDFS et étendu sa technologie de query aux données non structurées et semistructurées stockées sur HDFS. Et c est sans compter sur les multiples
intégrations réalisées par des acteurs des bases de données traditionnelles
et de l analytique, comme Teradata, Oracle ou Microsoft… Un signe évident
du dynamisme de l écosystème Hadoop, mais aussi de sa relative jeunesse.
SOLUTION COMMERCIALE
-------------------L'année 2011 a vu l'émergence d'un nouveau champion dans le monde de la BI,
Hadoop, un framework distribué d'analyse de données né chez Yahoo, mais
inspiré de concepts théorisés par Google. Hadoop est aujourd'hui utilisé par
de nombreux géants de l'internet pour leurs besoins massifs d'analyse de
données (les différents clusters Hadoop de Yahoo utilisent près de 10 000
serveurs, et FaceBook en fait aussi un usage massif), mais il commence aussi Ã
devenir populaire dans le monde des entreprises dans des secteurs comme la
distribution, les banques, les télécoms…
Venu du monde libre, Hadoop s'appuie sur des architectures distribuées typiques
des environnements HPC ou cloud et fonctionne sur des clusters massifs de
- 4. serveurs x86 qui fournissent à la fois des capacités de calcul et de stockage.
La couche stockage repose par exemple sur un système de fichier en cluster
baptisé HDFS qui a la charge de gérer les teraoctets ou petaoctets de données
réparties entre les nŀuds. La partie calcul est confiée à des composants
comme MapReduce, un framework de programmation distribué. Encore relativement
jeune, Hadoop fait l'objet de développements intenses, portés notamment par
trois éditeurs qui se sont donnés pour mission de rendre la technologie
"consommable" par de grandes entreprises. Ces trois sociétés sont à Hadoop ce
que Red Hat, Suse et Ubuntu sont à Linux. Tout en contribuant massivement aux
évolutions du code du framework libre, elles axent leurs efforts sur le
packaging de la technologie - en produisant des distributions Hadoop "prêtes Ã
l'emploi" -, et se distinguent les unes des autres en greffant sur le cŀur open
source des briques plus ou moins propriétaires afin de simplifier
l'administration du framework ou de doper ses performances.
Cloudera : la première distribution commerciale du marché
La plus connue des distributions Hadoop est sans doute Cloudera qui a été la
première à faire parler d'elle en concoctant une distribution entreprise du
framework. Basé dans la Silicon Valley et à San Francisco, Cloudera compte
parmi ses dirigeants des pionniers de Hadoop chez Yahoo. La firme s'est
récemment illustrée en signant un accord avec Oracle pour la fourniture de sa
distribution dans l'appliance analytique exalytics du constructeur. Cloudera
avait précédemment signé des accords pour la fourniture de sa distribution Ã
Dell et NetApp. Selon Cloudera, l'adoption rapide Hadoop s'explique par ses
attributs uniques par rapport aux technologies traditionnelles d'analyse de
données.
Comme l'explique Charles Zedlewski, le Vice-président produits de la firme,
"mon point de vue est que pour qu'une technologie radicalement nouvelle soit
adoptée par les entreprises elle doit être 10 fois meilleures que les
technologies existantes. Si elle n'est que deux fois meilleure, les entreprises
préfèrent conserver les technologies qu'elles connaissent et qu'elles
maîtrisent. (…) Hadoop brille car il est dix fois plus évolutif ("scalable")
que les technologies en place, dix fois plus économique et surtout dix fois
plus flexible. Il est bien sûr plus mauvais que les technologies en place sur
bien des domaines. Il est moins mature, peu d'utilisateurs sont formés à son
utilisation et a un écosystème d'applications plus limité. Mais pour certains
cas d'usage, Hadoop n'a pas de concurrent ce qui explique son adoption rapide".
Quelles caractéristiques font d'Hadoop un tel succès ? "Historiquement pour
obtenir de meilleurs résultats à partir d'un jeu de données, les entreprises
devaient utiliser des algorithmes plus sophistiqués, ce qui veut dire plus de
développement et une armada de docteurs en statistiques et en mathématiques
pour imaginer ces algorithmes. Cela prend du temps et est coûteux" explique
Charles Zedlewski. Hadoop aborde le problème différemment. Avec Hadoop, au
lieu d'attaquer le problème avec plus d'ingénieurs, vous augmentez tout
simplement la taille de votre jeu de données. La tendance actuelle dans le
monde du traitement de données et de l'apprentissage est que dans la plupart
des cas, l'utilisation de jeux de données plus volumineux produit de meilleurs
résultats que l'usage d'algorithmes plus sophistiqués."
C'est particulièrement vrai pour des applications comme l'analyse de risques,
l'analyse de menaces, l'analyse de fraudes ou de crédit. De plus pour ce type
d'application la flexibilité d'Hadoop et reine. Il n'est en effet pas
nécessaire que les données utilisées se conforment à des schémas
prédéfinis, contrairement aux datawarehouse traditionnels.
Cloudera s'appuie sur un modèle 100 % open source et tire l'essentiel de ses
revenus de ses activités de conseil, d'intégration et de support.
MapR : Un modèle propriétaire et l'aval d'EMC
- 5. MapR, basé à San Jose, a fait un choix radicalement différent. La société,
fondée il y a un peu plus de trois ans, a fait le choix de combiner un ensemble
de technologies propriétaires avec certaines portions du framework libre Hadoop
pour produire sa distribution. L'éditeur a ainsi développé sa propre couche
de stockage (baptisée MapR Lockless Storage Services) en lieu et place du
système de fichiers HDFS, habituellement utilisé par les distributions Hadoop
- c'est d'ailleurs cette caractéristique qui a notamment séduit EMC qui a
conclu un accord de revente stratégique avec MapR.
Ce filesystem en cluster, qui maintient une compatibilité totale avec les API
d'HDFS, permet à MapR de revendiquer des caractéristiques uniques tels qu'une
plus grande résilience (la fonction de "namenode" est distribuée entre les
nœuds), le support des snapshot, du mirroring et du partitionnement, mais aussi
un accès natif en mode NFS au filesystem. Une autre nouveauté est l'aptitude
à verser des données en continu dans le file system, contrairement à HDFS qui
fonctionne en mode append (ou ajout). On peut ainsi envisager de lancer des
traitements en quasi-temps réel au fur et à mesure de l'ingestion de nouvelles
données.
MapR revendique enfin des performances très supérieures à celles de ses
concurrents. La distribution de l'éditeur est proposée dans une édition
gratuite mais "limitée" - certaines fonctions de sont pas accessibles)
baptisée M3. La déclinaison entreprise, qui inclut l'ensemble des fonctions
ainsi que le support est quant à elle baptisée M5 (la fascination des
fondateurs pour l'ingénierie d'une certaine marque automobile bavaroise ne
serait pas étrangère au choix de ces appellationsⓦ).
HortonWorks : né de la division Hadoop de Yahoo
Enfin, le dernier arrivé sur la scène Hadoop, HortonWorks, n'est rien de moins
qu'une "spin-off" de la division Hadoop de Yahoo, où est né Hadoop. Comme
Cloudera, HortonWorks s'appuie sur un modèle 100 % open source pour sa
distribution. Arrivé en retard sur le marché commercial, HortonWorks ne
devrait finalement livrer sa première distribution, baptisée HDP1 qu'au
premier trimestre 2012. HDP1 s'appuiera sur le cœur Hadoop 0.20.205 (ui est la
base de la première version officielle du framework).
Mais la firme entend se rattraper rapidement et prévoit une version 2,
baptisée HDP2 pour le troisième trimestre. Cette version de la distribution
s'appuiera sur Hadoop 0.23. Pour l'instant encore en version Alpha, cette
version d'Hadoop devrait probablement servir de base à la prochaine
génération du framework. Elle apportera par exemple des capacités de
fédération de clusters HDFS (par exemple pour fédérer des clusters utilisant
des nœuds différents). Elle devrait aussi éliminer certaines des restrictions
actuelles en matière de name node d'HDFS. L'autre nouveauté importante sera
l'arrivée d'une nouvelle mouture de MapReduce (nom de code YARN), qui séparera
la gestion de ressources de la gestion des jobs (job scheduling). Cette mouture
devrait notamment se traduire par des gains importants en matière de
performances, avec des gains moyens de 100% sur l'ensemble des tâches.
Un écosystème en pleine explosion
Si l'agitation est palpable dans le monde des distributions Hadoop, c'est aussi
le cas pour l'écosystème d'éditeurs autour de la distribution. Tous les
géants de l'industrie ont ainsi annoncé un support d'Hadoop. On le notait
précedemment, Dell, Netapp et Oracle ont signé avec Cloudera tandis qu'EMC
optait pour MapR. Microsoft, de son côté prévoit d'ajouter le support
d'Hadoop à Azure au premier semestre dans le cadre d'une collaboration avec
HortonWorks. Mais le plus étonnant est sans doute l'enthousiasme suscité par
la technologie chez les géants du décisionnel et des outils analytiques comme
GreenPlum, Teradata, Informatica, Vertica (HP) et chez les spécialistes du
décisionnel libre comme Talend, Jaspersoft ou Pentaho. Autant de fournisseurs
qui en interfaçant leurs outils à Hadoop contribuent à une maturation rapide
- 6. de l'écosystème d'outils autour de la distribution.
DEFINITIONS
---------Datawarehouse
Le lieu de stockage intermédiaire des différentes données en vue de la
constitution du système d'information décisionnel est appelé entrepôt de
données (en anglais datawarehouse).
Le datawarehouse est ainsi le lieu unique de consolidation de l'ensemble des
données de l'entreprises. Le créateur du concept de DataWareHouse, Bill Inmon,
le définit comme suit :
« Un datawarehouse est une collection de données thématiques,
intégrées, non volatiles et historisées pour la prise de décisions. »
Ses principales caractéristiques sont donc les suivantes :
Le datawarehouse est orienté sujets, cela signifie que les données collectées
doivent être orientées « métier » et donc triées par thème
Le datawarehouse est composé de données intégrées, c'est-à -dire qu'un «
nettoyage » préalable des données est nécessaire dans un souci de
rationnalisation et de normalisation
Les données du datawarehouse sont non volatiles ce qui signifie qu'une donnée
entrée dans l'entrepôt l'est pour de bon et n'a pas vocation à être
supprimée
Les données du datawarehouse doivent être historisées, donc datées
Datamart
Le terme Datamart (littéralement magasin de données) désigne un sous-ensemble
du datawarehouse contenant les données du datawarehouse pour un secteur
particulier de l'entreprise (département, direction, service, gamme de produit,
etc.). On parle ainsi par exemple de DataMart Marketing, DataMart
Commercial, ...
- 7. de l'écosystème d'outils autour de la distribution.
DEFINITIONS
---------Datawarehouse
Le lieu de stockage intermédiaire des différentes données en vue de la
constitution du système d'information décisionnel est appelé entrepôt de
données (en anglais datawarehouse).
Le datawarehouse est ainsi le lieu unique de consolidation de l'ensemble des
données de l'entreprises. Le créateur du concept de DataWareHouse, Bill Inmon,
le définit comme suit :
« Un datawarehouse est une collection de données thématiques,
intégrées, non volatiles et historisées pour la prise de décisions. »
Ses principales caractéristiques sont donc les suivantes :
Le datawarehouse est orienté sujets, cela signifie que les données collectées
doivent être orientées « métier » et donc triées par thème
Le datawarehouse est composé de données intégrées, c'est-à -dire qu'un «
nettoyage » préalable des données est nécessaire dans un souci de
rationnalisation et de normalisation
Les données du datawarehouse sont non volatiles ce qui signifie qu'une donnée
entrée dans l'entrepôt l'est pour de bon et n'a pas vocation à être
supprimée
Les données du datawarehouse doivent être historisées, donc datées
Datamart
Le terme Datamart (littéralement magasin de données) désigne un sous-ensemble
du datawarehouse contenant les données du datawarehouse pour un secteur
particulier de l'entreprise (département, direction, service, gamme de produit,
etc.). On parle ainsi par exemple de DataMart Marketing, DataMart
Commercial, ...