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é.

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.

NoSQL Un article de Wikipédia, l'encyclopédie libre. En informatique, NoSQL désigne une famille de systèmes de gestion de base de données (SGBD) qui s'écarte du paradigme classique des bases relationnelles. L'explicitation du terme la plus populaire de l'acronyme est Not only SQL (« pas seulement SQL » en anglais) même si cette interprétation peut être discutée[1]. La définition exacte de la famille des SGBD NoSQL reste sujette à débat. Le terme se rattache autant à des caractéristiques techniques qu'à une génération historique de SGBD qui a émergé à la fin des années 2000/début des années 2010[2]. D'après Pramod J. L'architecture machine en clusters induit une structure logicielle distribuée fonctionnant avec des agrégats répartis sur différents serveurs permettant des accès et modifications concurrentes mais imposant également de remettre en cause de nombreux fondements de l'architecture SGBD relationnelle traditionnelle, notamment les propriétés ACID. Théorie[modifier | modifier le code]

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.

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.

Cloud computing Un article de Wikipédia, l'encyclopédie libre. Le cloud computing[1], ou l’informatique en nuage ou nuagique ou encore l’infonuagique (au Québec), est l'exploitation de la puissance de calcul ou de stockage de serveurs informatiques distants par l'intermédiaire d'un réseau, généralement Internet. Ces serveurs sont loués à la demande, le plus souvent par tranche d'utilisation selon des critères techniques (puissance, bande passante, etc.) mais également au forfait. Le cloud computing se caractérise par sa grande souplesse : selon le niveau de compétence de l'utilisateur client, il est possible de gérer soi-même son serveur ou de se contenter d'utiliser des applicatifs distants en mode SaaS[2],[3],[4]. Selon la définition du National Institute of Standards and Technology (NIST), le cloud computing est l'accès via un réseau de télécommunications, à la demande et en libre-service, à des ressources informatiques partagées configurables[5]. Terminologie[modifier | modifier le code]

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

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.

Superordinateur Un article de Wikipédia, l'encyclopédie libre. Superordinateur à la NASA. Le superordinateur JET. Un superordinateur, ou supercalculateur, est un ordinateur conçu pour atteindre les plus hautes performances possibles avec les technologies connues lors de sa conception, en particulier en termes de vitesse de calcul. La science des superordinateurs est appelée « calcul à haute performance » (en anglais high-performance computing, HPC). Historique[modifier | modifier le code] Les premiers superordinateurs sont apparus dans les années 1960, conçus par Seymour Cray pour le compte de la société Control Data Corporation (CDC), premier constructeur mondial de superordinateurs jusque dans les années 1970. Utilisation[modifier | modifier le code] Total de la puissance de calcul des 500 meilleurs supercalculateurs mondiaux de 1993 à 2008 (selon TOP500). Les institutions de recherche civiles et militaires comptent parmi les plus gros utilisateurs de superordinateurs. Conception[modifier | modifier le code]

Related: