Ce diaporama a bien été signalé.
Le téléchargement de votre SlideShare est en cours. ×

Big Data: Hadoop Map / Reduce sur Windows et Windows Azure

Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité

Consultez-les par la suite

1 sur 45 Publicité

Big Data: Hadoop Map / Reduce sur Windows et Windows Azure

Télécharger pour lire hors ligne

L'algorithme Map/Reduce et sa mise en oeuvre avec Apache Hadoop permettent de gérer de très grands volumes de données non structurées. Microsoft adopte Haddop sur Windows et Windows Azure. Venez voir comment.

L'algorithme Map/Reduce et sa mise en oeuvre avec Apache Hadoop permettent de gérer de très grands volumes de données non structurées. Microsoft adopte Haddop sur Windows et Windows Azure. Venez voir comment.

Publicité
Publicité

Plus De Contenu Connexe

Diaporamas pour vous (20)

Publicité

Similaire à Big Data: Hadoop Map / Reduce sur Windows et Windows Azure (20)

Plus par Microsoft (20)

Publicité

Plus récents (20)

Big Data: Hadoop Map / Reduce sur Windows et Windows Azure

  1. 1. palais des congrès Paris 7, 8 et 9 février 2012
  2. 2. BIG DATA: HADOOP MAP / REDUCE SUR WINDOWS ET WINDOWS AZURE • Yann SCHWARTZ yschwartz@kobojo.com • Benjamin Guinebertière (DPE) www.benjguin.com • Pierre Lagarde (DPE) pierlag@microsoft.com
  3. 3. Agenda Intro BigData / Hadoop Exemple pour comprendre Exemple pratique Q&A
  4. 4. En 10 ANS L'UNIVERS NUMERIQUE VA CROITRE DE x44 DE 0.9 à 35.2 Zetta-octets New Bytes of Information in 2010 Source: IDC, as reported in The Economist, Feb 25, 2010
  5. 5. Traditional e-commerce data flow
  6. 6. New exploratory e-commerce data flow Batch
  7. 7. Qui fait quoi ? Développeurs BigData Data Analyste Community Manager Lanceur de démo 
  8. 8. Démo Lancement du scénario Kobojo
  9. 9. Présentation Scénario
  10. 10. Ce qui caractérise BigData Nouveaux outils Nouvelles source de données Très gros volume Stockage ou Données non Flux Nouvelle économie relationnelles Nouvelles questions + nouveaux résultats Les 4V du BIG DATA: VOLUME, VELOCITY, VARIABILITY, AND VARIETY
  11. 11. Cassandra Hadoop BackType MR/GFS SimpleDB Hive Oozie Hadoop Bigtable Dynamo Scribe PigLatin Pig HBase Dremel EC2/EMR/S3 Hadoop … Cassandra … … [ Isotope | Azure | Excel | BI | SQL DW] L'écosystème BigData Scalable machine learning and data mining [Mahout] Statistical modeling and analysis [R] Coordination and workflow [Oozie, Cascading] Data integration and transformation [SQOOP, Flume] Social network analytics and petascale graph learning [Pegasus] Real-time stream analytics and business intelligence merged with petascale computation [Storm/BackType] Scale-out caching and storage [Cassandra, HBase, Riak, Redis, Couchbase, S3] Cloud-oriented data warehousing, pattern discovery, and transformation [Hive, Pig]
  12. 12. Hadoop (Wikipedia) Hadoop est un framework Java libre destiné aux applications distribuées et à la gestion intensive des données. Il permet aux applications de travailler avec des milliers de nœuds et des pétaoctets de données. Source : http://fr.wikipedia.org/wiki/Hadoop
  13. 13. Relationel ou MapReduce ? Traditional RDBMS MapReduce Data Size Des Megabytes aux Terabytes Des Gigabytes aux Petabytes Access Interactive and Batch Batch Updates Read / Write many times Write once, Read many times Structure Static Schema Dynamic Schema Integrity High (ACID) Low Scaling Nonlinear Linear Reference: Tom White’s Hadoop: The Definitive Guide
  14. 14. L'architecture d'Hadoop Task Task tracker tracker Map Reduce Job Layer tracker HDFS Name Layer node Data Data node node Reference: http://en.wikipedia.org/wiki/File:Hadoop_1.png
  15. 15. Positionnement d'Hadoop en entreprise HADOOP [Azure and Enterprise] Java OM Streaming OM HiveQL PigLatin .NET/C#/F# (T)SQL OCEAN OF DATA NOSQL [unstructured, semi-structured, structured] ETL HDFS EIS / ERP RDBMS File System OData [RSS] Azure Storage
  16. 16. COMPTONS LES MOTS
  17. 17. Exemple: comptage de mots Map:  Pour chaque mot trouvé  Émettre <<le mot>>, 1 Shuffle (magiquement géré par le Framework) Reduce  Pour toutes les occurrences reçues clef, valeur (même clef)  Comptage += valeur  Émettre clef, comptage
  18. 18. En Linq … et pour la montée en charge?
  19. 19. Map/Reduce: principe Extrait de « Hadoop Tutorial from Yahoo!" (Yahoo! Inc.) / CC BY 3.0 »
  20. 20. Map/Reduce - JavaScript
  21. 21. Map/Reduce - Java
  22. 22. Map/Reduce – C#
  23. 23. Et sur quelles machines ?
  24. 24. Démo - JavaScript distcp HDFS Sort/filter JavaScript M/R from("books") Azure Storage .mapReduce("file.js", "word, count:long") .orderBy("count DESC") .take(10) .to("top10") HDFS File Graph.bar(data) Azure Storage Excel SQL Server HIVE ODBC Driver HIVE ODBC Driver SQOOP
  25. 25. Démo Comptons les mots
  26. 26. Au-delà de Map Reduce Map Reduce représente le noyau des traitement  Vocabulaire élémentaire de traitement  Très simple - Trop simple ?  Un algorithme nécessite beaucoup de phases de map/reduce Besoin d'exprimer des jobs MR à plus haut niveau:  Expression d'une série de traitements (flux de données)  Plus proche d'une expression familière  Pseudo SQL : Hive  Dataflow impératif : Pig Latin
  27. 27. PIG LATIN records = LOAD 'avs://input/ncdc/micro-tab/sample.txt' AS (year:chararray, temperature:int, quality:int); filtered_records = FILTER records BY temperature != 9999 AND (quality == 0 OR quality == 1 OR quality == 4 OR quality == 5 OR quality == 9); grouped_records = GROUP filtered_records BY year; max_temp = FOREACH grouped_records GENERATE group, MAX(filtered_records.temperature); STORE max_temp INTO 'avs://temperatures' USING PigStorage();
  28. 28. PIG LATIN - Opérateurs Les opérateurs LOAD FILTER GROUP / COGROUP JOIN CROSS UNION SORT FOREACH...GENERATE
  29. 29. PIG Définition de fonctions utilisateur (UDF)  Traitement spécifique  Exprimable en Java/Python/Javascript  Extensibilité du langage Caractéristiques  Moins rapide que Map/Reduce  Beaucoup moins de code  "Modèle mental" moins tordu  Les performances s'améliorent à chaque release
  30. 30. Autres langages Cascalog  DSL basé sur Clojure  Unifié (un seul langage pour les scripts et les UDF)  Bien plus expressif que Pig  Coût d'entrée assez élevé (fonctionnel, et Clojure...)
  31. 31. Au-delà de Map Reduce Map Reduce représente le noyau des traitement  Vocabulaire élémentaire de traitement  Très simple - Trop simple ?  Un algorithme nécessite beaucoup de phases de map/reduce Besoin d'exprimer des jobs MR à plus haut niveau:  Expression d'une série de traitements (flux de données)  Plus proche d'une expression familière  Pseudo SQL : Hive  Dataflow impératif : Pig Latin
  32. 32. Optimiser un job MR Adapter vos données au traitement  Pré traitement / post traitement  Filtrer en amont  Cascade de traitements Compression  Arbitrer entre IO disque et réseau / CPU  Plusieurs algorithmes disponibles  gzip, lzo, bzip2 Compresser comment ?  Les données en entrée et sortie (coût de stockage moindre)
  33. 33. Optimiser un job MR Gestion de la mémoire  Hadoop sait travailler en mémoire et fichier …mais il vaut mieux limiter le spilling Map: limiter le nombre de spills lors du tri Reduce : favoriser le traitement en mémoire Comme toujours pour l’analyse de performances: …Mesurer Modifier Itérer…
  34. 34. Schéma de la démo
  35. 35. Mahout Explication de la démarche Explication de l'algorithme  Critères globaux
  36. 36. Lien Hadoop vers BI MS Résultat dans Hive et lecture  Dans Excel  Dans SSIS Excel Hive Connector Lien avec SQL Server
  37. 37. Démo
  38. 38. Optimisations / Best Practices Idem relationnel (index par exemple) Bien comprendre la "forme" des données  Simple beaucoup de données  Complexe sur peu de données
  39. 39. Ecosystème au dessus d'Hadoop Lucene sur Hadoop Hbase Mahout …
  40. 40. Livre sur Windows Azure Premier ouvrage rédigé en Français Sur l’intégralité de la plateforme Windows Azure Disponible dès aujourd’hui! Consultation et achat possible sur le stand (52) des éditions ENI
  41. 41. Des ressources Windows Azure gratuites Testez Windows Azure Abonnés MSDN, vous gratuitement pendant bénéficiez de 90 jours Windows Azure  http://aka.ms/  http://aka.ms/ tester-azure-90j activer-azure-msdn
  42. 42. Pour aller plus loin Prochaines sessions des Dev Camps Chaque semaine, les 10 Live Open Data - Développer des applications riches avec le février DevCamps 2012 16 Meeting protocole Open Data ALM, Azure, Windows Phone, HTML5, OpenData février Live Meeting Azure series - Développer des applications sociales sur la plateforme Windows Azure 2012 http://msdn.microsoft.com/fr-fr/devcamp 17 Live Comprendre le canvas avec Galactic et la librairie février Meeting three.js 2012 Téléchargement, ressources 21 février Live La production automatisée de code avec CodeFluent Meeting Entities et toolkits : RdV sur MSDN 2012 2 mars Live Comprendre et mettre en oeuvre le toolkit Azure pour http://msdn.microsoft.com/fr-fr/ 2012 Meeting Windows Phone 7, iOS et Android 6 mars Live Nuget et ALM 2012 Meeting Les offres à connaître 9 mars 2012 Live Meeting Kinect - Bien gérer la vie de son capteur 90 jours d’essai gratuit de Windows 13 mars 2012 Live Meeting Sharepoint series - Automatisation des tests Azure 14 mars Live TFS Health Check - vérifier la bonne santé de votre www.windowsazure.fr 2012 Meeting plateforme de développement 15 mars Live Azure series - Développer pour les téléphones, les 2012 Meeting tablettes et le cloud avec Visual Studio 2010 Jusqu’à 35% de réduction sur Visual 16 mars Live Applications METRO design - Désossage en règle d'un Studio Pro, avec l’abonnement MSDN 2012 Meeting template METRO javascript 20 mars Live Retour d'expérience LightSwitch, Optimisation de www.visualstudio.fr 2012 Meeting l'accès aux données, Intégration Silverlight 23 mars Live OAuth - la clé de l'utilisation des réseaux sociaux dans 2012 Meeting votre application
  43. 43. Q&R http://aka.ms/benjguinhadoop http://blogs.msdn.com/windowsazurefrance

Notes de l'éditeur

  • Much of that data is in traditional databases and data warehouses, and those kinds of data – product orders, new customer records, etc. – grow at a more linear rate. What’s driving the exponential growth is often less structured data. This is in the form of log files, images, video, sensor or device output, and public data. Much of this data never makes it into a relational database, and the technologies used to process this kind of data go by the names “Data Intensive Scalable Computing”, “Large Scale Data Analytics”, or the more trendy term “Big Data”.In the past, much of this kind of data was simply archived, or even thrown out after a relatively short time. But now, it’s economically feasible to not only store, but process and gain insight from this kind of data.Increasing Data VolumesAccording to Gartner, the current annual growth of WW information volume is 59% and continues to rise.  This data explosion is being driven by the full range of traditional and non-traditional sources like sensors, devices, bots and crawlers.  According to an IDC report, the volume of digital records is forecasted to hit 1.2M Zetabytes (1021 bytes) this year – and predicted to grow 44x over the next decade.   Increasing Data ComplexityHistorically, the data has been largely structured in type; however the real growth is coming from non-structured data.  The success of search engine providers and e-retailers who unlocked the value of click-stream data has debunked the myth that 80% of unstructured data has no value.  The requirement to analyze and mine unstructured and structured data together is increasingly on the agenda for many enterprises today.  Increasing Analysis ComplexityIncreasing analysis complexity comes hand in hand with Increased Data Complexity.  For example, image processing for facial recognition, search engine classification of videos and use of click-stream data for behavioral analytics.  Models for transactional data are mature and well understood and have driven the value behind the last two decades of Data Warehousing and BI.  The models governing complex data and behavioral interactions are in their infancy.   Increasing Demand for New InsightsDespite the growth in useful information, we also know that the number of users in an organization who have access to Business Intelligence tools and capabilities is less than 20%.  This fact combined with the real time nature of data is given rise to demand for real-time and predictive analytics by an increasingly larger user population.  Changing EconomicsCloud computing and commodity hardware have radically reduced the acquisition cost of computational and storage capacity. The decreasing cost of distributed compute, memory and storage is fundamentally changing the economics of data processing.  The rise of the Data Warehouse appliance has more than halved the cost per terabyte of EDW systems over the past 3yrs.  Cloud Data Warehouse systems hold the promise of a 10x TCO advantage over traditional on-premises systems. Emerging TechnologiesEasy to scale commodity hardware is being complimented by new distributed parallel processing frameworks and tools, which combined are providing a rich and inexpensive platform for tackling massive data processing tasks.  MapReduce style programming models are enabling new types of analytics that were not practical or possible with SQL.    The maturity and commercialization of several open source software products has paved the way for their inclusion in product evaluations for larger scale software projects. The cloud model puts another layer of abstraction between the user and the infrastructure and application platform layer further reducing barriers to adoption of technologies like Hadoop.
  • http://nosql.mypopescu.com/post/9621746531/a-definition-of-big-dataKEY POINT: Hadoop is part of the solution -
  • Hadoop is an AND, not an OR. But it requires a certain philosophy that MSFT has not historically embraced. A key benefit of Hadoop is the large, vibrant open source community around it. To succeed, Microsoft needs to not only acknowledge but thrive in this community.(1/3 des employé font de l&apos;Haddop)(1/3 des employés font de l&apos;Hadoop)Historiquement Google est a l&apos;initiative de ce type de traitement
  • BIG self service BIBillions+ of data itemsUnstructured, semi-structured, log dataReal-time feedsNew analysis types leveraging large server clusters Leverage the Hadoop ecosystem and ride its momentumIW centric designGive business users direct access to the Big Data storeDeliver IW-centric experiences optimized for unstructured and semi-structured queriesCreate, enrich, visualize and share big data sets through fun and immersive experiencesDo it all in the tool they already use - ExcelIncrease the number of questions, reduce the cost of exploratory mining to zeroLeverage new class of analytics and visualizationEnable new types of questions with new types of data and visualizationsLeverage analysis of text, sentiment, clickstream, time windows, classification, clusteringVisualize big data in impactful ways: tag clouds, graphs, timelines, tree maps, etc. Natural extension of our BI platformMaintain a consistent semantic model, consistent expression languageProvide an iterative, experimental, business-driven workflow from the desktop to the Big Data clusterBuild on existing IW skills with the Microsoft BI platform (Excel, PowerPivot, Crescent)Optimized for cloudIntegrate with Azure DataMarket to connect to Bing and other public data sourcesHost big data sets on Azure , integrated with MyDataLeverage Isotope to run analytics clusters
  • Isotope is the all-up effort around Microsoft and Hadoop. It includes several components:A full distribution of Apache Hadoop that runs on standard windows hardware.A full version of Apache Hadoop that runs on the Azure cloudConnectors from Hadoop (any Hadoop, not just Microsoft’s) to Microsoft’s key products – SQL, Excel, PDW, etc.Jscript shell for live scripting of Hadoop from the browserAdmin, monitoring, and authoring tools to make Microsoft Hadoop best-in-class
  • privatestaticvoidCountTopNWords() { string sourceContent = null;Console.WriteLine(&quot;Reading source file...&quot;);using (Stream sourceStream = WebRequest.Create(context.sourceFileUrl) .GetResponse().GetResponseStream()) { using (var reader = new StreamReader(sourceStream)) {sourceContent = reader.ReadToEnd(); } } string[] words = Regex.Split(sourceContent.ToLower(), &quot;[^a-zàäâéèëêïîöôùüûç]&quot;); var result = words .Where(x =&gt; x.Length &gt; 5) .GroupBy(x =&gt; x) .Select(x =&gt; new {word = x.Key, nb = x.Count()}) .OrderByDescending(x =&gt; x.nb) .Take(context.NbOfWords);Console.OutputEncoding = Encoding.UTF8;foreach(var r in result) {Console.WriteLine(&quot;{0}\\t\\t{1}&quot;, r.word, r.nb); } }

×