background preloader

MapReduce

MapReduce
Un article de Wikipédia, l'encyclopédie libre. Les termes « map » et « reduce », et les concepts sous-jacents, sont empruntés aux langages de programmation fonctionnelle utilisés pour leur construction (map et réduction de la programmation fonctionnelle et des langages de programmation tableau). MapReduce permet de manipuler de grandes quantités de données en les distribuant dans un cluster de machines pour être traitées. Présentation[modifier | modifier le code] Un modèle de programmation[modifier | modifier le code] MapReduce est un modèle de programmation popularisé par Google. MapReduce consiste en deux fonctions map() et reduce(). Dans l'étape Map le nœud analyse un problème, le découpe en sous-problèmes, et les délègue à d'autres nœuds (qui peuvent en faire de même récursivement). map(clé1,valeur1) → list(clé2,valeur2) //En pseudo code cela donneraitMap(void * document){ int cles = 1; for each mot m in document calculIntermediaire(m,cles);} reduce(key2,list(valeur2))→ list(valeur2)[1] Related:  ArchitecturesBusiness Intelligence

Test Driven Development Un article de Wikipédia, l'encyclopédie libre. Le Test-Driven Development (TDD), ou développements pilotés par les tests en français, est une méthode de développement de logiciel qui consiste à écrire chaque test, notamment des tests unitaires, avant d'écrire le code source d'un logiciel, de façon itérative. Cycle de TDD[modifier | modifier le code] Une représentation graphique du cycle de la méthode Développements Pilotés par les Tests (TDD) Le cycle préconisé par TDD comporte cinq étapes : écrire un seul test qui décrit une partie du problème à résoudre ;vérifier que le test échoue, autrement dit qu'il est valide, c'est-à-dire que le code se rapportant à ce test n'existe pas ;écrire juste assez de code pour que le test réussisse ;vérifier que le test passe, ainsi que les autres tests existants ;puis remanier le code, c'est-à-dire l'améliorer sans en altérer le comportement. Ce processus est répété jusqu'à résoudre le problème d'origine dans son intégralité.

Hadoop Un article de Wikipédia, l'encyclopédie libre. Hadoop a été créé par Doug Cutting et fait partie des projets de la fondation logicielle Apache depuis 2009. Historique[modifier | modifier le code] En 2004, Google publie un article présentant son algorithme basé sur des opérations analytiques à grande échelle sur un grand cluster de serveurs, le MapReduce, ainsi que son système de fichier en cluster, le GoogleFS. Doug Cutting, qui travaille à cette époque sur le développement de Apache Lucene et rencontre des problèmes similaires à ceux de la firme de Mountain View, décide alors de reprendre les concepts décrits dans l'article pour développer sa propre version des outils en version Open Source, qui deviendra le projet Hadoop. Architecture[modifier | modifier le code] Hadoop Distributed File System[modifier | modifier le code] Une architecture de machines HDFS (aussi appelée cluster HDFS) repose sur deux types de composants majeurs : MapReduce[modifier | modifier le code]

Google App Engine Un article de Wikipédia, l'encyclopédie libre. Google App Engine est une plateforme de conception et d'hébergement d'applications web basée sur les serveurs de Google. Historique[modifier | modifier le code] La première version de ce service (appelée 'beta'), est sortie en avril 2008, avec la possibilité d'enregistrer uniquement des comptes gratuits[1]. L'offre de cette première version propose 500Mo de stockage persistant, et suffisamment de bande passante et de capacités de calcul pour servir 5 millions de pages par mois. Depuis, de nombreuses fonctionnalités sont venues étayer l'offre de ce service ainsi que des outils facilitant le développement et la gestion des applications. Avril 2008 : Mai 2008 : L'outil Google App Engine Launcher est disponible sur MacOS.Ajout des APIs Image Manipulation et MemCache.Les inscriptions au service sont désormais ouvertes au public. Juillet 2008 : Possibilité d’héberger jusqu’à 10 applications au lieu de 3.Possibilité d’exporter les logs. Décembre 2008 :

Criteo = Hadoop + CouchBase + Elastic Serach Pour offrir le meilleur aux annonceurs, Criteo manipule des volumes de données considérables avec des temps de réponse de quelques dixièmes de seconde. Plongeon au cœur de son architecture. C'est l'une des start-up internet françaises qui connaît actuellement le plus de succès dans le monde. Tout le monde connait aujourd'hui ces bannières publicitaires ultra-ciblées qui vous suivent d'un site à l'autre, vous rappelant les articles que vous avez vus sur un site marchand et vous proposant de retourner sur ce site pour conclure votre achat. Un véritable pari technologique lorsqu'on sait que toutes ces opérations doivent être réalisées en quelques dixièmes de seconde et que Criteo réalise le processus 3 milliards de fois chaque jour.

Tim Berners-Lee Un article de Wikipédia, l'encyclopédie libre. Tim Berners-Lee Tim Berners-Lee en 2010. Compléments Timothy John Berners-Lee, KBE, né le 8 juin 1955 à Londres, est un citoyen britannique, principal inventeur du World Wide Web (WWW) au tournant des années 1990. Biographie[modifier | modifier le code] Tim Berners-Lee est né le 8 juin 1955 à Londres, en Angleterre. Il est père de deux enfants. Carrière[modifier | modifier le code] L'invention du World Wide Web[modifier | modifier le code] L'ordinateur NeXT, utilisé par Tim Berners-Lee pour inventer le World Wide Web. En 1980, il intègre l'Organisation européenne pour la recherche nucléaire (CERN). L'objectif de cette proposition est le partage des documents informatiques, ce que Tim Berners-Lee a l'idée de réaliser en associant le principe de l’hypertexte à l'utilisation d'Internet. Capture d'écran du navigateur World Wide Web C'est en mai 1990 qu'il adopte l'expression de World Wide Web pour nommer son projet.

BigTable Un article de Wikipédia, l'encyclopédie libre. BigTable est un système de gestion de base de données compressées, haute performance, propriétaire, développé et exploité par Google[1]. Chez Google, BigTable est stockée sur le système de fichiers distribué GoogleFS. Google ne distribue pas sa base de données mais propose une utilisation publique de BigTable via sa plateforme d'application Google App Engine. Introduction à Google App Engine Google App Engine permet d'exécuter vos applications web sur l'infrastructure de Google. Les applications App Engine sont faciles à construire, faciles à maintenir, et supportent facilement la montée en charge de votre trafic et de vos besoins croissants de stockage de données. Avec App Engine, il n'y a pas de serveurs à maintenir: Vous chargez juste vos applications, et elles sont aussitôt disponibles pour vos utilisateurs. Vous pouvez mettre à disposition vos applications depuis votre propre nom de domaine (tel que en utilisant Google Apps. Ou, vous pouvez utiliser directement le nom qui vous est fourni sur le domaine appspot.com. Vous pouvez partager votre application avec le monde, ou limiter l'accés aux membres de votre organisation. Google App Engine supporte les applications écrites dans plusieurs langages de programmation. Avec App Engine, vous payez seulement pour ce que vous utilisez. App Engine ne coûte rien pour démarrer. II.1. II.2. II.3. II.4.

ce que Hadoop ? Data warehouse, stockage et traitement distribués Définition Hadoop Hadoop est un projet Open Source géré par Apache Software Fundation basé sur le principe Map Reduce et de Google File System, deux produits Google Corp. Le produit est écrit en langage Java. Hadoop peut être considéré comme un système de traitement de données évolutif pour le stockage et le traitement par lot de très grande quantité de données. Hadoop et les analyses massives Le web n'est pas le seul à générer de grandes masses d'informations. Les analyses massives autorisent alors des optimisations bien plus fines. Benchmark Pour avoir une meilleure idée de la performance du système et de la révolution à venir : En Mai 2009 chez Yahoo Corp, utilisateur de Hadoop, 1 téra-octet (1012 ) de données a été trié en 62 secondes (cf blog développeur yahoo, voir plus bas)... Ressources Lecture recommandée › Comment utiliser Hadoop pour bâtir des systèmes distribuées afin de procéder à l'analyse de très grandes quantités de données.

Arbre de Merkle Un article de Wikipédia, l'encyclopédie libre. En informatique et en cryptographie, un arbre de Merkle ou arbre de hachage est une structure de données contenant un résumé d'information d'un volume de données, généralement grand (comme un fichier). Les arbres de hachage ont été inventés par Ralph Merkle en 1979[1]. Fonctionnement[modifier | modifier le code] Le principe d'un arbre de hachage consiste à décomposer les données d'entrée en un ensemble de blocs de tailles identiques. Les nœuds de niveau supérieur sont ensuite obtenus en compressant les nœuds du niveau courant à l'aide d'une fonction de hachage/compression jusqu'à n'obtenir qu'un nœud : la racine. Utilisations[modifier | modifier le code] Actuellement, les arbres de hachage sont très utilisés dans les réseaux pair à pair, car ils permettent de vérifier l'intégrité d'une partie d'un fichier. Références[modifier | modifier le code] Portail de la cryptologie

22 outils gratuits pour visualiser et analyser les données (1ère partie) Vous avez des données à explorer ? Voici quelques outils qui pourront vous être utiles pour les transformer en informations et en graphiques attrayants. Pour faire parler des données, rien ne vaut une panoplie d'outils de visualisation graphique. Computerworld souligne que la correction des textes se fait simplement. DataWrangler (cliquer ici pour agrandir l'image) Niveau de compétences requis : débutant avancé.Fonctionne sur tout navigateur web.En savoir plus : - Google Refine : comme un tableurIl ressemble à un tableur pour examiner à la fois les données numériques et alphanumériques, mais à l'inverse du tableur, il ne permet pas d'effectuer des calculs. Refine intègre plusieurs algorithmes retrouvant les mots orthographiés différemment mais qui devraient en fait être regroupés. Google Refine (cliquer ici pour agrandir l'image) Niveau de compétences requis : débutant avancé.

Google App Engine - La programmation pour le cloud computing La plateforme de Google, Google App Engine (GAE) utilise nativement le langage Python. Comme beaucoup de produits Google, GAE est encore en version beta. Il s’agit plus pour l’instant de tester le concept que de déployer des applications critiques. Google offre aux développeurs des comptes d’essai gratuits autorisant 500 Mo de stockage, 200 mégacycles de CPU par jour et 10 Go de bande passante par jour. Ce qui permet aux applications de servir jusqu'à 5 millions de pages vues par mois, autant dire qu’on a largement de quoi voir venir. En cas de dépassement de la consommation, le supplément est facturé. Google App Engine SDK est un package complet qui fournit des API et des outils permettant de développer et d’exécuter l’application dans un environnement local offrant les mêmes API que le service en ligne. Récemment, Google a annoncé le support de Java pour Google App Engine, en version préliminaire (Early Look).

Les principes de l’ETL Pour alimenter le datawarehouse des différentes applications de l’entreprise, on utilise une gamme d’outils appelés ETL, pour « Extract, Transform, Load ». Comme le nom l’indique, ces outils permettent d’extraire des données à partir de différentes sources, de les transformer (format, dénomination), et de les charger dans la base de données cible, ici le datawarehouse. Les transformations confiées à un ETL sont souvent simples, mais elles peuvent dans certains cas inclure des traitements procéduraux, de véritables programmes spécifiques. Un ETL permet d’éviter la réalisation de programmes batch répétitifs, souvent semblables, dont il faudra également assurer la maintenance. L’ETL peut prendre en charge différentes natures de sources de données, tant en entrée qu’en sortie, les principales étant bien sûr les SGBD relationnels, et les flux XML, mais il peut s’agir aussi de fichiers à formats fixes ou avec séparateurs (CSV). L’ETL a vocation à travailler en différé, le plus souvent la nuit.

Related: