Bases de données NoSQL Raja CHIKY [email protected] 2016-2017 Institut Mines-Télécom Institut Mines-Télécom 3 About me § § § § Associate professor in Computer Science – head of LISITE-RDI Research team Research interest: Data stream mining, scalability and resource optimization in distributed architectures (e.g cloud architectures), recommender systems Lecturer in CNAM,Telecom Sud (INT), ECP, Institut Mines-Télécom, etc. Research field: Large scale data management Heterogeneousand sta1cdata Heterogeneousand dynamicdatastreams 1. Real-time and distributed processing of various data sources 2. Use semantic technologies to add a semantic layer 3. Recommender systems and collaborative data mining sensors 4. Optimizing resources in large scale systems Institut Mines-Télécom Plan § Introduction § Concepts de base autour des BDs distribués § MapReduce § Bases de données clé-valeur § Bases de données orientées colonne § Bases de données orientées document § Bases de données orientées graphe Institut Mines-Télécom Introduction § Des entreprises face à de nouveaux usages • Une augmentation exponentielle des volumes de données à traiter • La prise en compte des données en tant que ressources stratégiques § Des technologies en constante évolution • Accroissement des capacités de calculs et d’analyse • Coût de stockage moins onéreux • L’émergence du Big Data ─ Comment mettre à profit des ressources jusqu’alors inexploitées? ─ Comment mettre à profit des sources disponibles ailleurs? 5 18/11/2016 Institut Mines-Télécom Modèle de présentation Télécom Evolution Le volume des données stockées augmente en permanence Augmentation de volume lié : • Aux données produites par les objets connectés • Au web, réseaux sociaux • A l’utilisation d’ordinateurs pour un nombre d’activités humaines de plus en plus grand • … Conséquence : • La donnée numérique, « seule trace » de processus sans « traces papiers » Une croissance exponentielle : l’univers digital Mines-Télécom doubleInstitut tous les 18 mois Big Data: exemples § Volumes de données estimées • • • • Google: 15 000PB (=15 Exabytes) Facebook: 300PB Ebay: 90PB Spotify: 10PB § Volumes de données par jour: • • • • 7 18/11/2016 Google: 100 PB (5 milliards de requêtes par jour) Twitter: 100 TB (>200 millin de tweets par jour) Facebook: 600 TB … Institut Mines-Télécom Modèle de présentation Télécom Evolution A quoi ressemblent ces données § Généralement, ce ne sont pas des données structurées (comme dans les BD traditionnels) normalisées (3FN ou FNBC) § Ce sont des données semi ou non structurées • • • • • 8 18/11/2016 Tweets Logs des serveurs Pages web Données liées Fichiers CSV, JSON , etc. volumineux Institut Mines-Télécom Modèle de présentation Télécom Evolution {"created_at":"WedJan 21 15:21:04 +0000 2015","id": 557920823764586496,"id_str":"557920823764586496","text":"#T ulsaAirport#Oklahoma Jan 21 08:53 Temperature 37\u00b0F clouds Wind NW 7 km\/h Humidity 85% .. http:\/\/t.co\/ SnC8ST3gQC","source":"\u003ca href=\"http:\/\/www.woweather.com\/USA\/TulsaIAP.htm\" rel=\"nofollow\"\u003eupd ate weather tulsa\u003c\/a \u003e","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":nu ll,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null," user":{"id":255167 921,"id_str":"255167921","name":"Weather Tulsa","screen_name":"wo_tulsa","location":"Tulsa","url":"http:\/\/itunes.apple.com\/app\/ weatheronline\/id299504833?mt=8","description":"Weather Tulsa\n\nhttp:\/\/ www.woweather.com \/USA\/Tulsa.htm","protected":false,"verified":false,"followers_count": 111,"friends_count":60,"listed_count":5, "favourites_count":0,"statuses_count": 33805,"created_at":"Sun Feb 20 20:31:42 +0000 2011","utc_offset":7200,"ti me_zone":"Athens","geo_enabled":false,"lang":"en","contributors_enabled":false,"is_transla tor":false,"profile_b ackground_color":"C0DEED","profile_background_image_url":"http:\/\/ abs.twimg.com\/images\/themes\/theme1\/bg.pn g","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/ bg.png","profile_background_tile":false,"profile_link_color":"0084B4","profile_sidebar_borde r_color":"C0DEED","profile_sidebar_fill_ color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"profile _image_url":"http:\/\/pbs.twimg.com\/profile_images\/1249942071\/WO-20pxlinien_normal.png","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/ 1249942071\/WO-20px-linien_normal.png","default_profile":true,"default_profile_imag e":false,"following":null,"follow_request_sent":null,"notifications":null},"geo":null,"coordinat es":null,"place":null,"contributors":null,"retweet_count":0,"favorite_count":0,"entities": {"hashtags":[{"text":"TulsaAirport", "indices":[0,13]},{"text":"Oklahoma","indices": [14,23]}],"trends":[],"urls":[{"url":"http:\/\/t.co\/SnC8ST3gQC","expanded_url":"http:\/\/bit.ly\/ 188eNcw","display_url":"bit.ly\/188eNcw","indices":[93,115]}],"user_mentions":[],"symbols": []},"favorited":false,"retweeted":false,"possibly_sensitive":false,"filter_level":"low","lang":"e n","timestamp_ms":"1421853664710"} {"created_at":"WedJan 21 15:21:04 +0000 2015","id": 557920823877464064,"id_str":"557920823877464064","text":"An imeepisode updated: Kyoukaino Kanata: Mini Theater # 6 ( http:\/\/t.co\/kjEPWveEHM) #MalUpdater","source":"\u003ca href=\"http:\/\/www.malupdater.com\" rel=\"nofollow \"\u003eMal Updater\u003c\/a \u003e","truncated":false ,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_re 18/11/2016 9ply_to_user_id":null,"in_reply_to_user_id_ Institut Mines-Télécom Modèle de présentation Télécom Evolution Big Data: 3V Velocité Volume PetaOctets par Jour/Sem. Données en temps réel (Collecte/ Analyse) Variété Données non strcturées/ logs web/ audio/ vidéo/ etc. En extraire la Valeur Institut Mines-Télécom Le Big Data – de nouvelles possibilités techniques • Stockage et traitements distribués «scalable et sans limite » • De nouveaux modèles : en plus des tableaux « en ligne » des SGBDR traditionnels, on peut stocker des fichiers (JSON, XML, YAML), des tables en colonnes, des graphes • Stockages volatiles « en mémoire », en complément du stockage « sur disque » • Business models « open source » : Outils disponibles gratuitement, nativement interopérables, roadmap d’évolution rythmées et portées par la communauté internationale (entreprises et universités) • Architectures distribuées : pensées pour être résistantes aux pannes • Propriétés ACID des SGBDR plus flexibles A corréler avec les autres technologies disruptives : cloud, objets connectés, mobilité, réseaux sociaux Institut Mines-Télécom La donnée revient au centre des débats § Une valeur qui se concrétise dans les usages • Les succès des géants du web ne cessent de démontrer la valeur générée par les données • Le volume de données stockées est en croissance permanente • Les innovations technologiques du ‘Big Data’, résultat des solutions mises au point par les géants du web, apportent de nouvelles possibilités • Le gouvernement français mise sur ces progrès techniques pour porter la croissance économique Institut Mines-Télécom ??? $$ 12 Exemple simple: Google-Grippe http://www.google.org/flutrends/ Institut Mines-Télécom Macy’s § Plus de 800 points de vente (Macy’s & Bloomingdale’s) § Segmentation de la clientèle et vue 360° multicanal du client -> campagnes marketing personnalisées, promotions ciblées, up- et cross-selling (e.g. moins d’emails envoyés, mais plus de trafic généré vers le site web de Macy’s) § politique de prix dynamique (sur 73 millions de références) pour chaque point de vente, en fonction de la demande, des stocks, de la présence locale de concurrents § Les ventes en magasins ont été boostées de 10% Source: http://www.sas.com/resources/asset/Big-Data-in-Big-Companies.pdf 14 18/11/2016 Institut Mines-Télécom Modèle de présentation Télécom Evolution Netflix § Recommandations basées sur les données utilisateur « There are 33 million different versions of Netflix. » 75% des vidéos regardées viennent des suggestions de Netflix à ses utilisateurs § Big Data a motivé l’achat des droits (pour 100 million US$) et le tournage de la série House of Cards (popularité de séries similaires, choix du producteur, du réalisateur, des acteurs) Bande annonce personnalisée en fonction du type d’utilisateur House of Cards a amené 2 millions de nouveaux utilisateurs aux USA et 1 million en dehors des USA Source: http://www.infoq.com/fr/news/2014/01/netflix-bigdatadecisions 15 18/11/2016 Institut Mines-Télécom Modèle de présentation Télécom Evolution Exploitation des réseaux sociaux § Comprendre l’audience • • • • Quelle est la valeur de l’audience ? Qui sont les abonnés (compte Twitter par exemple) ? Quels sont les centres d’intérêt des abonnés ? Identification des tweets les plus importants § E-réputation • Monitoring de l’opinion § Innovation participative • Boite à idées sur internet • Analyse de l’opinion pour la création de produits et services innovants 16 18/11/2016 Institut Mines-Télécom Modèle de présentation Télécom Evolution Nestlé § Un portfolio de 2000 marques (nutrition, santé, bien-être) § 2010 : crise liée à l’huile de palme utilisée dans les produits Kit Kat (campagne virale de Greenpeace) § Depuis, une équipe de 15 personnes (Digital Acceleration Team) surveille 24h/24 les échanges concernant les produits Nestlé sur les réseaux sociaux avec le but d’engager le dialogue et de transformer les sentiments négatifs Source: http://www.usine-digitale.fr/article/une-social-war-room-cheznestle.N195769 17 18/11/2016 Institut Mines-Télécom Modèle de présentation Télécom Evolution Predpol § PredPol=« Predictive Policing » § prédire la probabilité des crimes et délits (nature, localisation à quelques centaines de mètres près, timing à 12h près) base d’apprentissage de 13 millions d’événements § Los Angeles: diminution de 33% des agressions § Santa Cruz : diminution de 27% des cambriolages en moins d’un an 18 18/11/2016 Institut Mines-Télécom Modèle de présentation Télécom Evolution Institut Mines-Télécom Défis du Big Data § Appréhender une croissance exponentielle du volume de données § Maîtriser la variété des données et en extraire l’information pertinente (la valeur) § Traitement temps réel des informations § Rendre l’information accessible au plus tôt § Anticiper et faciliter la prise de décision Institut Mines-Télécom Acquisition Stockage Analyse Visualisation • Données structurées • Données non structurées (logs, images, flux, etc.) • Classique (SGBDR, DWH) • Big Data (Volumétrie, Evolutif, etc.) • Explorative (DataMining, Olap), prédictive • Scalable, on the fly, temps réel, etc. • Reportings • A la volée, en temps réel, dynamique Les limites du relationnel 21 18/11/2016 Institut Mines-Télécom Modèle de présentation Télécom Evolution Vision historique Bases de données relationnelles (fin des années 70) – Innovation de rupture • Outils de modélisation : E/R, .. • langages de requêtes : SQL, etc. • Optimisation des requêtes - Indexation : Arbres B+, hachage, etc. - Interfaces, outils de report - Gestion des transactions, OLTP Bases de données avancées (années 80) • modèles : relationnel étendu, objet, objet-relationnel … • applis : spatial, temporel, multimédia, active, bases de connaissances, ... Base de données et web (années 90) • XML et Bases de Données • Web-Mining Décisionnel (années 90) • Entrepôts et OLAP • KDD et data mining Nouvelles bases de données (fin des années 2000) 22 • NoSQL • In Memory 18/11/2016 Institut Mines-Télécom Modèle de présentation Télécom Evolution comparaison transactionnel / décisionnel Caractéristique Production / Opérationnel OLTP Online Transaction Processing Décisionnel OLAP Online Analytical Processing Utilisateurs Rouages de l’entreprise Observateurs des rouages de l’entreprise Usage Automatisation des processus opérationnels Outillage du processus de décision Opérations MàJ Analyse Type d’accès L/E Lecture – MàJ par batch uniquement via ETL Niveau données Élémentaires, courantes, orientées applications Global, relatives à l’historique, orientées thème et sujet Quantité d’information manipulée Faible Importante Taille de la base 100 MB à 1GB 1GB à 1TB Ancienneté des données Récente Historique Données Normalisation (3NF) Redondance, Agrégation Temps Instantané Représentation du passé, prévision du futur Accès aux données Via les écrans d’une application Accès direct aux données par les utilisateurs en lecture Institut Mines-Télécom Limites des SGBDR Limite Commentaire Volume Difficulté à traiter dans un temps raisonnable de larges volumes de données. Agrégation des données dans les entrepôts. Données uniquement structurées Les SGBDR ne prennent pas en compte les données non structurées Vitesse de stockage Adapter le stockage à l’évolution des besoins Absence de scalabilité Difficulté à adapter les capacités de stockage de manière élastique Institut Mines-Télécom Limites des SGBDR • Représentation tabulaire pas toujours adaptée • Normalisation imposant la répartition d’une entité sur plusieurs tables • jointures sur clés étrangères pour retrouver les données relatives à une entité • Surcharge sémantique • pas de différentiation entre entités et relations, tout est contenu dans un schéma de table • Récursivité complexe • calcul de la fermeture transitive : si (a,b) et (b,c) sont des tuples de R, alors (b,c) est aussi un tuple de R, déduit par inférence • Homogénéité de la structure tabulaire, aussi bien au niveau des lignes que des colonnes Institut Mines-Télécom Ce qui a changé • Complexité : • • Indépendance par rapport au schéma : • • • • tenir compte des évolutions de schéma Scalabilité • • évite de stocker des valeurs nulles Variabilité • • traitement indépendant d’une définition de schéma données structurées sans être conformes à un schéma donné données de même type peuvent être représentées différemment y compris dans le même ensemble de données Données éparses • • données organisées en structures complexes adaptation dynamique à la distribution des données et à la structure du réseau de machines Volume Institut Mines-Télécom NoSQL § 2003 : Google FS (GFS) et Big Table (Hbase : version libre) • • • Système de fichiers distribué fonctionnant en commodity hardware (cluster constitué d’un grand nombre de machines de puissance moyenne) Gigantesque table de hachage distribuée Gère la cohérence et la distribution HBASE : développée par la société Powerset, active dans le traitement du langage naturel • système de gestion de données orienté colonnes, destinée à manipuler de très larges volumes de données sur une architecture distribuée • Utilisée par les acteurs majeurs du web (eBay, Yahoo!, Twitter) § 2004 : publication de Map/Reduce • • • § HDFS et Hadoop • § Stockage des données sur GFS Traitements distribués (MAP) Restitution des résultats (REDUCE) Versions Open Sources financées par Yahoo! Puis données à la fondation Apache En 2012 : • • Cluster de 10000 machines pour Yahoo! Volume de 100 Péta octets sur HDFS pour Facebook Institut Mines-Télécom SQL/NoSQL : quelles différences ? SGBDR NoSQL (Not Only SQL) Modèle relationnel : • Fondements théoriques • Normalisation Sans schéma ou schéma dynamique SQL (richesse des requêtes) Adaptation de SQL (ex : CQL – Cassandra Query Language, PigLatin) DSL : Domain Specific Language (ex : MongoDB) Défaut d’impédance Meilleure encapsulation des langages Marqueur NULL Pas de schéma pré-défini Transactions ACID Cohérence vs Théorème de CAP disponibilité OLTP/OLAP Environnements décisionnels avec intégration d’Hadoop ou du MapReduce « maison » (Vertica, Pentaho, Datameer) Institut Mines-Télécom Le paysage des bases de données Institut Mines-Télécom « NoSQL, NewSQL and Beyond: The answer to SPRAINed relational databases », 451 Group,2011 Concepts de base autour des BD’s distribuées Extensibilité – Sharding MapReduce Institut Mines-Télécom Extensibilité (scalability) § L'extensibilité est la propriété d'un système, d'un réseau ou d'un processus qui témoigne de sa capacité à gérer des charges de travail importantes en toute souplesse ou à être agrandi sans difficulté § Deux types: • Verticale • Horizontale § Définition de la scalabilité : Un système est scalable si ses performances sont proportionnelles aux ressources qui lui sont allouées : ─ les transferts réseaux sont un facteur limitant de la scalabilité ─ principe de localité des données : exécuter un traitement au plus près des données plutôt que de déplacer les données vers un traitement (principe de base d’un système comme Hadoop) Institut Mines-Télécom Extensibilité verticale § En pratique • Remplacer les serveurs par des machines plus puissantes § Coût important § Mise en place facile Institut Mines-Télécom Extensibilité horizontale § En pratique: • Ajout de machines ordinaires § Coût moins important § Mise en place plus délicate Institut Mines-Télécom Monter en charge un SGBDR § Problèmes de passage à l'échelle quand le jeu de données est trop volumineux § SGBDR n'ont pas été conçues pour être distribués § Solutions de bases de données distribuées (multi-nœuds) =>«passage à l'échelle horizontale» § Différentes approches: • Maître-esclave • Partitionnement (sharding) Institut Mines-Télécom Monter en charge un SGBDR § Maître/esclave • Toutes les écritures sont envoyées au maître • Les lectures peuvent être incorrectes tant que les écritures n'ont pas été propagées • La volumétrie des données peut poser des problèmes si le maître doit dupliquer les données aux esclaves § Partitionnement • Efficaces pour lectures et écritures • Manque de transparence, les applications doivent s'adapter au partitionnement • Perte des contraintes référentielles (relations) et jointure entre les partitions Institut Mines-Télécom Maître/esclave Esclave Client écriture Maître Esclave Institut Mines-Télécom Réplication synchrone ou asynchrone Partitionnement vertical § Vertical • Les serveurs stockent différentes tables d'une base de données Institut Mines-Télécom Partitionnement horizontal Institut Mines-Télécom On perd alors beaucoup de l'intérêt du relationnel ! Partitionnement horizontal § Chaque serveur est responsable d'un sous ensemble de données (identifié par un intervalle de clés) § Ajout d'une nouvelle machine • comment répartir la charge (load balancing) ? § Localisation des données • Distributed Hash Tables (DHT) Institut Mines-Télécom DHT § Mécanisme distribué et décentralisé permettant d’associer des valeurs de clés à un contenu par hachage de la clé • • • Chaque participant gère une partie de la table de hachage. Performance en recherche de l’ordre de log(N) Facilement reconfigurable lorsqu’un site se connecte ou se déconnecte § Mécanisme général pour la localisation de ressources distribuées identifiées par des clés • • • • § Les clés et les noeuds (adresse IP) sont hachés sur le même anneau (cercle) Clés et pairs sont affectés à un identifiant ds [0..m] Succ(kid) : le plus petit identifiant de noeud qui soit supérieur ou égal à k mod m Pred(kid) : le plus grand identifiant de noeud inférieur à k mod m Chaque clé d’identifiant k est gérée par le noeud suivant ou égal, i.e., d’identifiant supérieur ou égal • Pred(Succ(kid)) < kid ≤ Succ(kid) § Fonction, de hachage consistante comme MD5, SHA1 pour éviter les collisions et bien équilibrer la charge 40 Institut Mines-Télécom Exemple (1) identifier node key X 6 1 0 1 7 6 succ(2) = 3 identifier circle 6 succ(1) = 1 2 succ(6)= 0 5 3 4 41 Institut Mines-Télécom 2 2 Exemple (2) Institut Mines-Télécom Les choix techniques de NoSQL Institut Mines-Télécom Les choix techniques du NoSQL § Architecture distribuée • techniques de distribution des traitements et des données avec ou sans maitre Réplication § Niveau de cohérence • forte, à terme, faible § Abandon du modèle relationnel • nécessité de concevoir les applications pour un usage spécifique des données § Transfert de la complexité vers les applications • gestion de conflit Institut Mines-Télécom la réplication • Principe de base du NoSQL • La panne est la règle (disque, application, système, serveur, …) • il faut donc pouvoir assurer la sécurité des données • La redondance est la réponse pour faire face aux pannes. On duplique : • • les données sur des disques différents SPOF : Single Point Of Failure • Objectifs de la réplication • • disponibilité (reprise sur panne immédiate et automatique) scalabilité en lecture : • • scalabilité en écriture : • • • distribuer les requêtes en lecture sur plusieurs machines quand les données sont répliquées problèmes d’écritures concurrentes répartition de la charge localité des données • Principal problème lié à la réplication • La cohérence Institut Mines-Télécom réplication synchrone Chaîne de 8 messages pour 3 copies, temps d’attente pouvant être rallongé en cas de surcharge d’un serveur par exemple. Source : polycopié de P. Rigaux – Bases de Données Documentaires et Distribuées Institut Mines-Télécom réplication asynchrone Plus rapide, mais : • le client reçoit un acquittement alors que la réplication n’est pas complète, • le client poursuit son exécution alors que toutes les copies ne sont pas encore mises-à-jour ; il se peut donc qu’une lecture renvoie des copies obsolètes Source : polycopié de P. Rigaux – Bases de Données Documentaires et Distribuées Institut Mines-Télécom Cohérence • dépend de 3 facteurs dans le NoSQL : topologie du système (maître-esclave ou sans maître) et le caractère asynchrone ou non des écritures Institut Mines-Télécom Cohérence § Niveaux de cohérence : • Cohérence forte (propriétés ACID) : réplication synchrone et mécanisme de verrouillage fort • Cohérence à terme (Eventual consistency) : le système garantit la convergence à terme vers un état consistant ─ choix de la majorité des moteurs NoSQL • Cohérence faible : favorise la disponibilité des données, jamais d’attente pour les opérations de lecture et d’écriture ⇒ certaines requêtes peuvent être effectuées sur des données anciennes Institut Mines-Télécom Consistance à terme § Pour être toujours consistant : • R + W > N • R = nombre de nœuds qui doivent s’accorder lors de la lecture d’une valeur • W = nombre de nœuds qui doivent valider une insertion • N = facteur de réplication • Exemple : N = 3 • On ne prend en compte ici que les nœuds concernés Age: 15 Age: Age: 15 15 Insertion avec W=2 Lecture avec R=2 Age: 15 Age: Age: 16 16 Age = 16 Nœud 1 Nœud 2 Nœud 3 Nœud 1 Nœud 2 Nœud 3 W+R>3 Institut Mines-Télécom Renvoie 16 Théorème de CAP Institut Mines-Télécom Théorème CAP (E.Brewer, 2000) BASE (Basically Available, Soft state, Eventually Consistant) Les données sont disponibles, même lors de la perte d’un nœud Avalaibility Partition tolerant Consistency Chaque nœud peut fonctionner de manière autonome Les données sont à jour • Au maximum 2 propriétés respectées par n'importe quel système de données distribué • plus précisément, si une garantie haute est assurée pour deux des propriétés, une garantie plus faible est assurée pour la dernière • Pour passer à l'échelle, on utilise le partitionnement. Ce qui implique un choix entre la cohérence ou la disponibilité Institut Mines-Télécom CA (1) Pas de partitionnement, Cohérence et disponibilité App Data A Institut Mines-Télécom Data B AP (2) Partitionnement et disponibilité Incohérence App Data A Institut Mines-Télécom Old Data B CP (3) Partitionnement, Cohérence Pas disponible App New Data Wait for new data A Institut Mines-Télécom B CAP Visual Guide to NoSQL Systems - Nathan Hurst's Blog http://blog.nahurst.com/visual-guide-to-nosql-systems Institut Mines-Télécom MapReduce Institut Mines-Télécom Motivation: traitement de données à grande échelle § Traiter de grands volumes de données (> 1 To) § Paralléliser les traitements sur des centaines / milliers de processeurs ... Et tout cela de façon très simplifiée Institut Mines-Télécom MapReduce § Introduit par Google en 2004 • MapReduceparadigm and how it is used in Google(Google file system, etc.) • J. Dean and S. Ghemawatin 2004: MapReduce: Simplified Data Processing on Large Clusters. OSDI 2004: 137-150 § But: faire des traitements parallèles (indexation, datamining, …) § Déplacer les traitements vers l'infrastructure de stockage § MapReduce Offre: • Parallélisation et distribution automatique des traitements • Tolérance aux pannes • Equilibrage de charge • Abstraction propre pour les programmeurs Institut Mines-Télécom principe de localité des données Client-serveur : l’application cliente reçoit les données du serveur Institut Mines-Télécom Principe de localité des données : le programme est distribué à toutes les machines contenant les données Modèle de programmation § Emprunté à la programmation fonctionnelle § Les programmeurs implémentent deux méthodes: Map: est une étape de transformation des données sous la forme de paires clé/valeur • Reduce: est une étape de fusion des enregistrements par clé pour former le résultat final • Institut Mines-Télécom MapReduce (architecture globale) Institut Mines-Télécom Map § map (in_key, in_value) -> (out_key, intermediate_value) list § Exemples: – Majuscules let map(k, v) = emit(k.toUpper(), v.toUpper()) (“foo”, “bar”) -> (“FOO”, “BAR”) (“Foo”, “other”) -> (“FOO”, “OTHER”) (“key2”, “data”) -> (“KEY2”, “DATA”) – Changement de clé let map(k, v) = emit(v.length(), v) (“hi”, “test”) -> (4, “test”) (“x”, “quux”) -> (4, “quux”) (“y”, “abracadabra”) -> (10, “abracadabra”) Institut Mines-Télécom Reduce § reduce (out_key, intermediate_value list) -> out_value list § Après la fin de map(), toutes les valeurs intermédiaires pour une clé de sortie sont regroupées dans une liste § reduce() combine les valeurs intermédiaires dans une ou plusieurs valeurs finales pour chaque clé de sortie § Exemple: let reduce(k, vals) = sum = 0 foreach int v in vals: sum += v emit(k, sum) (“A”, [42, 100, 312]) -> (“A”, 454) (“B”, [12, 6, -2]) -> (“B”, 16) Institut Mines-Télécom Map and Reduce § Map (k1,v1) à list(k2,v2) § Reduce(k2,list(v2)) à list(k3,v3) Les clés permettent de regrouper les données et les machines/ tâches § Par exemple: • k1= identifiant d ’un document • v1= contenu du document • k2= mot • v2= occurrence • k3=mot • v3= occurrence finale Institut Mines-Télécom Cas d'utilisation – Word Count Pomme Orange Pomme Peche Orange Pomme Pomme Orange Pomme Fichier d’entrée Pomme Orange Pomme Pomme:2 Orange:1 Pomme:2 Pomme: 1 Pomme :2 Pomme:5 Peche Orance Pomme Peche:1 Orange:1 Pomme :1 Orange1 Orange:1 Orange1 Orange: 3 Pomme Orange Pomme Pomme:2 Orange:1 Peche:1 Peche:1 Map Tri Découpage Institut Mines-Télécom Reduce Pomme: 5 Peche :1 Orange: 3 Résultat Map/Reduce: comptage de mots Map (string key, string value) // key: document name // value: document content For each word w in value: EmitIntermediate (w, “1”); Reduce (String key, Iterator values) // key: a word // value: a list of counts int result = 0; For each word v in values: result += v; Emit (result); Institut Mines-Télécom Traitement vers les données § Données stockées dans des systèmes de fichier distribués • Ex. Google File System, Hadoop Distributed File System § Plusieurs blocks (chunks généralement de 64Mo) § Noeud maitre (master node) connait les localités des données • Reçoit les jobs • Calcule le nombre de map et reduce nécessaires • Sélectionne et active les nœuds esclaves § Noeud maitre envoie les traitements vers les nœuds esclaves (worker nodes) Institut Mines-Télécom MapReduce § Applications • Indexation de document dans un moteur de recherches, grep distribué, tri distribué, statistiques d'accès au web, construction d'index inversé, clustering de documents, etc. § Plusieurs implémentations: C#, C++, Erlang, Java, Python, etc. § La plus connue: • Apache Hadoop Map Reduce § Une grande majorité des bases NoSQL intègrent une implémentation de MapReduce • MongoDB, CouchDB, Riak, Cassandra Institut Mines-Télécom Hadoop Projet Open Source (Apache Software Foundation) Environnement d'exécution distribué Java Sous-projets: MapReduce, HDFS, Hbase, Pig, Hive, Mahout, etc. § Grande volumétrie de données § § § § • Exemple de Yahoo: 500GB de données triées en 59s avec un cluster de 1400 nœuds. § Applications: • LastFm: statistiques hebdomadaires (Top artistes, Top Titres) • Facebook: reporting et statistiques internes (croissance du nombre d'utilisateurs, consultation des pages, etc.) § http://wiki.apache.org/hadoop/PoweredBy • Amazon, Apple, Ebay, IBM, Google, Microsoft, SAP, Twitter, etc Institut Mines-Télécom Use cases § Facebook has multiple Hadoop clusters deployed now - with the biggest having about 2500 cpu cores and 1 PetaByte of disk space. We are loading over 250 gigabytes of compressed data (over 2 terabytes uncompressed) into the Hadoop file system every day and have hundreds of jobs running each day against these data sets. (source: https://www.facebook.com/note.php? note_id=16121578919) § Google : the size of one phase of the computation [of the index] dropped from approximately 3800 line of C++ code to approximately 700 lines when expressed using MapReduce. (source: The art of rails, Edward Benson, p38) § The Yahoo ! Search Webmap is a Hadoop application that runs on a more than 10,000 core Linux cluster and produces data that is now used in every Yahoo ! Web search query. (source: en.wikipedia.org) § Other users: Amazon, ebay, Netflix, Spotify, IBM, LinkedIn, etc. Institut Mines-Télécom Implémentation des opérations d’algèbre relationnel en MapReduce § Sélection: • Map retourne l’enregistrement s’il correspond aux critères de sélection • Pas de Reduce § Jointure: • Map renvoie une paire intermédiaire composée du champ de jointure en clé et l’enregistrement en valeur • Reduce reçoit pour chaque clef de jointure la liste des enregistrements correspondants et se charge de faire le produit cartésien de ces enregistrements Institut Mines-Télécom MapReduce: conclusions § MapReduce s'est avéré être une abstraction très utile § Simplifie grandement les calculs à grande échelle chez les grands acteurs du web (Google, facebook, etc.) § Paradigme de programmation fonctionnelle peut être appliqué à des applications à grande échelle § Fun & Simple: on ne se concentre que sur le problème et on laisse la librairie gérer le « sale boulot » (réplication, tolérance aux fautes, répartition de charge, etc.) Institut Mines-Télécom Ecosystème Hadoop § Avro: Serialisation données § Chukwa: supervision de clusters § Flume: collecte de données log en temps réel § Hbase: BD Colonnes § Hive: Requêtage sur les données (proche de SQL) § Pig: Langage de requêtage (scripting) § Sqoop: transfert de données entre SGDBDR et hadoop § Oozie: Workflow et orchestration de jobs § Hue: Interface graphique pour Hadoop § … Institut Mines-Télécom Problèmes de MapReduce § La simplicité est le principe du MapReduce, tant que l'application ne nécessite pas des requêtes complexes SQL § Opérations classiques de bases de données doivent être codées à la main • Join, selection, projection, etc. § Solution: Utilisation d’un langage de haut niveau • Permet de traduire le langage de haut niveau en mapReduce de façon automatique • Pig, Hive, etc. 76 18/11/20 16 Institut Mines-Télécom Pig § Implémentation commencée par Yahoo! Research § Execute plus de 30% des jobs Yahoo! § Caractéristiques • Exprime des jobs mapReduce • Fournit des opérateurs relationnels (SQL) ─ (JOIN, GROUP BY, etc.) • Facilement intégrables aves des programmes en java Institut Mines-Télécom Pig - exemple url-Info Visits • Soient deux tables:Visits, url-Info • Trouver les top 10 des pages les plus visitées dans chaque catégorie User Url Time Amy cnn.com 8:00 Amy bbc.com 10:00 Amy flickr.com 10:05 Fred cnn.com 12:00 Url Category PageRank cnn.com News 0.9 bbc.com News 0.8 flickr.com Photos 0.7 espn.com Sports 0.9 Institut Mines-Télécom LoadVisits LoadUrlInfo Groupbyurl Foreachurl generatecount Joinonurl Groupbycategory Foreachcategory generatetop10urls En MapReduce Institut Mines-Télécom En Pig LoadVisits Groupbyurl Foreach url generatecount LoadUrl Info Joinonurl Groupbycategory Foreach category generatetop10urls 80 18/11/20 16 visits = load ‘/data/visits’ as (user, url, time); gVisits = group visits by url; visitCounts = foreach gVisits generate url, count(visits); urlInfo = load ‘/data/urlInfo’ as (url, category, pRank); visitCounts = join visitCounts by url, urlInfo by url; gCategories = group visitCounts by category; topUrls = foreach gCategories generate top(visitCounts,10); store topUrls into ‘/data/topUrls’; * top, count sont des fonctions définies par l’utilisateur Institut Mines-Télécom Pig by Example Map1 LoadVisits Groupbyurl Reduce1 Foreachurl generatecount LoadUrlInfo Map2 Joinonurl Reduce2 Map3 Groupbycategory Reduce3 81 18/11/20 16 Foreachcategory generatetop10urls Institut Mines-Télécom UDF: User Defined Functions § On peut écrire ses propres fonctions en Java qui seront traduites en Java § Un exemple https://wiki.apache.org/pig/UDFManual Institut Mines-Télécom Hive Un entrepôt de données pour Hadoop Open-Source Ecrit en java Les méta-données sont stockées dans des bases de données relationnelles § Offre un langage de requêtage proche de SQL: HiveQL § Offre la possibilité de définir des fonctions § Offre une indexation § § § § http://hive.apache.org/ Institut Mines-Télécom Architecture - Hadoop Institut Mines-Télécom Architecture - Hive § Au dessus de HDFS et Cluster Hadoop § Utiliser Flume et Sqoop pour migrer les données dans Hive § Utiliser la commande Hive « LOAD DATA » § Utiliser ODBC pour se connecter à l’architecture BI Institut Mines-Télécom Langages - LDD § Creation d’une table hive> CREATE TABLE customer (age INT, address STRING) § Voir les tables hive> SHOW TABLES; § Décrire les tables hive> DESCRIBE customer; § Modification d’une table hive> ALTER TABLE customer ADD COLUMNS (age INT); § Décrire les tables hive> DROP TABLE customer; Institut Mines-Télécom Langages – LMD § Charger un fichier dans Hive hive> LOAD DATA LOCAL INPATH ‘/data/home/test.txt ’ OVERWRITE INTO TABLE customer; § HIVEQL hive> SELECT c.age FROM customer c WHERE c.sdate=‘2008-08-15’ hive>INSERT OVERWRITE DIRECTORY ‘/data/hdfs_file’ SELECT c.* FROM customer c WHERE c.sdate=‘2008-08-15’; § Ecrit tout le contenu de la table customer dans un répertoire hdfs § Peut s’utiliser avec ODBC pour s’interfacer avec des outils de Business Intelligence Institut Mines-Télécom Merci pour votre attention [email protected] Institut Mines-Télécom