• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
GTUG Nantes (Dec 2011) - BigTable et NoSQL
 

GTUG Nantes (Dec 2011) - BigTable et NoSQL

on

  • 1,327 views

 

Statistics

Views

Total Views
1,327
Views on SlideShare
1,323
Embed Views
4

Actions

Likes
0
Downloads
17
Comments
0

2 Embeds 4

http://a0.twimg.com 2
http://paper.li 2

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    GTUG Nantes (Dec 2011) - BigTable et NoSQL GTUG Nantes (Dec 2011) - BigTable et NoSQL Presentation Transcript

    • BigTable et NoSQLInspiré par Google, destiné à tous 6/12/2011 Michaël Figuière
    • Speaker @mfiguiere blog.xebia.fr Michaël Figuière Distributed Architectures NoSQLSearch Engines
    • 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• Stockage structuré BigTable• Requêtes plus complexes et réplication multi-datacenter MegaStore
    • Architecture du stockage Google DSL pour le traitement API Java de haut niveau MegaStore Sawzall FlumeJava BigTable MapReduce Chubby GFS Traitement Consensus distribué distribué
    • La galaxie Hadoop
    • Hadoop Projets Apache basés sur Hadoop Application HBase Hive Pig Mahout Hadoop ZooKeeper HDFS MapReduce
    • MapReduce
    • 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
    • MapReduce Au sein de MapReduce tout est manipulé en tant que clé-valeur HDFS Adaptateur Adaptateur HDFS MapReduce
    • 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 !
    • 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)); }
    • 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é
    • 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;
    • HDFS
    • HDFS HDFS NameNode Client Registre des blocs HDFS DataNode DataNode DataNode Contient les données
    • Ecriture avec HDFS HDFS NameNode Client DataNode DataNode DataNode Les DataNodes forment un pipeline d’écriture
    • Ecriture avec HDFS HDFS NameNode Client Ecriture des données validée DataNode DataNode DataNode
    • Ecriture avec HDFS HDFS NameNode Client Ecriture des emplacements DataNode DataNode DataNode
    • Lecture avec HDFS HDFS NameNode Client DataNode DataNode DataNode
    • Lecture avec HDFS HDFS NameNode Client Obtention des emplacements DataNode DataNode DataNode
    • Lecture avec HDFS HDFS NameNode Client DataNode DataNode DataNode Lecture du premier bloc de données
    • Lecture avec HDFS HDFS NameNode Client DataNode DataNode DataNode Les données à lire peuvent êtres sur plusieurs blocs
    • HBase
    • 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
    • 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
    • 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...
    • Architecture HBase Master ZooKeeper RegionServer RegionServer RegionServer HDFS
    • 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é horizontale linéaire Jusqu’à plusieurs milliers de serveurs• Tolérance aux pannes Panne d’un serveur, d’un data-center...
    • Quelques cas d’usage
    • 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
    • Recommandations Amazon Amazon récolte l’ensemble des clics utilisateurs dans Dynamo et génère des recommandations par analyse de ces données
    • Google Analytics Google Analyticss’appuie sur BigTable pour le stockage et l’analyse des clicsutilisateurs en temps réel
    • 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
    • Questions / Réponses ? @mfiguiere blog.xebia.fr