Top Banner
BigTable et NoSQL Inspiré par Google, destiné à tous 6/12/2011 Michaël Figuière
37

Gtug nantes big table et nosql

Jun 14, 2015

Download

Documents

GDG Nantes

Présentation par Michael Figuere de la soirée NoSQL au Nantes GTUG
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Gtug nantes   big table et nosql

BigTable et NoSQL

Inspiré par Google, destiné à tous

6/12/2011 Michaël Figuière

Page 2: Gtug nantes   big table et nosql

Speaker

Michaël Figuière

@mfiguiere

blog.xebia.fr

Search Engines NoSQL

DistributedArchitectures

Page 3: Gtug nantes   big table et nosql

Le stockage de donnée chez Google

Page 4: Gtug nantes   big table et nosql

Au commencement...

Page 5: Gtug nantes   big table et nosql

L’évolution du stockage chez Google

• Stockage et traitement de données en masse pour la recherche

• Stockage structuré

• Requêtes plus complexes et réplication multi-datacenter

GFS et MapReduce

BigTable

MegaStore

Page 6: Gtug nantes   big table et nosql

Architecture du stockage Google

GFS

BigTable

MapReduce

Chubby

MegaStore Sawzall FlumeJava

Traitementdistribué

DSL pour le traitement

API Java de haut niveau

Consensus distribué

Page 7: Gtug nantes   big table et nosql

La galaxie Hadoop

Page 8: Gtug nantes   big table et nosql

Hadoop

Application

HDFS

HBase

MapReduce

Projets Apache basés sur Hadoop

ZooKeeper

Hive Pig Mahout

Hadoop

Page 9: Gtug nantes   big table et nosql

MapReduce

Page 10: Gtug nantes   big table et nosql

MapReduce

FragmentHDFS

MapReduce

Les traitements et les données sont co-localisés

FragmentHDFS

MapReduce

FragmentHDFS

MapReduce

FragmentHDFS

MapReduce

Instance 1

Instance 2

Instance 3

Instance 4

Page 11: Gtug nantes   big table et nosql

MapReduce

MapReduce

HDFS Adaptateur

Au sein de MapReduce tout est manipulé en tant que clé-valeur

Adaptateur HDFS

Page 12: Gtug nantes   big table et nosql

MapReduce

Split_1 Map Out_1

Merge Reduce OutSplit_2 Map Out_2

Split_3 Map Out_3

Depuis HDFS

Vers HDFS

Trie les données par clé

Le traitement peutêtre réparti sur autant

d’instances que nécessaire !

Page 13: Gtug nantes   big table et nosql

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));}

Page 14: Gtug nantes   big table et nosql

Pig

• Pig apporte une abstraction au dessus de MapReduce

• Langage familier de SQL

• Convertit chaque opération en MapReduce

Pour une meilleure productivité

Facile à lire, mais apprentissage pour l’écrire

Fonctionnement distribué

Page 15: Gtug nantes   big table et nosql

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;

Page 16: Gtug nantes   big table et nosql

HDFS

Page 17: Gtug nantes   big table et nosql

HDFS

Registre desblocs HDFS

HDFSClient NameNode

DataNode DataNode DataNode

Contient lesdonnées

Page 18: Gtug nantes   big table et nosql

Ecriture avec HDFS

HDFSClient NameNode

DataNode DataNode DataNode

Les DataNodes forment un pipeline d’écriture

Page 19: Gtug nantes   big table et nosql

Ecriture avec HDFS

HDFSClient NameNode

DataNode DataNode DataNode

Ecriture des données validée

Page 20: Gtug nantes   big table et nosql

Ecriture avec HDFS

HDFSClient NameNode

DataNode DataNode DataNode

Ecriture des emplacements

Page 21: Gtug nantes   big table et nosql

Lecture avec HDFS

HDFSClient NameNode

DataNode DataNode DataNode

Page 22: Gtug nantes   big table et nosql

Lecture avec HDFS

HDFSClient NameNode

DataNode DataNode DataNode

Obtention des emplacements

Page 23: Gtug nantes   big table et nosql

Lecture avec HDFS

HDFSClient NameNode

DataNode DataNode DataNode

Lecture du premier bloc de données

Page 24: Gtug nantes   big table et nosql

Lecture avec HDFS

HDFSClient NameNode

DataNode DataNode DataNode

Les données à lire peuvent êtres sur plusieurs blocs

Page 25: Gtug nantes   big table et nosql

HBase

Page 26: Gtug nantes   big table et nosql

Le modèle en famille de colonnes

BDD relationnelle BDD orientée colonnes

A chaque ID de ligne correspond une liste de couples clé-valeur

Page 27: Gtug nantes   big table et nosql

Exemple avec un panier d’achat

17:21 Iphone 17:32 DVD Player 17:44 MacBookjohndoe

6:10 Camera 8:29 Ipadwillsmith

14:45 PlayStation 15:01 Asus EEE 15:03 Iphonepitdavis

Famille de colonnes

Page 28: Gtug nantes   big table et nosql

HBase

• Utilise le modèle orientée colonne de Google BigTable

• Basé sur HDFS, scalabilité horizontale linéaire

• Tolérance aux pannes

Modélisation délicate ...

Jusqu’à plusieurs milliers de serveurs

Panne d’un serveur, d’un data-center...

Page 29: Gtug nantes   big table et nosql

Architecture HBase

Master ZooKeeper

RegionServer RegionServer RegionServer

HDFS

Page 30: Gtug nantes   big table et nosql

Ecriture append-only de HBase

RAM

MemTable

HDFS

Log SSTable

Page 31: Gtug nantes   big table et nosql

HBase

• Utilise le modèle orientée colonne de Google BigTable

• Basé sur HDFS, scalabilité horizontale linéaire

• Tolérance aux pannes

Modélisation délicate ...

Jusqu’à plusieurs milliers de serveurs

Panne d’un serveur, d’un data-center...

Page 32: Gtug nantes   big table et nosql

Quelques cas d’usage

Page 33: Gtug nantes   big table et nosql

Online Business Intelligence avec Hadoop / HBase

Application HBase Hadoop

Stockage des informations en

production

Exploitationdes résultats

Traitement batch distribué

Stockagedes résultats

Page 34: Gtug nantes   big table et nosql

Recommandations Amazon

Amazon récolte l’ensemble des clics utilisateurs dans Dynamo et génère des

recommandations par analyse de ces données

Page 35: Gtug nantes   big table et nosql

Google Analytics

Google Analytics s’appuie sur BigTable

pour le stockage et l’analyse des clics

utilisateurs en temps réel

Page 36: Gtug nantes   big table et nosql

Intérêt pour les entreprises

• Rapprochement du BI et des applications

• Rationalisation du budget licences

• La possibilité crée le besoin

Stockage commun

NoSQL (presque) = OpenSource

Ouverture vers de nouveaux use-cases

Page 37: Gtug nantes   big table et nosql

Questions / Réponses

?@mfiguiere

blog.xebia.fr