Your SlideShare is downloading. ×
Gtug nantes   big table et nosql
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Gtug nantes big table et nosql

985

Published on

Présentation par Michael Figuere de la soirée NoSQL au Nantes GTUG

Présentation par Michael Figuere de la soirée NoSQL au Nantes GTUG

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
985
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
34
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. BigTable et NoSQLInspiré par Google, destiné à tous 6/12/2011 Michaël Figuière
  • 2. Speaker @mfiguiere blog.xebia.fr Michaël Figuière Distributed Architectures NoSQLSearch Engines
  • 3. Le stockage de donnée chez Google
  • 4. Au commencement...
  • 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. 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. La galaxie Hadoop
  • 8. Hadoop Projets Apache basés sur Hadoop Application HBase Hive Pig Mahout Hadoop ZooKeeper HDFS MapReduce
  • 9. MapReduce
  • 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. MapReduce Au sein de MapReduce tout est manipulé en tant que clé-valeur HDFS Adaptateur Adaptateur HDFS MapReduce
  • 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. 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. 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. 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. HDFS
  • 17. HDFS HDFS NameNode Client Registre des blocs HDFS DataNode DataNode DataNode Contient les données
  • 18. Ecriture avec HDFS HDFS NameNode Client DataNode DataNode DataNode Les DataNodes forment un pipeline d’écriture
  • 19. Ecriture avec HDFS HDFS NameNode Client Ecriture des données validée DataNode DataNode DataNode
  • 20. Ecriture avec HDFS HDFS NameNode Client Ecriture des emplacements DataNode DataNode DataNode
  • 21. Lecture avec HDFS HDFS NameNode Client DataNode DataNode DataNode
  • 22. Lecture avec HDFS HDFS NameNode Client Obtention des emplacements DataNode DataNode DataNode
  • 23. Lecture avec HDFS HDFS NameNode Client DataNode DataNode DataNode Lecture du premier bloc de données
  • 24. Lecture avec HDFS HDFS NameNode Client DataNode DataNode DataNode Les données à lire peuvent êtres sur plusieurs blocs
  • 25. HBase
  • 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. 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. 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. Architecture HBase Master ZooKeeper RegionServer RegionServer RegionServer HDFS
  • 30. Ecriture append-only de HBase MemTable RAM HDFS Log SSTable
  • 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. Quelques cas d’usage
  • 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. 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. Google Analytics Google Analyticss’appuie sur BigTable pour le stockage et l’analyse des clicsutilisateurs en temps réel
  • 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. Questions / Réponses ? @mfiguiere blog.xebia.fr

×