BigTable et NoSQLInspiré par Google, destiné à tous 6/12/2011                           Michaël Figuière
Speaker      @mfiguiere      blog.xebia.fr      Michaël Figuière           Distributed                                 Arch...
Le stockage de donnée chez Google
Au commencement...
L’évolution du stockage chez Google• Stockage et traitement de données en masse pour la recherche         GFS et MapReduce...
Architecture du stockage Google                                               DSL pour le traitement                      ...
La galaxie Hadoop
Hadoop                                                      Projets Apache                                                ...
MapReduce
MapReduce     Fragment    Map       Fragment    Map       HDFS     Reduce       HDFS     Reduce   Instance 1            In...
MapReduce         Au sein de MapReduce tout est         manipulé en tant que clé-valeur  HDFS   Adaptateur               A...
MapReduce                         Trie les données par clé Split_1   Map      Out_1 Split_2   Map      Out_2           Mer...
Exemple avec MapReduce public void map(LongWritable key, Text value, ...    String line = value.toString();    StringToken...
Pig• Pig apporte une abstraction au dessus de MapReduce        Pour une meilleure productivité• Langage familier de SQL   ...
Exemple avec Pighour_frequency2 = FOREACH hour_frequency1 GENERATE flatten($0), COUNT($1) ascount;uniq_frequency1 = GROUP ...
HDFS
HDFS       HDFS                                     NameNode       Client                                                R...
Ecriture avec HDFS      HDFS                                    NameNode      Client      DataNode        DataNode      Da...
Ecriture avec HDFS      HDFS                                   NameNode      Client                 Ecriture des          ...
Ecriture avec HDFS      HDFS                            NameNode      Client                                       Ecritur...
Lecture avec HDFS     HDFS                           NameNode     Client     DataNode   DataNode   DataNode
Lecture avec HDFS     HDFS                           NameNode     Client                                      Obtention de...
Lecture avec HDFS     HDFS                             NameNode     Client     DataNode   DataNode     DataNode           ...
Lecture avec HDFS     HDFS                           NameNode     Client     DataNode   DataNode   DataNode               ...
HBase
Le modèle en famille de colonnes    A chaque ID de ligne correspond     une liste de couples clé-valeur          BDD relat...
Exemple avec un panier d’achat   johndoe     17:21   Iphone        17:32   DVD Player     17:44     MacBook   willsmith   ...
HBase• Utilise le modèle orientée colonne de Google BigTable         Modélisation délicate ...• Basé sur HDFS, scalabilité...
Architecture HBase        Master                         ZooKeeper        RegionServer   RegionServer   RegionServer      ...
Ecriture append-only de HBase         MemTable RAM HDFS           Log              SSTable
HBase• Utilise le modèle orientée colonne de Google BigTable         Modélisation délicate ...• Basé sur HDFS, scalabilité...
Quelques cas d’usage
Online Business Intelligence avec Hadoop / HBase                   Stockage des                 informations en           ...
Recommandations Amazon         Amazon récolte l’ensemble des clics        utilisateurs dans Dynamo et génère des     recom...
Google Analytics      Google Analyticss’appuie sur BigTable  pour le stockage et    l’analyse des clicsutilisateurs en tem...
Intérêt pour les entreprises• Rapprochement du BI et des applications         Stockage commun• Rationalisation du budget l...
Questions / Réponses                       ?                   @mfiguiere                   blog.xebia.fr
Upcoming SlideShare
Loading in...5
×

GTUG Nantes (Dec 2011) - BigTable et NoSQL

1,134

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,134
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
19
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

GTUG Nantes (Dec 2011) - BigTable et NoSQL

  1. 1. BigTable et NoSQLInspiré par Google, destiné à tous 6/12/2011 Michaël Figuière
  2. 2. Speaker @mfiguiere blog.xebia.fr Michaël Figuière Distributed Architectures NoSQLSearch Engines
  3. 3. Le stockage de donnée chez Google
  4. 4. Au commencement...
  5. 5. L’évolution du stockage chez Google• Stockage et traitement de données en masse pour la recherche GFS et MapReduce• Stockage structuré BigTable• Requêtes plus complexes et réplication multi-datacenter MegaStore
  6. 6. Architecture du stockage Google DSL pour le traitement API Java de haut niveau MegaStore Sawzall FlumeJava BigTable MapReduce Chubby GFS Traitement Consensus distribué distribué
  7. 7. La galaxie Hadoop
  8. 8. Hadoop Projets Apache basés sur Hadoop Application HBase Hive Pig Mahout Hadoop ZooKeeper HDFS MapReduce
  9. 9. MapReduce
  10. 10. MapReduce Fragment Map Fragment Map HDFS Reduce HDFS Reduce Instance 1 Instance 3 Fragment Map Fragment Map HDFS Reduce HDFS Reduce Instance 2 Instance 4 Les traitements et les données sont co-localisés
  11. 11. MapReduce Au sein de MapReduce tout est manipulé en tant que clé-valeur HDFS Adaptateur Adaptateur HDFS MapReduce
  12. 12. MapReduce Trie les données par clé Split_1 Map Out_1 Split_2 Map Out_2 Merge Reduce Out Vers HDFS Split_3 Map Out_3 Le traitement peut être réparti sur autant Depuis HDFS d’instances que nécessaire !
  13. 13. Exemple avec MapReduce public void map(LongWritable key, Text value, ... String line = value.toString(); StringTokenizer tokenizer = new StringTokenizer(line); while (tokenizer.hasMoreTokens()) { String word = tokenizer.nextToken(); output.collect(word, 1); } } public void reduce(Text key, Iterator<IntWritable> values, ... int sum = 0; while (values.hasNext()) { sum += values.next().get(); } output.collect(key, new IntWritable(sum)); }
  14. 14. Pig• Pig apporte une abstraction au dessus de MapReduce Pour une meilleure productivité• Langage familier de SQL Facile à lire, mais apprentissage pour l’écrire• Convertit chaque opération en MapReduce Fonctionnement distribué
  15. 15. Exemple avec Pighour_frequency2 = FOREACH hour_frequency1 GENERATE flatten($0), COUNT($1) ascount;uniq_frequency1 = GROUP hour_frequency2 BY group::ngram;filtered_uniq_frequency = FILTER uniq_frequency3 BY score > 2.0;STORE ordered_uniq_frequency INTO /tmp/tutorial-results USING PigStorage();same = JOIN hour00 BY $0, hour12 BY $0;
  16. 16. HDFS
  17. 17. HDFS HDFS NameNode Client Registre des blocs HDFS DataNode DataNode DataNode Contient les données
  18. 18. Ecriture avec HDFS HDFS NameNode Client DataNode DataNode DataNode Les DataNodes forment un pipeline d’écriture
  19. 19. Ecriture avec HDFS HDFS NameNode Client Ecriture des données validée DataNode DataNode DataNode
  20. 20. Ecriture avec HDFS HDFS NameNode Client Ecriture des emplacements DataNode DataNode DataNode
  21. 21. Lecture avec HDFS HDFS NameNode Client DataNode DataNode DataNode
  22. 22. Lecture avec HDFS HDFS NameNode Client Obtention des emplacements DataNode DataNode DataNode
  23. 23. Lecture avec HDFS HDFS NameNode Client DataNode DataNode DataNode Lecture du premier bloc de données
  24. 24. Lecture avec HDFS HDFS NameNode Client DataNode DataNode DataNode Les données à lire peuvent êtres sur plusieurs blocs
  25. 25. HBase
  26. 26. Le modèle en famille de colonnes A chaque ID de ligne correspond une liste de couples clé-valeur BDD relationnelle BDD orientée colonnes
  27. 27. Exemple avec un panier d’achat johndoe 17:21 Iphone 17:32 DVD Player 17:44 MacBook willsmith 6:10 Camera 8:29 Ipad pitdavis 14:45 PlayStation 15:01 Asus EEE 15:03 Iphone Famille de colonnes
  28. 28. HBase• Utilise le modèle orientée colonne de Google BigTable Modélisation délicate ...• Basé sur HDFS, scalabilité horizontale linéaire Jusqu’à plusieurs milliers de serveurs• Tolérance aux pannes Panne d’un serveur, d’un data-center...
  29. 29. Architecture HBase Master ZooKeeper RegionServer RegionServer RegionServer HDFS
  30. 30. Ecriture append-only de HBase MemTable RAM HDFS Log SSTable
  31. 31. HBase• Utilise le modèle orientée colonne de Google BigTable Modélisation délicate ...• Basé sur HDFS, scalabilité horizontale linéaire Jusqu’à plusieurs milliers de serveurs• Tolérance aux pannes Panne d’un serveur, d’un data-center...
  32. 32. Quelques cas d’usage
  33. 33. Online Business Intelligence avec Hadoop / HBase Stockage des informations en Traitement batch production distribué Application HBase Hadoop Exploitation Stockage des résultats des résultats
  34. 34. Recommandations Amazon Amazon récolte l’ensemble des clics utilisateurs dans Dynamo et génère des recommandations par analyse de ces données
  35. 35. Google Analytics Google Analyticss’appuie sur BigTable pour le stockage et l’analyse des clicsutilisateurs en temps réel
  36. 36. Intérêt pour les entreprises• Rapprochement du BI et des applications Stockage commun• Rationalisation du budget licences NoSQL (presque) = OpenSource• La possibilité crée le besoin Ouverture vers de nouveaux use-cases
  37. 37. Questions / Réponses ? @mfiguiere blog.xebia.fr
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×