vendredi 23 janvier 2015

C'est Quoi Hadoop?

18:12 Posted by Unknown , , , No comments
     Le traitement de grandes masses de données impose une parallélisation des calculs pour obtenir des résultats en temps raisonnable et ce, d’autant plus, lors du traitement en temps réel d’un flux (streaming) de données. Les acteurs majeurs que sont Google, Amazon, Yahoo, Twitter... développent dans des centres de données (data centers) des architectures spécifiques pour stocker à moindre coût de grande masses de données (pages web, listes de requêtes, clients, articles à vendre, messages...) sous forme brute, sans format ni structure relationnelle. Ils alignent, dans de grands hangars, des empilements (conteneurs ou baies) de cartes mère standards de PC “bon marché” , reliées par une connexion réseau.

      Hadoop est une des solutions les plus populaires pour gérer des données et des applications sur des milliers de nœuds  en utilisant des approches distribuées. Hadoop est composé de son propre gestionnaire de fichiers (HDFS : Hadoop Distributed File System) qui gère des données sur plusieurs nœuds simultanément en permettant l’abstraction de l’architecture physique de stockage (c’est-à-dire que l’utilisateur n’a l’impression de travailler que sur un seul ordinateur alors qu’il manipule des données réparties sur plusieurs nœuds). Hadoop dispose aussi d’algorithmes permettant de manipuler et d’analyser ces données de manière parallèle, en tenant compte des contraintes spécifiques de cette infrastructure, comme par exemple MapReduce (Dean et Ghemawat ; 2004), HBase, ZooKeeper, Hive et Pig.
     Initié par Google, Hadoop est maintenant développé en version libre dans le cadre de la fondation Apache. Le stockage intègre également des propriétés de duplication des données afin d’assurer une tolérance aux pannes. Lorsqu’un traitement se distribue en étapes Map et Reduce, celui-ci devient “échelonnable” ou scalable, c’est-à-dire que son temps de calcul est, en principe, divisé par le nombre de nœuds ou serveurs qui effectuent la tâche. Hadoop est diffusé comme logiciel libre et bien qu’écrit en java, tout langage de programmation peut l’interroger et exécuter les étapes MapReduce prédéterminées.
     Comparativement à d’autres solutions de stockage plus sophistiquées : cube, SGBDR (systèmes de gestion de base de données relationnelles), disposant d’un langage (SQL) complexe de requêtes, et comparativement à d’autres architectures
informatiques parallèles dans lesquelles les divers ordinateurs ou processeurs par tagent des zones mémoires communes (mémoire partagée), Hadoop est perçu, sur le plan académique, comme une régression. Cette architecture et les fonctionnalités très restreintes de MapReduce ne peuvent rivaliser avec des programmes utilisant des langages et librairies spécifiques aux machines massivement parallèles connectant des centaines, voire milliers, de cœurs sur le même bus. Néanmoins, le poids des acteurs qui utilisent Hadoop et le bon compromis qu’il semble réaliser entre coûts matériels et performances en font un système dominant pour les applications commerciales qui en découlent : les internautes sont des prospects à qui sont présentés des espaces publicitaires ciblés et vendus en temps réel aux annonceurs dans un système d’enchères automatiques. 
     Hormis les applications du e-commerce qui dépendent du choix préalable, souvent Hadoop, MongoDB..., de l’architecture choisie pour gérer les données, il est légitime de s’interroger sur le bon choix d’architecture (SGBD classique ou non) de stockage et de manipulation des données en fonction des objectifs à réaliser. Ce sera notamment le cas dans bien d’autres secteurs : industrie (maintenance préventive en aéronautique, prospection pétrolière, usages de pneumatiques...), transports, santé (épidémiologie), climat, énergie (EDF, CEA...)... concernés par le stockage et le traitement de données massives.


Référence
Statistique et Big Data Analytics
Philippe Besse∗  Nathalie Villa-Vialaneix
 

Big Data: Environnement informatique

17:46 Posted by Unknown , , No comments
Le contexte général du big data est celui de la distribution des ressources informatiques. On parle de système distribué dans le cadre où une collection de postes (ordinateurs ou nœuds) autonomes sont connectés par un réseau. Ce type de fonctionnement permet de partager les capacités de chacun des postes, capacités
qui se déclinent en :


– partage des ressources de calcul ou
calcul distribué, partagé ou parallèle. Il s’agit ici de répartir un calcul (une analyse de données au sens statistique du terme, par exemple) sur un ensemble d’ententités de calcul indépendantes (cœurs d’un micro-processeur par exemple). Ces entités peuvent être situés sur un même ordinateur ou, dans le cas qui nous préoccupe dans cet article, sur plusieurs ordinateurs fonctionnant ensemble au sein d’un cluster de calcul. Cette dernière solution permet d’augmenter les capacités de calcul à moindre coût comparé à l’investissement que représente l’achat d’un super-calculateur ;
– partage des
ressources de stockage des données. Dans le cadre d’un calcul distribué, on distingue deux celui où la mémoire (où sont stockées les données à analyser) est accédée de la même manière par tous les processeurs (mémoire partagée) et celui où tous les processeurs n’accèdent pas de la même manière à toutes les données (mémoire distribuée). Dans les deux cas, des environnements logiciels (c’est-à-dire, des ensemble de programmes) ont été mis en place pour permettre à l’utilisateur de gérer le calcul et la mémoire comme si il n’avait à faire qu’à un seul ordinateur : le programme se charge de répartir les calculs et les données. Hadoop est un de ces environnements : c’est un ensemble de programmes (que nous décrirons plus précisément plus tard dans un prochain article dans ce blog) programmés en java, distribués sous licence libre et destinés à faciliter le déploiement de tâches sur plusieurs milliers de nœuds. En particulier, Hadoop permet de gérer un système de fichiers de données distribués : HDFS (Hadoop Distributed File System) permet de gérer le stockage de très gros volumes de données sur un très grand nombre de machines. Du point de vue de l’utilisateur, la couche d’abstraction fournie par HDFS permet de manipuler les données comme si elles étaient stockées sur un unique ordinateur. Contrairement aux bases de données classiques, HDFS prend en charge des données non structurées, c’est-à-dire, des données qui se présentent sous la forme de textes simples comme des fichiers de log par exemples. L’avantage de HDFS est que le système gère la localisation des données lors de la répartition des tâches : un nœud donné recevra la tâche de traiter les données qu’il contient afin de limiter le temps de transfert de données qui peut être rapidement prohibitif lorsque l’on travaille sur un très grand nombre de nœuds. Pour ce faire, une approche classique est d’utiliser une décomposition des opérations de calcul en étapes « Map » et « Reduce » (les détails de l’approche sont présentés dans un prochain article) qui décomposent les étapes d’un calcul de manière à faire traiter à chaque nœud une petite partie des données indépendamment des traitements effectuées sur les autres nœuds.
Une fois les données stockées, ou leur flux organisé, leur
valorisation nécessite une phase d’analyse (Analytics). L’objectif est de tenter de pénétrer cette jungle pour en comprendre les enjeux, y tracer des sentiers suivant les options possibles afin d’aider à y faire les bons choix. Le parti est pris d’utiliser, si possible au mieux, les ressources logicielles (langages, librairies) open source existantes en tentant de minimiser les temps de calcul tout en évitant la programmation, souvent re-programmation, de méthodes au code par ailleurs efficace. Donc minimiser, certes les temps de calcul, mais également les coûts humains de développement
pour réaliser des premiers prototypes d’analyse.



Référence
Statistique et Big Data Analytics
Philippe Besse∗  Nathalie Villa-Vialaneix

jeudi 22 janvier 2015

introduction

00:15 Posted by Unknown No comments
Bienvenue sur le blog du BigDataMasse où vous trouvez des tutoriels des différents techniques du bigdata où data masse.

avec l'explosion des données au cours de cette dernière décennie, le terme bigdata apparut englobant les différents techniques qui ont pour but la gestion et la manipulation de cette quantité énorme de données. toutes les innovations introduites dans ce sens on peut arriver à gèrer ces données et les exploiter à grande échelle pour en sortir du profit.