SlideShare une entreprise Scribd logo
1  sur  13
Télécharger pour lire hors ligne
User Group Nantes
MongoDB et son connecteur
pour Hadoop
Bruno Bonnin - @_bruno_b_
AGENDA
• Rappels sur Hadoop et son éco-système
• Un connecteur, pour quoi faire ?
• Démo avec MongoDB, Hive, Spark (version Java en
300 lignes ou version Python en 8 lignes)
Nantes User Group
HADOOPNantes User Group
Source : http://docs.hortonworks.com/
HADOOPNantes User Group
Source : http://docs.hortonworks.com/
CONNECTEUR MONGODB POUR HADOOP
• Pour quoi faire ?
• Les entreprises ont des données stockées dans
MongoDB, … et dans Hadoop
• Besoin d’intégration
• Traiter les données à partir de plusieurs
sources (en éliminant des étapes
d’import/export)
• …
Nantes User Group
QUELQUES CAS D’UTILISATIONNantes User Group
Pour des analyses
complexes faites dans
Hadoop (avec des jobs
Map/Reduce)
Traitement de
données de
plusieurs
sources faites
dans Hadoop
(repo central de
données)
Hadoop extrait les
données de données
de diverses sources,
les traite et pousse
les résultats dans
MongoDB
CONNECTEUR MONGODB POUR HADOOP
• Support pour :
• Hive : langage de requêtes SQL-like
• Pig : langage de scripts pour définir des
workflows de traitement
• Spark
• Flume
• …
Nantes User Group
DEMO : HIVENantes User Group
Valeur actions
par minute
Calcul des min/max
dans Hadoop (M/R) +
Jointure avec données
dans Hadoop
1
3
2
Sociétés
Valeur min/max
actions par jour
CREATE EXTERNAL TABLE
SELECT MIN (), MAX()
INSERT
collection
Table Hive
Table Hive
DEMO : HIVE
ADD JAR mongo-java-driver-3.0.3.jar;
ADD JAR mongo-hadoop-core-1.4.0.jar;
ADD JAR mongo-hadoop-hive-1.4.0.jar;
CREATE EXTERNAL TABLE stock_prices (
id STRUCT<oid:STRING, bsontype:INT>,
symbol STRING,
timestamp STRING,
volume INT
)
STORED BY 'com.mongodb.hadoop.hive.MongoStorageHandler'
WITH SERDEPROPERTIES ( 'mongo.columns.mapping'='{"id":"_id", "symbol":"Symbol",
"timestamp":"Timestamp", "volume":"Volume"}' )
TBLPROPERTIES( 'mongo.uri'='mongodb://localhost:27017/marketdata.stock_prices' );
Nantes User Group
DEMO : SPARKNantes User Group
Traitement des données
par Spark (groupBy,
aggregateByKey)
1
3’
2
Résultat #2 :
Stockage dans des
fichiers
Source :
Valeur actions
par minute
collection
HDFS
Résultat #1 :
Valeur min/max
actions par jour
collection
3 SAVE
INSERT
FIND
DEMO : HIVE
from pyspark import SparkContext
sc = SparkContext("local", "Test MongoDB Connector")
# Config MongoDB
inputConfig = { "mongo.input.uri" : "mongodb://localhost:27017/marketdata.stock_prices" }
# Config pour RDD qui va lire les data dans MongoDB
inputFormatClassName = "com.mongodb.hadoop.MongoInputFormat"
keyClassName = "java.lang.Object"
valueClassName = "org.bson.BSONObject"
stockPricesRDD = sc.newAPIHadoopRDD( inputFormatClassName, keyClassName,
valueClassName, None, None, inputConfig )
# Les traitements...
prices = stockPricesRDD.values()
# ... groupby sur (symbol, day)
groupByRDD = prices.groupBy(lambda doc: (doc["Symbol"], doc["Day"]))
Nantes User Group
LIENS
• Plus d’infos:
– http://docs.mongodb.org/ecosystem/tools/hadoop/
– https://github.com/mongodb/mongo-hadoop
• Code:
– Démo :
• https://github.com/bbonnin/MUG-Nantes-Demo-Hadoop
– Complément :
• https://github.com/bbonnin/hadoop-mongodb
Nantes User Group
MERCI !Nantes User Group

Contenu connexe

Tendances

Nouveautés PHP 7 : Introduction et performances - MeetUP Openska
Nouveautés PHP 7 : Introduction et performances - MeetUP OpenskaNouveautés PHP 7 : Introduction et performances - MeetUP Openska
Nouveautés PHP 7 : Introduction et performances - MeetUP OpenskaOpenska
 
Oxalide Workshop #3 - Elasticearch, an overview
Oxalide Workshop #3 - Elasticearch, an overviewOxalide Workshop #3 - Elasticearch, an overview
Oxalide Workshop #3 - Elasticearch, an overviewLudovic Piot
 
Elasticsearch - Montpellier JUG
Elasticsearch - Montpellier JUGElasticsearch - Montpellier JUG
Elasticsearch - Montpellier JUGDavid Pilato
 
Presentation langage go_19022015
Presentation langage go_19022015Presentation langage go_19022015
Presentation langage go_19022015Stéphane Legrand
 
MongoDB et Elasticsearch, meilleurs ennemis ?
MongoDB et Elasticsearch, meilleurs ennemis ?MongoDB et Elasticsearch, meilleurs ennemis ?
MongoDB et Elasticsearch, meilleurs ennemis ?Sébastien Prunier
 
Node.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptNode.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptKhalid Jebbari
 
Drupal - La puissance de Drush
Drupal - La puissance de DrushDrupal - La puissance de Drush
Drupal - La puissance de DrushAlexandre Marie
 
Pratique de la programmation en go
Pratique de la programmation en goPratique de la programmation en go
Pratique de la programmation en gokader15
 
Apache Flink par Bilal Baltagi Paris Spark Meetup Dec 2015
Apache Flink par Bilal Baltagi Paris Spark Meetup Dec 2015Apache Flink par Bilal Baltagi Paris Spark Meetup Dec 2015
Apache Flink par Bilal Baltagi Paris Spark Meetup Dec 2015Modern Data Stack France
 
Tout comprendre de Nuxeo Drive - Nuxeo Tour 2014 - workshop
Tout comprendre de Nuxeo Drive - Nuxeo Tour 2014 - workshopTout comprendre de Nuxeo Drive - Nuxeo Tour 2014 - workshop
Tout comprendre de Nuxeo Drive - Nuxeo Tour 2014 - workshopNuxeo
 
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8Aurelien Navarre
 
Plugin HAL pour Wordpress
Plugin HAL pour WordpressPlugin HAL pour Wordpress
Plugin HAL pour WordpressOAccsd
 
Initiation à Express js
Initiation à Express jsInitiation à Express js
Initiation à Express jsAbdoulaye Dieng
 
20111006 bonnes pratiques-gi_g_v1
20111006 bonnes pratiques-gi_g_v120111006 bonnes pratiques-gi_g_v1
20111006 bonnes pratiques-gi_g_v1Gilles Guirand
 

Tendances (17)

Nouveautés PHP 7 : Introduction et performances - MeetUP Openska
Nouveautés PHP 7 : Introduction et performances - MeetUP OpenskaNouveautés PHP 7 : Introduction et performances - MeetUP Openska
Nouveautés PHP 7 : Introduction et performances - MeetUP Openska
 
Mongo DB
Mongo DBMongo DB
Mongo DB
 
Oxalide Workshop #3 - Elasticearch, an overview
Oxalide Workshop #3 - Elasticearch, an overviewOxalide Workshop #3 - Elasticearch, an overview
Oxalide Workshop #3 - Elasticearch, an overview
 
L'avenir de LAMP
L'avenir de LAMPL'avenir de LAMP
L'avenir de LAMP
 
Elasticsearch - Montpellier JUG
Elasticsearch - Montpellier JUGElasticsearch - Montpellier JUG
Elasticsearch - Montpellier JUG
 
Presentation langage go_19022015
Presentation langage go_19022015Presentation langage go_19022015
Presentation langage go_19022015
 
MongoDB et Elasticsearch, meilleurs ennemis ?
MongoDB et Elasticsearch, meilleurs ennemis ?MongoDB et Elasticsearch, meilleurs ennemis ?
MongoDB et Elasticsearch, meilleurs ennemis ?
 
Node.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptNode.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascript
 
Drupal - La puissance de Drush
Drupal - La puissance de DrushDrupal - La puissance de Drush
Drupal - La puissance de Drush
 
Pratique de la programmation en go
Pratique de la programmation en goPratique de la programmation en go
Pratique de la programmation en go
 
Apache Flink par Bilal Baltagi Paris Spark Meetup Dec 2015
Apache Flink par Bilal Baltagi Paris Spark Meetup Dec 2015Apache Flink par Bilal Baltagi Paris Spark Meetup Dec 2015
Apache Flink par Bilal Baltagi Paris Spark Meetup Dec 2015
 
Mpdf 4
Mpdf 4Mpdf 4
Mpdf 4
 
Tout comprendre de Nuxeo Drive - Nuxeo Tour 2014 - workshop
Tout comprendre de Nuxeo Drive - Nuxeo Tour 2014 - workshopTout comprendre de Nuxeo Drive - Nuxeo Tour 2014 - workshop
Tout comprendre de Nuxeo Drive - Nuxeo Tour 2014 - workshop
 
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
 
Plugin HAL pour Wordpress
Plugin HAL pour WordpressPlugin HAL pour Wordpress
Plugin HAL pour Wordpress
 
Initiation à Express js
Initiation à Express jsInitiation à Express js
Initiation à Express js
 
20111006 bonnes pratiques-gi_g_v1
20111006 bonnes pratiques-gi_g_v120111006 bonnes pratiques-gi_g_v1
20111006 bonnes pratiques-gi_g_v1
 

En vedette

Tout ce que le getting started MongoDB ne vous dira pas
Tout ce que le getting started MongoDB ne vous dira pasTout ce que le getting started MongoDB ne vous dira pas
Tout ce que le getting started MongoDB ne vous dira pasBruno Bonnin
 
Devriez-vous vous déguiser au bureau?
Devriez-vous vous déguiser au bureau?Devriez-vous vous déguiser au bureau?
Devriez-vous vous déguiser au bureau?Jobboom
 
Projet de développement d'un site sous Drupal par Tamistrians
Projet de développement d'un site sous Drupal par TamistriansProjet de développement d'un site sous Drupal par Tamistrians
Projet de développement d'un site sous Drupal par TamistriansEquipe Tamistrians
 
Presentation livre blanc inbound marketing
Presentation livre blanc inbound marketingPresentation livre blanc inbound marketing
Presentation livre blanc inbound marketingLaurent Lenclud
 
L’épreuve dépressive et le monde du travail - Marcelo Otero - ACSM 4 mai
L’épreuve dépressive et le monde du travail - Marcelo Otero - ACSM 4 maiL’épreuve dépressive et le monde du travail - Marcelo Otero - ACSM 4 mai
L’épreuve dépressive et le monde du travail - Marcelo Otero - ACSM 4 maiacsmmtl
 
Présentation de la journée du poisson lion
Présentation de la journée du poisson lionPrésentation de la journée du poisson lion
Présentation de la journée du poisson lionRaphael Bastide
 
P'tits médiateurs slideshare
P'tits médiateurs slideshareP'tits médiateurs slideshare
P'tits médiateurs slideshareCecile Gerst
 
Pe martinique 2014 04 dengue
Pe martinique 2014 04 denguePe martinique 2014 04 dengue
Pe martinique 2014 04 dengueRaphael Bastide
 
Présentation e sidoc
Présentation e sidocPrésentation e sidoc
Présentation e sidocalicante2012
 
Ceratec - Des carreaux imprimés en HD
Ceratec - Des carreaux imprimés en HDCeratec - Des carreaux imprimés en HD
Ceratec - Des carreaux imprimés en HDMarie-Claude Dumont
 
éMilie fortin tremblay
éMilie fortin tremblayéMilie fortin tremblay
éMilie fortin tremblaykatmar69
 
Programm La Marche vers l'unité 1815-1870
Programm La Marche vers l'unité 1815-1870Programm La Marche vers l'unité 1815-1870
Programm La Marche vers l'unité 1815-1870DHI_Paris
 
Bilan des perspectives du marché du travail 2014
Bilan des perspectives du marché du travail 2014Bilan des perspectives du marché du travail 2014
Bilan des perspectives du marché du travail 2014Jobboom
 
Fiche Produit CoCo Up Eau de Coco
Fiche Produit CoCo Up Eau de CocoFiche Produit CoCo Up Eau de Coco
Fiche Produit CoCo Up Eau de CocoCocoUp
 
Mon album photo familial
Mon album photo familialMon album photo familial
Mon album photo familialAnaJABA
 
Jehangir Ratanji Dadabhai Tata
Jehangir Ratanji Dadabhai TataJehangir Ratanji Dadabhai Tata
Jehangir Ratanji Dadabhai TataSurendra Shukla
 
Avez-vous déjà envisagé un changement de carrière?
Avez-vous déjà envisagé un changement de carrière?Avez-vous déjà envisagé un changement de carrière?
Avez-vous déjà envisagé un changement de carrière?Jobboom
 
Arrrêté sécheresse 2014
Arrrêté sécheresse 2014Arrrêté sécheresse 2014
Arrrêté sécheresse 2014Raphael Bastide
 

En vedette (20)

Tout ce que le getting started MongoDB ne vous dira pas
Tout ce que le getting started MongoDB ne vous dira pasTout ce que le getting started MongoDB ne vous dira pas
Tout ce que le getting started MongoDB ne vous dira pas
 
Devriez-vous vous déguiser au bureau?
Devriez-vous vous déguiser au bureau?Devriez-vous vous déguiser au bureau?
Devriez-vous vous déguiser au bureau?
 
Projet de développement d'un site sous Drupal par Tamistrians
Projet de développement d'un site sous Drupal par TamistriansProjet de développement d'un site sous Drupal par Tamistrians
Projet de développement d'un site sous Drupal par Tamistrians
 
Presentation livre blanc inbound marketing
Presentation livre blanc inbound marketingPresentation livre blanc inbound marketing
Presentation livre blanc inbound marketing
 
L’épreuve dépressive et le monde du travail - Marcelo Otero - ACSM 4 mai
L’épreuve dépressive et le monde du travail - Marcelo Otero - ACSM 4 maiL’épreuve dépressive et le monde du travail - Marcelo Otero - ACSM 4 mai
L’épreuve dépressive et le monde du travail - Marcelo Otero - ACSM 4 mai
 
Présentation de la journée du poisson lion
Présentation de la journée du poisson lionPrésentation de la journée du poisson lion
Présentation de la journée du poisson lion
 
P'tits médiateurs slideshare
P'tits médiateurs slideshareP'tits médiateurs slideshare
P'tits médiateurs slideshare
 
Pe martinique 2014 04 dengue
Pe martinique 2014 04 denguePe martinique 2014 04 dengue
Pe martinique 2014 04 dengue
 
Présentation e sidoc
Présentation e sidocPrésentation e sidoc
Présentation e sidoc
 
Ceratec - Des carreaux imprimés en HD
Ceratec - Des carreaux imprimés en HDCeratec - Des carreaux imprimés en HD
Ceratec - Des carreaux imprimés en HD
 
éMilie fortin tremblay
éMilie fortin tremblayéMilie fortin tremblay
éMilie fortin tremblay
 
Programm La Marche vers l'unité 1815-1870
Programm La Marche vers l'unité 1815-1870Programm La Marche vers l'unité 1815-1870
Programm La Marche vers l'unité 1815-1870
 
Programme carnaval 2014
Programme carnaval 2014Programme carnaval 2014
Programme carnaval 2014
 
Bilan des perspectives du marché du travail 2014
Bilan des perspectives du marché du travail 2014Bilan des perspectives du marché du travail 2014
Bilan des perspectives du marché du travail 2014
 
Fiche Produit CoCo Up Eau de Coco
Fiche Produit CoCo Up Eau de CocoFiche Produit CoCo Up Eau de Coco
Fiche Produit CoCo Up Eau de Coco
 
Mon album photo familial
Mon album photo familialMon album photo familial
Mon album photo familial
 
Jehangir Ratanji Dadabhai Tata
Jehangir Ratanji Dadabhai TataJehangir Ratanji Dadabhai Tata
Jehangir Ratanji Dadabhai Tata
 
Avez-vous déjà envisagé un changement de carrière?
Avez-vous déjà envisagé un changement de carrière?Avez-vous déjà envisagé un changement de carrière?
Avez-vous déjà envisagé un changement de carrière?
 
Arrrêté sécheresse 2014
Arrrêté sécheresse 2014Arrrêté sécheresse 2014
Arrrêté sécheresse 2014
 
Family tree
Family treeFamily tree
Family tree
 

Similaire à MUG Nantes - MongoDB et son connecteur pour hadoop

Journées SQL 2014 - Hive ou la convergence entre datawarehouse et Big Data
Journées SQL 2014 - Hive ou la convergence entre datawarehouse et Big DataJournées SQL 2014 - Hive ou la convergence entre datawarehouse et Big Data
Journées SQL 2014 - Hive ou la convergence entre datawarehouse et Big DataDavid Joubert
 
Digital GraphTour Paris - Neo4j 4.0, les nouveautés
Digital GraphTour Paris - Neo4j 4.0, les nouveautésDigital GraphTour Paris - Neo4j 4.0, les nouveautés
Digital GraphTour Paris - Neo4j 4.0, les nouveautésNeo4j
 
Techday Arrow Group: Hadoop & le Big Data
Techday Arrow Group: Hadoop & le Big DataTechday Arrow Group: Hadoop & le Big Data
Techday Arrow Group: Hadoop & le Big DataArrow Group
 
Hands on lab Elasticsearch
Hands on lab ElasticsearchHands on lab Elasticsearch
Hands on lab ElasticsearchDavid Pilato
 
Big Data: Hadoop Map / Reduce sur Windows et Windows Azure
Big Data: Hadoop Map / Reduce sur Windows et Windows AzureBig Data: Hadoop Map / Reduce sur Windows et Windows Azure
Big Data: Hadoop Map / Reduce sur Windows et Windows AzureMicrosoft
 
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...Bruno Bonnin
 
Hadoop et son écosystème - v2
Hadoop et son écosystème - v2Hadoop et son écosystème - v2
Hadoop et son écosystème - v2Khanh Maudoux
 
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp012014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01MongoDB
 
Social Network Analysis Utilizing Big Data Technology
Social Network Analysis Utilizing Big Data TechnologySocial Network Analysis Utilizing Big Data Technology
Social Network Analysis Utilizing Big Data TechnologyImad ALILAT
 
Big Data, Hadoop & Spark
Big Data, Hadoop & SparkBig Data, Hadoop & Spark
Big Data, Hadoop & SparkAlexia Audevart
 
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
 
Présentation de ElasticSearch / Digital apéro du 12/11/2014
Présentation de ElasticSearch / Digital apéro du 12/11/2014Présentation de ElasticSearch / Digital apéro du 12/11/2014
Présentation de ElasticSearch / Digital apéro du 12/11/2014Silicon Comté
 
Hadoop MapReduce - OSDC FR 2009
Hadoop MapReduce - OSDC FR 2009Hadoop MapReduce - OSDC FR 2009
Hadoop MapReduce - OSDC FR 2009Olivier Grisel
 
Big Data Visualization PowerPoint Templates.pptx
Big Data Visualization PowerPoint Templates.pptxBig Data Visualization PowerPoint Templates.pptx
Big Data Visualization PowerPoint Templates.pptxKhadijaHaddaoui
 
BigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-ReduceBigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-ReduceLilia Sfaxi
 

Similaire à MUG Nantes - MongoDB et son connecteur pour hadoop (20)

Afterwork hadoop
Afterwork hadoopAfterwork hadoop
Afterwork hadoop
 
Paris RailsCamp 2009
Paris RailsCamp 2009Paris RailsCamp 2009
Paris RailsCamp 2009
 
Journées SQL 2014 - Hive ou la convergence entre datawarehouse et Big Data
Journées SQL 2014 - Hive ou la convergence entre datawarehouse et Big DataJournées SQL 2014 - Hive ou la convergence entre datawarehouse et Big Data
Journées SQL 2014 - Hive ou la convergence entre datawarehouse et Big Data
 
Digital GraphTour Paris - Neo4j 4.0, les nouveautés
Digital GraphTour Paris - Neo4j 4.0, les nouveautésDigital GraphTour Paris - Neo4j 4.0, les nouveautés
Digital GraphTour Paris - Neo4j 4.0, les nouveautés
 
Techday Arrow Group: Hadoop & le Big Data
Techday Arrow Group: Hadoop & le Big DataTechday Arrow Group: Hadoop & le Big Data
Techday Arrow Group: Hadoop & le Big Data
 
Tech day hadoop, Spark
Tech day hadoop, SparkTech day hadoop, Spark
Tech day hadoop, Spark
 
Hands on lab Elasticsearch
Hands on lab ElasticsearchHands on lab Elasticsearch
Hands on lab Elasticsearch
 
Big Data: Hadoop Map / Reduce sur Windows et Windows Azure
Big Data: Hadoop Map / Reduce sur Windows et Windows AzureBig Data: Hadoop Map / Reduce sur Windows et Windows Azure
Big Data: Hadoop Map / Reduce sur Windows et Windows Azure
 
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...
 
Hadoop et son écosystème - v2
Hadoop et son écosystème - v2Hadoop et son écosystème - v2
Hadoop et son écosystème - v2
 
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp012014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01
 
Social Network Analysis Utilizing Big Data Technology
Social Network Analysis Utilizing Big Data TechnologySocial Network Analysis Utilizing Big Data Technology
Social Network Analysis Utilizing Big Data Technology
 
Big Data, Hadoop & Spark
Big Data, Hadoop & SparkBig Data, Hadoop & Spark
Big Data, Hadoop & Spark
 
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
 
Présentation de ElasticSearch / Digital apéro du 12/11/2014
Présentation de ElasticSearch / Digital apéro du 12/11/2014Présentation de ElasticSearch / Digital apéro du 12/11/2014
Présentation de ElasticSearch / Digital apéro du 12/11/2014
 
Hadoop MapReduce - OSDC FR 2009
Hadoop MapReduce - OSDC FR 2009Hadoop MapReduce - OSDC FR 2009
Hadoop MapReduce - OSDC FR 2009
 
Big Data Visualization PowerPoint Templates.pptx
Big Data Visualization PowerPoint Templates.pptxBig Data Visualization PowerPoint Templates.pptx
Big Data Visualization PowerPoint Templates.pptx
 
Spark - Ippevent 19-02-2015
Spark - Ippevent 19-02-2015Spark - Ippevent 19-02-2015
Spark - Ippevent 19-02-2015
 
mix-it 2011
mix-it 2011mix-it 2011
mix-it 2011
 
BigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-ReduceBigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-Reduce
 

Plus de Bruno Bonnin

[Devoxx MA 2023] R2DBC = R2D2 + JDBC (enfin presque...)
[Devoxx MA 2023] R2DBC = R2D2 + JDBC (enfin presque...)[Devoxx MA 2023] R2DBC = R2D2 + JDBC (enfin presque...)
[Devoxx MA 2023] R2DBC = R2D2 + JDBC (enfin presque...)Bruno Bonnin
 
Stream processing avec Apache Pulsar
Stream processing avec Apache PulsarStream processing avec Apache Pulsar
Stream processing avec Apache PulsarBruno Bonnin
 
Stream processing et SQL
Stream processing et SQLStream processing et SQL
Stream processing et SQLBruno Bonnin
 
Stream processing et SQL
Stream processing et SQLStream processing et SQL
Stream processing et SQLBruno Bonnin
 
Stream processing et SQL
Stream processing et SQLStream processing et SQL
Stream processing et SQLBruno Bonnin
 
Stream processing et SQL
Stream processing et SQLStream processing et SQL
Stream processing et SQLBruno Bonnin
 
Jug summer camp 2017 - Vue.js, même un dev java peut en faire !
Jug summer camp 2017 - Vue.js, même un dev java peut en faire !Jug summer camp 2017 - Vue.js, même un dev java peut en faire !
Jug summer camp 2017 - Vue.js, même un dev java peut en faire !Bruno Bonnin
 
A la découverte de vue.js
A la découverte de vue.jsA la découverte de vue.js
A la découverte de vue.jsBruno Bonnin
 
Vue.js, même un dev java peut en faire !
Vue.js, même un dev java peut en faire !Vue.js, même un dev java peut en faire !
Vue.js, même un dev java peut en faire !Bruno Bonnin
 
Vue, j’avais pas vu !
Vue, j’avais pas vu !Vue, j’avais pas vu !
Vue, j’avais pas vu !Bruno Bonnin
 
Apache Spark avec NodeJS ? Oui, c'est possible avec EclairJS !
Apache Spark avec NodeJS ? Oui, c'est possible avec EclairJS !Apache Spark avec NodeJS ? Oui, c'est possible avec EclairJS !
Apache Spark avec NodeJS ? Oui, c'est possible avec EclairJS !Bruno Bonnin
 
Explorez vos données avec apache zeppelin
Explorez vos données avec apache zeppelinExplorez vos données avec apache zeppelin
Explorez vos données avec apache zeppelinBruno Bonnin
 

Plus de Bruno Bonnin (12)

[Devoxx MA 2023] R2DBC = R2D2 + JDBC (enfin presque...)
[Devoxx MA 2023] R2DBC = R2D2 + JDBC (enfin presque...)[Devoxx MA 2023] R2DBC = R2D2 + JDBC (enfin presque...)
[Devoxx MA 2023] R2DBC = R2D2 + JDBC (enfin presque...)
 
Stream processing avec Apache Pulsar
Stream processing avec Apache PulsarStream processing avec Apache Pulsar
Stream processing avec Apache Pulsar
 
Stream processing et SQL
Stream processing et SQLStream processing et SQL
Stream processing et SQL
 
Stream processing et SQL
Stream processing et SQLStream processing et SQL
Stream processing et SQL
 
Stream processing et SQL
Stream processing et SQLStream processing et SQL
Stream processing et SQL
 
Stream processing et SQL
Stream processing et SQLStream processing et SQL
Stream processing et SQL
 
Jug summer camp 2017 - Vue.js, même un dev java peut en faire !
Jug summer camp 2017 - Vue.js, même un dev java peut en faire !Jug summer camp 2017 - Vue.js, même un dev java peut en faire !
Jug summer camp 2017 - Vue.js, même un dev java peut en faire !
 
A la découverte de vue.js
A la découverte de vue.jsA la découverte de vue.js
A la découverte de vue.js
 
Vue.js, même un dev java peut en faire !
Vue.js, même un dev java peut en faire !Vue.js, même un dev java peut en faire !
Vue.js, même un dev java peut en faire !
 
Vue, j’avais pas vu !
Vue, j’avais pas vu !Vue, j’avais pas vu !
Vue, j’avais pas vu !
 
Apache Spark avec NodeJS ? Oui, c'est possible avec EclairJS !
Apache Spark avec NodeJS ? Oui, c'est possible avec EclairJS !Apache Spark avec NodeJS ? Oui, c'est possible avec EclairJS !
Apache Spark avec NodeJS ? Oui, c'est possible avec EclairJS !
 
Explorez vos données avec apache zeppelin
Explorez vos données avec apache zeppelinExplorez vos données avec apache zeppelin
Explorez vos données avec apache zeppelin
 

MUG Nantes - MongoDB et son connecteur pour hadoop

  • 1. User Group Nantes MongoDB et son connecteur pour Hadoop Bruno Bonnin - @_bruno_b_
  • 2. AGENDA • Rappels sur Hadoop et son éco-système • Un connecteur, pour quoi faire ? • Démo avec MongoDB, Hive, Spark (version Java en 300 lignes ou version Python en 8 lignes) Nantes User Group
  • 3. HADOOPNantes User Group Source : http://docs.hortonworks.com/
  • 4. HADOOPNantes User Group Source : http://docs.hortonworks.com/
  • 5. CONNECTEUR MONGODB POUR HADOOP • Pour quoi faire ? • Les entreprises ont des données stockées dans MongoDB, … et dans Hadoop • Besoin d’intégration • Traiter les données à partir de plusieurs sources (en éliminant des étapes d’import/export) • … Nantes User Group
  • 6. QUELQUES CAS D’UTILISATIONNantes User Group Pour des analyses complexes faites dans Hadoop (avec des jobs Map/Reduce) Traitement de données de plusieurs sources faites dans Hadoop (repo central de données) Hadoop extrait les données de données de diverses sources, les traite et pousse les résultats dans MongoDB
  • 7. CONNECTEUR MONGODB POUR HADOOP • Support pour : • Hive : langage de requêtes SQL-like • Pig : langage de scripts pour définir des workflows de traitement • Spark • Flume • … Nantes User Group
  • 8. DEMO : HIVENantes User Group Valeur actions par minute Calcul des min/max dans Hadoop (M/R) + Jointure avec données dans Hadoop 1 3 2 Sociétés Valeur min/max actions par jour CREATE EXTERNAL TABLE SELECT MIN (), MAX() INSERT collection Table Hive Table Hive
  • 9. DEMO : HIVE ADD JAR mongo-java-driver-3.0.3.jar; ADD JAR mongo-hadoop-core-1.4.0.jar; ADD JAR mongo-hadoop-hive-1.4.0.jar; CREATE EXTERNAL TABLE stock_prices ( id STRUCT<oid:STRING, bsontype:INT>, symbol STRING, timestamp STRING, volume INT ) STORED BY 'com.mongodb.hadoop.hive.MongoStorageHandler' WITH SERDEPROPERTIES ( 'mongo.columns.mapping'='{"id":"_id", "symbol":"Symbol", "timestamp":"Timestamp", "volume":"Volume"}' ) TBLPROPERTIES( 'mongo.uri'='mongodb://localhost:27017/marketdata.stock_prices' ); Nantes User Group
  • 10. DEMO : SPARKNantes User Group Traitement des données par Spark (groupBy, aggregateByKey) 1 3’ 2 Résultat #2 : Stockage dans des fichiers Source : Valeur actions par minute collection HDFS Résultat #1 : Valeur min/max actions par jour collection 3 SAVE INSERT FIND
  • 11. DEMO : HIVE from pyspark import SparkContext sc = SparkContext("local", "Test MongoDB Connector") # Config MongoDB inputConfig = { "mongo.input.uri" : "mongodb://localhost:27017/marketdata.stock_prices" } # Config pour RDD qui va lire les data dans MongoDB inputFormatClassName = "com.mongodb.hadoop.MongoInputFormat" keyClassName = "java.lang.Object" valueClassName = "org.bson.BSONObject" stockPricesRDD = sc.newAPIHadoopRDD( inputFormatClassName, keyClassName, valueClassName, None, None, inputConfig ) # Les traitements... prices = stockPricesRDD.values() # ... groupby sur (symbol, day) groupByRDD = prices.groupBy(lambda doc: (doc["Symbol"], doc["Day"])) Nantes User Group
  • 12. LIENS • Plus d’infos: – http://docs.mongodb.org/ecosystem/tools/hadoop/ – https://github.com/mongodb/mongo-hadoop • Code: – Démo : • https://github.com/bbonnin/MUG-Nantes-Demo-Hadoop – Complément : • https://github.com/bbonnin/hadoop-mongodb Nantes User Group