SlideShare une entreprise Scribd logo
1  sur  37
Télécharger pour lire hors ligne
BigTable et NoSQL
Inspiré par Google, destiné à tous




 6/12/2011                           Michaël Figuière
Speaker

      @mfiguiere
      blog.xebia.fr



      Michaël Figuière           Distributed
                                 Architectures

                         NoSQL
Search 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 Pig


hour_frequency2 = FOREACH hour_frequency1 GENERATE flatten($0), COUNT($1) as
count;


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 Analytics
s’appuie sur BigTable
  pour le stockage et
    l’analyse des clics
utilisateurs 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

Contenu connexe

Tendances

Hadoop and friends : introduction
Hadoop and friends : introductionHadoop and friends : introduction
Hadoop and friends : introductionfredcons
 
Cours Big Data Chap5
Cours Big Data Chap5Cours Big Data Chap5
Cours Big Data Chap5Amal Abid
 
Petit-déjeuner MapReduce-La révolution dans l’analyse des BigData
Petit-déjeuner MapReduce-La révolution dans l’analyse des BigDataPetit-déjeuner MapReduce-La révolution dans l’analyse des BigData
Petit-déjeuner MapReduce-La révolution dans l’analyse des BigDataMarc Bojoly
 
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introNosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introOlivier Mallassi
 
Hadoop Hbase - Introduction
Hadoop Hbase - IntroductionHadoop Hbase - Introduction
Hadoop Hbase - IntroductionBlandine Larbret
 
Plateforme bigdata orientée BI avec Hortoworks Data Platform et Apache Spark
Plateforme bigdata orientée BI avec Hortoworks Data Platform et Apache SparkPlateforme bigdata orientée BI avec Hortoworks Data Platform et Apache Spark
Plateforme bigdata orientée BI avec Hortoworks Data Platform et Apache SparkALTIC Altic
 
BigData_Chp4: NOSQL
BigData_Chp4: NOSQLBigData_Chp4: NOSQL
BigData_Chp4: NOSQLLilia Sfaxi
 
BigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceBigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceLilia Sfaxi
 
Hadoop MapReduce - OSDC FR 2009
Hadoop MapReduce - OSDC FR 2009Hadoop MapReduce - OSDC FR 2009
Hadoop MapReduce - OSDC FR 2009Olivier Grisel
 
Introduction aux bases de données NoSQL
Introduction aux bases de données NoSQLIntroduction aux bases de données NoSQL
Introduction aux bases de données NoSQLAntoine Augusti
 
Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop
Casablanca Hadoop & Big Data Meetup - Introduction à HadoopCasablanca Hadoop & Big Data Meetup - Introduction à Hadoop
Casablanca Hadoop & Big Data Meetup - Introduction à HadoopBenoît de CHATEAUVIEUX
 
Hadoop et son écosystème
Hadoop et son écosystèmeHadoop et son écosystème
Hadoop et son écosystèmeKhanh Maudoux
 
NoSQL User Group Paris - 21 Juin 2011 - GigaSpaces
NoSQL User Group Paris - 21 Juin 2011 - GigaSpacesNoSQL User Group Paris - 21 Juin 2011 - GigaSpaces
NoSQL User Group Paris - 21 Juin 2011 - GigaSpacesFastConnect
 
Bases de Données non relationnelles, NoSQL (Introduction) 1er cours
Bases de Données non relationnelles, NoSQL (Introduction) 1er coursBases de Données non relationnelles, NoSQL (Introduction) 1er cours
Bases de Données non relationnelles, NoSQL (Introduction) 1er coursHatim CHAHDI
 
Hadoop Introduction in Paris
Hadoop Introduction in ParisHadoop Introduction in Paris
Hadoop Introduction in ParisTed Drake
 
Big data: NoSQL comme solution
Big data: NoSQL comme solutionBig data: NoSQL comme solution
Big data: NoSQL comme solutionJEMLI Fathi
 
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...Hatim CHAHDI
 

Tendances (19)

Hadoop and friends : introduction
Hadoop and friends : introductionHadoop and friends : introduction
Hadoop and friends : introduction
 
Cours Big Data Chap5
Cours Big Data Chap5Cours Big Data Chap5
Cours Big Data Chap5
 
Petit-déjeuner MapReduce-La révolution dans l’analyse des BigData
Petit-déjeuner MapReduce-La révolution dans l’analyse des BigDataPetit-déjeuner MapReduce-La révolution dans l’analyse des BigData
Petit-déjeuner MapReduce-La révolution dans l’analyse des BigData
 
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introNosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
 
Hadoop Hbase - Introduction
Hadoop Hbase - IntroductionHadoop Hbase - Introduction
Hadoop Hbase - Introduction
 
Plateforme bigdata orientée BI avec Hortoworks Data Platform et Apache Spark
Plateforme bigdata orientée BI avec Hortoworks Data Platform et Apache SparkPlateforme bigdata orientée BI avec Hortoworks Data Platform et Apache Spark
Plateforme bigdata orientée BI avec Hortoworks Data Platform et Apache Spark
 
BigData_Chp4: NOSQL
BigData_Chp4: NOSQLBigData_Chp4: NOSQL
BigData_Chp4: NOSQL
 
BigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceBigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-Reduce
 
Hadoop MapReduce - OSDC FR 2009
Hadoop MapReduce - OSDC FR 2009Hadoop MapReduce - OSDC FR 2009
Hadoop MapReduce - OSDC FR 2009
 
Introduction aux bases de données NoSQL
Introduction aux bases de données NoSQLIntroduction aux bases de données NoSQL
Introduction aux bases de données NoSQL
 
Tech day hadoop, Spark
Tech day hadoop, SparkTech day hadoop, Spark
Tech day hadoop, Spark
 
Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop
Casablanca Hadoop & Big Data Meetup - Introduction à HadoopCasablanca Hadoop & Big Data Meetup - Introduction à Hadoop
Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop
 
Presentation cassandra
Presentation cassandraPresentation cassandra
Presentation cassandra
 
Hadoop et son écosystème
Hadoop et son écosystèmeHadoop et son écosystème
Hadoop et son écosystème
 
NoSQL User Group Paris - 21 Juin 2011 - GigaSpaces
NoSQL User Group Paris - 21 Juin 2011 - GigaSpacesNoSQL User Group Paris - 21 Juin 2011 - GigaSpaces
NoSQL User Group Paris - 21 Juin 2011 - GigaSpaces
 
Bases de Données non relationnelles, NoSQL (Introduction) 1er cours
Bases de Données non relationnelles, NoSQL (Introduction) 1er coursBases de Données non relationnelles, NoSQL (Introduction) 1er cours
Bases de Données non relationnelles, NoSQL (Introduction) 1er cours
 
Hadoop Introduction in Paris
Hadoop Introduction in ParisHadoop Introduction in Paris
Hadoop Introduction in Paris
 
Big data: NoSQL comme solution
Big data: NoSQL comme solutionBig data: NoSQL comme solution
Big data: NoSQL comme solution
 
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
 

Similaire à GTUG Nantes (Dec 2011) - BigTable et NoSQL

Plongée dans la plateforme hadoop
Plongée dans la plateforme hadoopPlongée dans la plateforme hadoop
Plongée dans la plateforme hadooppkernevez
 
Big Data : SQL, NoSQL ? Pourquoi faire un choix ?
Big Data : SQL, NoSQL ? Pourquoi faire un choix ?Big Data : SQL, NoSQL ? Pourquoi faire un choix ?
Big Data : SQL, NoSQL ? Pourquoi faire un choix ?Microsoft Décideurs IT
 
Aqui hadoop draft
Aqui hadoop draftAqui hadoop draft
Aqui hadoop draftEric Papet
 
Bluestone - Panorama des solutions analytiques existantes
Bluestone - Panorama des solutions analytiques existantesBluestone - Panorama des solutions analytiques existantes
Bluestone - Panorama des solutions analytiques existantesBluestoneServices
 
Big Data Visualization PowerPoint Templates.pptx
Big Data Visualization PowerPoint Templates.pptxBig Data Visualization PowerPoint Templates.pptx
Big Data Visualization PowerPoint Templates.pptxKhadijaHaddaoui
 
Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )
Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )
Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )Hamza Ben Marzouk
 
Cy3902 formation-cloudera-developer-training-for-apache-hadoop
Cy3902 formation-cloudera-developer-training-for-apache-hadoopCy3902 formation-cloudera-developer-training-for-apache-hadoop
Cy3902 formation-cloudera-developer-training-for-apache-hadoopCERTyou Formation
 
Mathias Herberts fait le retour d'expérience Hadoop au Crédit Mutuel Arkéa
Mathias Herberts fait le retour d'expérience Hadoop au Crédit Mutuel ArkéaMathias Herberts fait le retour d'expérience Hadoop au Crédit Mutuel Arkéa
Mathias Herberts fait le retour d'expérience Hadoop au Crédit Mutuel ArkéaModern Data Stack France
 
Big Data, Hadoop & Spark
Big Data, Hadoop & SparkBig Data, Hadoop & Spark
Big Data, Hadoop & SparkAlexia Audevart
 
NOTES DE BIG DATA L 3 INFO DUS 2024.pptx
NOTES DE BIG DATA L 3 INFO DUS 2024.pptxNOTES DE BIG DATA L 3 INFO DUS 2024.pptx
NOTES DE BIG DATA L 3 INFO DUS 2024.pptxEddySHANGA
 
ch2-hadoop-L3-2023-4p (1).pdf
ch2-hadoop-L3-2023-4p (1).pdfch2-hadoop-L3-2023-4p (1).pdf
ch2-hadoop-L3-2023-4p (1).pdfsalmanakbi
 
10 big data hadoop
10 big data hadoop10 big data hadoop
10 big data hadoopPatrick Bury
 
10 big data hadoop
10 big data hadoop10 big data hadoop
10 big data hadoopPatrick Bury
 
Distributed programing (hadoop &amp;&amp; java) version finale.pptx
Distributed programing  (hadoop &amp;&amp; java) version finale.pptxDistributed programing  (hadoop &amp;&amp; java) version finale.pptx
Distributed programing (hadoop &amp;&amp; java) version finale.pptxAhmed rebai
 
JSS2014 – Hive ou la convergence entre datawarehouse et Big Data
JSS2014 – Hive ou la convergence entre datawarehouse et Big DataJSS2014 – Hive ou la convergence entre datawarehouse et Big Data
JSS2014 – Hive ou la convergence entre datawarehouse et Big DataGUSS
 

Similaire à GTUG Nantes (Dec 2011) - BigTable et NoSQL (20)

Hadoop
HadoopHadoop
Hadoop
 
Hadoop
HadoopHadoop
Hadoop
 
Plongée dans la plateforme hadoop
Plongée dans la plateforme hadoopPlongée dans la plateforme hadoop
Plongée dans la plateforme hadoop
 
Big Data : SQL, NoSQL ? Pourquoi faire un choix ?
Big Data : SQL, NoSQL ? Pourquoi faire un choix ?Big Data : SQL, NoSQL ? Pourquoi faire un choix ?
Big Data : SQL, NoSQL ? Pourquoi faire un choix ?
 
Aqui hadoop draft
Aqui hadoop draftAqui hadoop draft
Aqui hadoop draft
 
Bluestone - Panorama des solutions analytiques existantes
Bluestone - Panorama des solutions analytiques existantesBluestone - Panorama des solutions analytiques existantes
Bluestone - Panorama des solutions analytiques existantes
 
Big Data Visualization PowerPoint Templates.pptx
Big Data Visualization PowerPoint Templates.pptxBig Data Visualization PowerPoint Templates.pptx
Big Data Visualization PowerPoint Templates.pptx
 
Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )
Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )
Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )
 
Hadoop
HadoopHadoop
Hadoop
 
Cy3902 formation-cloudera-developer-training-for-apache-hadoop
Cy3902 formation-cloudera-developer-training-for-apache-hadoopCy3902 formation-cloudera-developer-training-for-apache-hadoop
Cy3902 formation-cloudera-developer-training-for-apache-hadoop
 
Mathias Herberts fait le retour d'expérience Hadoop au Crédit Mutuel Arkéa
Mathias Herberts fait le retour d'expérience Hadoop au Crédit Mutuel ArkéaMathias Herberts fait le retour d'expérience Hadoop au Crédit Mutuel Arkéa
Mathias Herberts fait le retour d'expérience Hadoop au Crédit Mutuel Arkéa
 
Big Data, Hadoop & Spark
Big Data, Hadoop & SparkBig Data, Hadoop & Spark
Big Data, Hadoop & Spark
 
NOTES DE BIG DATA L 3 INFO DUS 2024.pptx
NOTES DE BIG DATA L 3 INFO DUS 2024.pptxNOTES DE BIG DATA L 3 INFO DUS 2024.pptx
NOTES DE BIG DATA L 3 INFO DUS 2024.pptx
 
ch2-hadoop-L3-2023-4p (1).pdf
ch2-hadoop-L3-2023-4p (1).pdfch2-hadoop-L3-2023-4p (1).pdf
ch2-hadoop-L3-2023-4p (1).pdf
 
Chapitre 2 hadoop
Chapitre 2 hadoopChapitre 2 hadoop
Chapitre 2 hadoop
 
10 big data hadoop
10 big data hadoop10 big data hadoop
10 big data hadoop
 
10 big data hadoop
10 big data hadoop10 big data hadoop
10 big data hadoop
 
Hadoop
HadoopHadoop
Hadoop
 
Distributed programing (hadoop &amp;&amp; java) version finale.pptx
Distributed programing  (hadoop &amp;&amp; java) version finale.pptxDistributed programing  (hadoop &amp;&amp; java) version finale.pptx
Distributed programing (hadoop &amp;&amp; java) version finale.pptx
 
JSS2014 – Hive ou la convergence entre datawarehouse et Big Data
JSS2014 – Hive ou la convergence entre datawarehouse et Big DataJSS2014 – Hive ou la convergence entre datawarehouse et Big Data
JSS2014 – Hive ou la convergence entre datawarehouse et Big Data
 

Plus de Michaël Figuière

EclipseCon - Building an IDE for Apache Cassandra
EclipseCon - Building an IDE for Apache CassandraEclipseCon - Building an IDE for Apache Cassandra
EclipseCon - Building an IDE for Apache CassandraMichaël Figuière
 
Paris Cassandra Meetup - Cassandra for Developers
Paris Cassandra Meetup - Cassandra for DevelopersParis Cassandra Meetup - Cassandra for Developers
Paris Cassandra Meetup - Cassandra for DevelopersMichaël Figuière
 
YaJug - Cassandra for Java Developers
YaJug - Cassandra for Java DevelopersYaJug - Cassandra for Java Developers
YaJug - Cassandra for Java DevelopersMichaël Figuière
 
Geneva JUG - Cassandra for Java Developers
Geneva JUG - Cassandra for Java DevelopersGeneva JUG - Cassandra for Java Developers
Geneva JUG - Cassandra for Java DevelopersMichaël Figuière
 
Cassandra summit 2013 - DataStax Java Driver Unleashed!
Cassandra summit 2013 - DataStax Java Driver Unleashed!Cassandra summit 2013 - DataStax Java Driver Unleashed!
Cassandra summit 2013 - DataStax Java Driver Unleashed!Michaël Figuière
 
NYC* Tech Day - New Cassandra Drivers in Depth
NYC* Tech Day - New Cassandra Drivers in DepthNYC* Tech Day - New Cassandra Drivers in Depth
NYC* Tech Day - New Cassandra Drivers in DepthMichaël Figuière
 
Paris Cassandra Meetup - Overview of New Cassandra Drivers
Paris Cassandra Meetup - Overview of New Cassandra DriversParis Cassandra Meetup - Overview of New Cassandra Drivers
Paris Cassandra Meetup - Overview of New Cassandra DriversMichaël Figuière
 
ApacheCon Europe 2012 - Real Time Big Data in practice with Cassandra
ApacheCon Europe 2012 - Real Time Big Data in practice with CassandraApacheCon Europe 2012 - Real Time Big Data in practice with Cassandra
ApacheCon Europe 2012 - Real Time Big Data in practice with CassandraMichaël Figuière
 
NoSQL Matters 2012 - Real Time Big Data in practice with Cassandra
NoSQL Matters 2012 - Real Time Big Data in practice with CassandraNoSQL Matters 2012 - Real Time Big Data in practice with Cassandra
NoSQL Matters 2012 - Real Time Big Data in practice with CassandraMichaël Figuière
 
Duchess France (Nov 2011) - Atelier Apache Mahout
Duchess France (Nov 2011) - Atelier Apache MahoutDuchess France (Nov 2011) - Atelier Apache Mahout
Duchess France (Nov 2011) - Atelier Apache MahoutMichaël Figuière
 
JUG Summer Camp (Sep 2011) - Les applications et architectures d’entreprise d...
JUG Summer Camp (Sep 2011) - Les applications et architectures d’entreprise d...JUG Summer Camp (Sep 2011) - Les applications et architectures d’entreprise d...
JUG Summer Camp (Sep 2011) - Les applications et architectures d’entreprise d...Michaël Figuière
 
BreizhCamp (Jun 2011) - Haute disponibilité et élasticité avec Cassandra
BreizhCamp (Jun 2011) - Haute disponibilité et élasticité avec CassandraBreizhCamp (Jun 2011) - Haute disponibilité et élasticité avec Cassandra
BreizhCamp (Jun 2011) - Haute disponibilité et élasticité avec CassandraMichaël Figuière
 
Mix-IT (Apr 2011) - Intelligence Collective avec Apache Mahout
Mix-IT (Apr 2011) - Intelligence Collective avec Apache MahoutMix-IT (Apr 2011) - Intelligence Collective avec Apache Mahout
Mix-IT (Apr 2011) - Intelligence Collective avec Apache MahoutMichaël Figuière
 
Xebia Knowledge Exchange (mars 2011) - Machine Learning with Apache Mahout
Xebia Knowledge Exchange (mars 2011) - Machine Learning with Apache MahoutXebia Knowledge Exchange (mars 2011) - Machine Learning with Apache Mahout
Xebia Knowledge Exchange (mars 2011) - Machine Learning with Apache MahoutMichaël Figuière
 
Breizh JUG (mar 2011) - NoSQL : Des Grands du Web aux Entreprises
Breizh JUG (mar 2011) - NoSQL : Des Grands du Web aux EntreprisesBreizh JUG (mar 2011) - NoSQL : Des Grands du Web aux Entreprises
Breizh JUG (mar 2011) - NoSQL : Des Grands du Web aux EntreprisesMichaël Figuière
 
FOSDEM (feb 2011) - A real-time search engine with Lucene and S4
FOSDEM (feb 2011) -  A real-time search engine with Lucene and S4FOSDEM (feb 2011) -  A real-time search engine with Lucene and S4
FOSDEM (feb 2011) - A real-time search engine with Lucene and S4Michaël Figuière
 
Xebia Knowledge Exchange (feb 2011) - Large Scale Web Development
Xebia Knowledge Exchange (feb 2011) - Large Scale Web DevelopmentXebia Knowledge Exchange (feb 2011) - Large Scale Web Development
Xebia Knowledge Exchange (feb 2011) - Large Scale Web DevelopmentMichaël Figuière
 
Xebia Knowledge Exchange (jan 2011) - Trends in Enterprise Applications Archi...
Xebia Knowledge Exchange (jan 2011) - Trends in Enterprise Applications Archi...Xebia Knowledge Exchange (jan 2011) - Trends in Enterprise Applications Archi...
Xebia Knowledge Exchange (jan 2011) - Trends in Enterprise Applications Archi...Michaël Figuière
 
Lorraine JUG (dec 2010) - NoSQL, des grands du Web aux entreprises
Lorraine JUG (dec 2010) - NoSQL, des grands du Web aux entreprisesLorraine JUG (dec 2010) - NoSQL, des grands du Web aux entreprises
Lorraine JUG (dec 2010) - NoSQL, des grands du Web aux entreprisesMichaël Figuière
 

Plus de Michaël Figuière (20)

EclipseCon - Building an IDE for Apache Cassandra
EclipseCon - Building an IDE for Apache CassandraEclipseCon - Building an IDE for Apache Cassandra
EclipseCon - Building an IDE for Apache Cassandra
 
Paris Cassandra Meetup - Cassandra for Developers
Paris Cassandra Meetup - Cassandra for DevelopersParis Cassandra Meetup - Cassandra for Developers
Paris Cassandra Meetup - Cassandra for Developers
 
YaJug - Cassandra for Java Developers
YaJug - Cassandra for Java DevelopersYaJug - Cassandra for Java Developers
YaJug - Cassandra for Java Developers
 
Geneva JUG - Cassandra for Java Developers
Geneva JUG - Cassandra for Java DevelopersGeneva JUG - Cassandra for Java Developers
Geneva JUG - Cassandra for Java Developers
 
ChtiJUG - Cassandra 2.0
ChtiJUG - Cassandra 2.0ChtiJUG - Cassandra 2.0
ChtiJUG - Cassandra 2.0
 
Cassandra summit 2013 - DataStax Java Driver Unleashed!
Cassandra summit 2013 - DataStax Java Driver Unleashed!Cassandra summit 2013 - DataStax Java Driver Unleashed!
Cassandra summit 2013 - DataStax Java Driver Unleashed!
 
NYC* Tech Day - New Cassandra Drivers in Depth
NYC* Tech Day - New Cassandra Drivers in DepthNYC* Tech Day - New Cassandra Drivers in Depth
NYC* Tech Day - New Cassandra Drivers in Depth
 
Paris Cassandra Meetup - Overview of New Cassandra Drivers
Paris Cassandra Meetup - Overview of New Cassandra DriversParis Cassandra Meetup - Overview of New Cassandra Drivers
Paris Cassandra Meetup - Overview of New Cassandra Drivers
 
ApacheCon Europe 2012 - Real Time Big Data in practice with Cassandra
ApacheCon Europe 2012 - Real Time Big Data in practice with CassandraApacheCon Europe 2012 - Real Time Big Data in practice with Cassandra
ApacheCon Europe 2012 - Real Time Big Data in practice with Cassandra
 
NoSQL Matters 2012 - Real Time Big Data in practice with Cassandra
NoSQL Matters 2012 - Real Time Big Data in practice with CassandraNoSQL Matters 2012 - Real Time Big Data in practice with Cassandra
NoSQL Matters 2012 - Real Time Big Data in practice with Cassandra
 
Duchess France (Nov 2011) - Atelier Apache Mahout
Duchess France (Nov 2011) - Atelier Apache MahoutDuchess France (Nov 2011) - Atelier Apache Mahout
Duchess France (Nov 2011) - Atelier Apache Mahout
 
JUG Summer Camp (Sep 2011) - Les applications et architectures d’entreprise d...
JUG Summer Camp (Sep 2011) - Les applications et architectures d’entreprise d...JUG Summer Camp (Sep 2011) - Les applications et architectures d’entreprise d...
JUG Summer Camp (Sep 2011) - Les applications et architectures d’entreprise d...
 
BreizhCamp (Jun 2011) - Haute disponibilité et élasticité avec Cassandra
BreizhCamp (Jun 2011) - Haute disponibilité et élasticité avec CassandraBreizhCamp (Jun 2011) - Haute disponibilité et élasticité avec Cassandra
BreizhCamp (Jun 2011) - Haute disponibilité et élasticité avec Cassandra
 
Mix-IT (Apr 2011) - Intelligence Collective avec Apache Mahout
Mix-IT (Apr 2011) - Intelligence Collective avec Apache MahoutMix-IT (Apr 2011) - Intelligence Collective avec Apache Mahout
Mix-IT (Apr 2011) - Intelligence Collective avec Apache Mahout
 
Xebia Knowledge Exchange (mars 2011) - Machine Learning with Apache Mahout
Xebia Knowledge Exchange (mars 2011) - Machine Learning with Apache MahoutXebia Knowledge Exchange (mars 2011) - Machine Learning with Apache Mahout
Xebia Knowledge Exchange (mars 2011) - Machine Learning with Apache Mahout
 
Breizh JUG (mar 2011) - NoSQL : Des Grands du Web aux Entreprises
Breizh JUG (mar 2011) - NoSQL : Des Grands du Web aux EntreprisesBreizh JUG (mar 2011) - NoSQL : Des Grands du Web aux Entreprises
Breizh JUG (mar 2011) - NoSQL : Des Grands du Web aux Entreprises
 
FOSDEM (feb 2011) - A real-time search engine with Lucene and S4
FOSDEM (feb 2011) -  A real-time search engine with Lucene and S4FOSDEM (feb 2011) -  A real-time search engine with Lucene and S4
FOSDEM (feb 2011) - A real-time search engine with Lucene and S4
 
Xebia Knowledge Exchange (feb 2011) - Large Scale Web Development
Xebia Knowledge Exchange (feb 2011) - Large Scale Web DevelopmentXebia Knowledge Exchange (feb 2011) - Large Scale Web Development
Xebia Knowledge Exchange (feb 2011) - Large Scale Web Development
 
Xebia Knowledge Exchange (jan 2011) - Trends in Enterprise Applications Archi...
Xebia Knowledge Exchange (jan 2011) - Trends in Enterprise Applications Archi...Xebia Knowledge Exchange (jan 2011) - Trends in Enterprise Applications Archi...
Xebia Knowledge Exchange (jan 2011) - Trends in Enterprise Applications Archi...
 
Lorraine JUG (dec 2010) - NoSQL, des grands du Web aux entreprises
Lorraine JUG (dec 2010) - NoSQL, des grands du Web aux entreprisesLorraine JUG (dec 2010) - NoSQL, des grands du Web aux entreprises
Lorraine JUG (dec 2010) - NoSQL, des grands du Web aux entreprises
 

GTUG Nantes (Dec 2011) - BigTable et NoSQL

  • 1. BigTable et NoSQL Inspiré par Google, destiné à tous 6/12/2011 Michaël Figuière
  • 2. Speaker @mfiguiere blog.xebia.fr Michaël Figuière Distributed Architectures NoSQL Search Engines
  • 3. Le stockage de donnée chez Google
  • 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é
  • 8. Hadoop Projets Apache basés sur Hadoop Application HBase Hive Pig Mahout Hadoop ZooKeeper HDFS 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 Pig hour_frequency2 = FOREACH hour_frequency1 GENERATE flatten($0), COUNT($1) as count; 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...
  • 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 Analytics s’appuie sur BigTable pour le stockage et l’analyse des clics utilisateurs 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