SlideShare une entreprise Scribd logo
1  sur  15
Télécharger pour lire hors ligne
Big Compute on Hadoop
Parallélisation de l'algorithme de similarité
« Jaro-Winkler »
Zied Abidi
Jacques Milman
2
Le contexte
§ Dimentionner une plateforme pour
l’exécution d’un traitement lourd.
§ Actuellement le traitement prend 13 jours
§ Mesure de similarité entre des chaines
de caractère avec Jaro-winkler
§ Algorithme de similarité entre des
chaines de caractère
§ Conçu spécialement pour les noms et
prénom
§ La similarité des premiers caractères est
la plus importante
Jaro-Winkler
3
Plateforme d’exécution
2	Noeuds	de	gestion et	10	Noeuds	de	calculs	/	Data
Â
8	vcpu	core	&	32	Go	RAM
IBM	BigSQL
§ Les données utilisées
Ø1 fichier de 100.000 ligne
(130 Mo)
ØChaque ligne contient un
identifiant et un label
§ Extrait:
4
L’implémentation Spark
Lecture des
fichiers
Produit
cartésien
Appliquer
jaro winkler
Enregistrer
le résultat
sur hdfs
spark.read.load("
/user/spark/…
- Taille du	fichier de	donnnées <	taille d’un	
block	HDFS
- =>	pré traitemment en divisant le	fichier
d’entrée en plusieurs fichier
.join(EXPORT_OC1,
leftDF.id<rightDF.id)
- Le	produit cartésien gégère des	doublants
:	ab,	ba
- Inutile	de	faire	les	memes	comparaisons J
Cart_prod.map(lambda
line: jaro(l.label1,
l.label2) )
.write.save("/user/spark/…
", format="parquet")
- Ecriture avec	le	format	parquet	pour	
réduire la	taille des	données écrites
0 1000 2000 3000
Python
C
temps d'execution (Sec) L’écriture en C	est
6	fois plus	rapide
que	
l’implémentation
en python
5
Dimensionnement
§ Vérification de la scalabilité linaire de
l’implémentation:
- En fonction de l’évolution des
données
- En fonction de l’évolution des
nombre d’unité d’exécution (cpu)
§ Calcul du nombre d’operation par
seconde et par coeur de cpu (40.500)
Evolution	du	nombre d’operation par	seconde
Nombre nodes = # traitements / ( Temps d’exécution voulu * # cœur par
noeud * # opération par seconde )
6
Implementation BigSQL
7
Hive is Really 3 Things…
Open source SQL on Hadoop
SQL Execution Engine
Hive
Hive Storage Model
(open source)
CSV Parquet ORC Others…Tab Delim.
Hive Metastore
(open source)MapReduce
Applications
8
Big SQL Preserves Open Source Foundation
Leverages Hive metastore and storage formats.
No Lock-in. Data part of Hadoop, not Big SQL. Fall back to Open Source Hive Engine at any time.
SQL Execution Engines
Big SQL Hive
Hive Storage Model
(open source)
CSV Parquet ORC Others…Tab Delim.
Hive Metastore
(open source)
Applications
9
Big SQL Architecture vs other SQL Engines
Leverages Hive metastore and storage formats.
SQL Execution Engines
Big SQL Hive
Hive Storage Model
(open source)
CSV Parquet ORC Others…Tab Delim.
Hive Metastore
(open source)
BigSQLruntime
Applications
Spark SQL Impala
10
Code implementation
§ UDF Implementation
void SQL_API_FN jaro_winkler
(
char *s1,
char *s2,
double *out,
short *i1,
short *i2,
short *i3,
SQLUDF_TRAIL_ARGS
)
{
*out=jaro_winkler_distance(s1,s2);
*i3 = 0;
}
§ SQL Implementation
CREATE FUNCTION jaro_winkler (
CHAR(32)
,CHAR(32)
)
returns double
not fenced
deterministic
language c
parameter style sql
external name ’jaro!jaro_winkler'
external action;
• Algo implementation
double jaro_winkler_distance(char *s1, char *s2) {...}
11
The query
create external hadoop table jaro_ext
( id1 int,id2 int,score dec(5,4))
row format delimited fields terminated by ',’
lines terminated by 'n’
stored as textfile
location '/user/bigsql/jaro_ext/';
insert into jaro_ext
selects.id as
id_source
,c.id as id_cible,jaro_winkler(s.string,c.string)
from jaro_left s ,jaro_left c
where s.id < c.id;
12
Résultats
Temps	d’exécution du	traitement avec	Spark	et	BigSQL
0
5
10
15
20
25
30
35
40
45
Spark 2.1 BigSQL
13
Monitoring
14
Enseignements
ØComplexité du fine tuning des traitements Spark
ØImportance du langage avec lequel sont écrits les traitements.
ØBigSQL permet des gains de performance et de productivité
ØTechniques d’optimisation similaires
FIN

Contenu connexe

Tendances

Spark SQL principes et fonctions
Spark SQL principes et fonctionsSpark SQL principes et fonctions
Spark SQL principes et fonctionsMICHRAFY MUSTAFA
 
Cours Big Data Chap5
Cours Big Data Chap5Cours Big Data Chap5
Cours Big Data Chap5Amal Abid
 
Découverte de Redis
Découverte de RedisDécouverte de Redis
Découverte de RedisJEMLI Fathi
 
Hadoop et son écosystème - v2
Hadoop et son écosystème - v2Hadoop et son écosystème - v2
Hadoop et son écosystème - v2Khanh Maudoux
 
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
 
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
 
Annexe Big Data
Annexe Big DataAnnexe Big Data
Annexe Big DataAmal Abid
 
Déploiement ELK en conditions réelles
Déploiement ELK en conditions réellesDéploiement ELK en conditions réelles
Déploiement ELK en conditions réellesGeoffroy Arnoud
 
BigData_TP3 : Spark
BigData_TP3 : SparkBigData_TP3 : Spark
BigData_TP3 : SparkLilia Sfaxi
 
[Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?
[Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?[Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?
[Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?Sébastien Prunier
 
Big Data, Hadoop & Spark
Big Data, Hadoop & SparkBig Data, Hadoop & Spark
Big Data, Hadoop & SparkAlexia Audevart
 
Cours Big Data Chap6
Cours Big Data Chap6Cours Big Data Chap6
Cours Big Data Chap6Amal Abid
 
Base de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvreBase de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvreMICHRAFY MUSTAFA
 
Utiliser Hadoop en perl avec HadoopStreaming
Utiliser Hadoop en perl avec HadoopStreamingUtiliser Hadoop en perl avec HadoopStreaming
Utiliser Hadoop en perl avec HadoopStreamingDavid Morel
 
Stats web avec Hive chez Scoop.it
Stats web avec Hive chez Scoop.itStats web avec Hive chez Scoop.it
Stats web avec Hive chez Scoop.ithibnico
 
04 big data fournisseurs
04 big data fournisseurs04 big data fournisseurs
04 big data fournisseursPatrick Bury
 

Tendances (20)

Spark SQL principes et fonctions
Spark SQL principes et fonctionsSpark SQL principes et fonctions
Spark SQL principes et fonctions
 
Cours Big Data Chap5
Cours Big Data Chap5Cours Big Data Chap5
Cours Big Data Chap5
 
Découverte de Redis
Découverte de RedisDécouverte de Redis
Découverte de Redis
 
Hadoop et son écosystème - v2
Hadoop et son écosystème - v2Hadoop et son écosystème - v2
Hadoop et son écosystème - v2
 
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
 
spark_intro_1208
spark_intro_1208spark_intro_1208
spark_intro_1208
 
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
 
Spark dataframe
Spark dataframeSpark dataframe
Spark dataframe
 
Annexe Big Data
Annexe Big DataAnnexe Big Data
Annexe Big Data
 
Déploiement ELK en conditions réelles
Déploiement ELK en conditions réellesDéploiement ELK en conditions réelles
Déploiement ELK en conditions réelles
 
BigData_TP3 : Spark
BigData_TP3 : SparkBigData_TP3 : Spark
BigData_TP3 : Spark
 
[Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?
[Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?[Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?
[Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?
 
Tech day hadoop, Spark
Tech day hadoop, SparkTech day hadoop, Spark
Tech day hadoop, Spark
 
Big Data, Hadoop & Spark
Big Data, Hadoop & SparkBig Data, Hadoop & Spark
Big Data, Hadoop & Spark
 
Cours Big Data Chap6
Cours Big Data Chap6Cours Big Data Chap6
Cours Big Data Chap6
 
Base de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvreBase de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvre
 
Utiliser Hadoop en perl avec HadoopStreaming
Utiliser Hadoop en perl avec HadoopStreamingUtiliser Hadoop en perl avec HadoopStreaming
Utiliser Hadoop en perl avec HadoopStreaming
 
Elastic serach
Elastic serachElastic serach
Elastic serach
 
Stats web avec Hive chez Scoop.it
Stats web avec Hive chez Scoop.itStats web avec Hive chez Scoop.it
Stats web avec Hive chez Scoop.it
 
04 big data fournisseurs
04 big data fournisseurs04 big data fournisseurs
04 big data fournisseurs
 

Similaire à Big sql4meetup

Azure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaAzure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaMicrosoft
 
20160216 - From BigData to BigProcessing
20160216 - From BigData to BigProcessing20160216 - From BigData to BigProcessing
20160216 - From BigData to BigProcessingPierre-Marie Brunet
 
P8 03 presentation
P8 03 presentationP8 03 presentation
P8 03 presentationrajiasellami
 
Presentation du SGBD Oracle DATABASE.pptx
Presentation du SGBD Oracle DATABASE.pptxPresentation du SGBD Oracle DATABASE.pptx
Presentation du SGBD Oracle DATABASE.pptxPriscilleGANKIA
 
Azure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides KeynoteAzure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides KeynoteMicrosoft
 
Présentation Big Data et REX Hadoop
Présentation Big Data et REX HadoopPrésentation Big Data et REX Hadoop
Présentation Big Data et REX HadoopJoseph Glorieux
 
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014Benoît de CHATEAUVIEUX
 
Comparaison des solutions Paas
Comparaison des solutions PaasComparaison des solutions Paas
Comparaison des solutions Paasyacine sebihi
 
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...Frederic Descamps
 
Distributed computing with Spark 2.x
Distributed computing with Spark 2.xDistributed computing with Spark 2.x
Distributed computing with Spark 2.xDr Hajji Hicham
 
Architecture Big Data open source S.M.A.C.K
Architecture Big Data open source S.M.A.C.KArchitecture Big Data open source S.M.A.C.K
Architecture Big Data open source S.M.A.C.KJulien Anguenot
 
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
 
LP_Admin_base_données.ppt
LP_Admin_base_données.pptLP_Admin_base_données.ppt
LP_Admin_base_données.pptIdriss22
 
Présentation_Spark.pptx
Présentation_Spark.pptxPrésentation_Spark.pptx
Présentation_Spark.pptxboulonvert
 
Hadoop et son écosystème
Hadoop et son écosystèmeHadoop et son écosystème
Hadoop et son écosystèmeKhanh Maudoux
 
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017) Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017) univalence
 
SAS Forum Soft Computing Théâtre
SAS Forum Soft Computing ThéâtreSAS Forum Soft Computing Théâtre
SAS Forum Soft Computing ThéâtreSoft Computing
 

Similaire à Big sql4meetup (20)

Azure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaAzure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmedia
 
Infrastructure as code drupal
Infrastructure as code drupalInfrastructure as code drupal
Infrastructure as code drupal
 
20160216 - From BigData to BigProcessing
20160216 - From BigData to BigProcessing20160216 - From BigData to BigProcessing
20160216 - From BigData to BigProcessing
 
REX Ansible
REX AnsibleREX Ansible
REX Ansible
 
P8 03 presentation
P8 03 presentationP8 03 presentation
P8 03 presentation
 
Presentation du SGBD Oracle DATABASE.pptx
Presentation du SGBD Oracle DATABASE.pptxPresentation du SGBD Oracle DATABASE.pptx
Presentation du SGBD Oracle DATABASE.pptx
 
Azure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides KeynoteAzure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides Keynote
 
Présentation Big Data et REX Hadoop
Présentation Big Data et REX HadoopPrésentation Big Data et REX Hadoop
Présentation Big Data et REX Hadoop
 
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
 
Comparaison des solutions Paas
Comparaison des solutions PaasComparaison des solutions Paas
Comparaison des solutions Paas
 
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
 
Distributed computing with Spark 2.x
Distributed computing with Spark 2.xDistributed computing with Spark 2.x
Distributed computing with Spark 2.x
 
Architecture Big Data open source S.M.A.C.K
Architecture Big Data open source S.M.A.C.KArchitecture Big Data open source S.M.A.C.K
Architecture Big Data open source S.M.A.C.K
 
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
 
LP_Admin_base_données.ppt
LP_Admin_base_données.pptLP_Admin_base_données.ppt
LP_Admin_base_données.ppt
 
Présentation_Spark.pptx
Présentation_Spark.pptxPrésentation_Spark.pptx
Présentation_Spark.pptx
 
Hadoop et son écosystème
Hadoop et son écosystèmeHadoop et son écosystème
Hadoop et son écosystème
 
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017) Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
 
SAS Forum Soft Computing Théâtre
SAS Forum Soft Computing ThéâtreSAS Forum Soft Computing Théâtre
SAS Forum Soft Computing Théâtre
 
_JCVFr
_JCVFr_JCVFr
_JCVFr
 

Big sql4meetup

  • 1. Big Compute on Hadoop Parallélisation de l'algorithme de similarité « Jaro-Winkler » Zied Abidi Jacques Milman
  • 2. 2 Le contexte § Dimentionner une plateforme pour l’exécution d’un traitement lourd. § Actuellement le traitement prend 13 jours § Mesure de similarité entre des chaines de caractère avec Jaro-winkler § Algorithme de similarité entre des chaines de caractère § Conçu spécialement pour les noms et prénom § La similarité des premiers caractères est la plus importante Jaro-Winkler
  • 3. 3 Plateforme d’exécution 2 Noeuds de gestion et 10 Noeuds de calculs / Data  8 vcpu core & 32 Go RAM IBM BigSQL § Les données utilisées Ø1 fichier de 100.000 ligne (130 Mo) ØChaque ligne contient un identifiant et un label § Extrait:
  • 4. 4 L’implémentation Spark Lecture des fichiers Produit cartésien Appliquer jaro winkler Enregistrer le résultat sur hdfs spark.read.load(" /user/spark/… - Taille du fichier de donnnées < taille d’un block HDFS - => pré traitemment en divisant le fichier d’entrée en plusieurs fichier .join(EXPORT_OC1, leftDF.id<rightDF.id) - Le produit cartésien gégère des doublants : ab, ba - Inutile de faire les memes comparaisons J Cart_prod.map(lambda line: jaro(l.label1, l.label2) ) .write.save("/user/spark/… ", format="parquet") - Ecriture avec le format parquet pour réduire la taille des données écrites 0 1000 2000 3000 Python C temps d'execution (Sec) L’écriture en C est 6 fois plus rapide que l’implémentation en python
  • 5. 5 Dimensionnement § Vérification de la scalabilité linaire de l’implémentation: - En fonction de l’évolution des données - En fonction de l’évolution des nombre d’unité d’exécution (cpu) § Calcul du nombre d’operation par seconde et par coeur de cpu (40.500) Evolution du nombre d’operation par seconde Nombre nodes = # traitements / ( Temps d’exécution voulu * # cœur par noeud * # opération par seconde )
  • 7. 7 Hive is Really 3 Things… Open source SQL on Hadoop SQL Execution Engine Hive Hive Storage Model (open source) CSV Parquet ORC Others…Tab Delim. Hive Metastore (open source)MapReduce Applications
  • 8. 8 Big SQL Preserves Open Source Foundation Leverages Hive metastore and storage formats. No Lock-in. Data part of Hadoop, not Big SQL. Fall back to Open Source Hive Engine at any time. SQL Execution Engines Big SQL Hive Hive Storage Model (open source) CSV Parquet ORC Others…Tab Delim. Hive Metastore (open source) Applications
  • 9. 9 Big SQL Architecture vs other SQL Engines Leverages Hive metastore and storage formats. SQL Execution Engines Big SQL Hive Hive Storage Model (open source) CSV Parquet ORC Others…Tab Delim. Hive Metastore (open source) BigSQLruntime Applications Spark SQL Impala
  • 10. 10 Code implementation § UDF Implementation void SQL_API_FN jaro_winkler ( char *s1, char *s2, double *out, short *i1, short *i2, short *i3, SQLUDF_TRAIL_ARGS ) { *out=jaro_winkler_distance(s1,s2); *i3 = 0; } § SQL Implementation CREATE FUNCTION jaro_winkler ( CHAR(32) ,CHAR(32) ) returns double not fenced deterministic language c parameter style sql external name ’jaro!jaro_winkler' external action; • Algo implementation double jaro_winkler_distance(char *s1, char *s2) {...}
  • 11. 11 The query create external hadoop table jaro_ext ( id1 int,id2 int,score dec(5,4)) row format delimited fields terminated by ',’ lines terminated by 'n’ stored as textfile location '/user/bigsql/jaro_ext/'; insert into jaro_ext selects.id as id_source ,c.id as id_cible,jaro_winkler(s.string,c.string) from jaro_left s ,jaro_left c where s.id < c.id;
  • 14. 14 Enseignements ØComplexité du fine tuning des traitements Spark ØImportance du langage avec lequel sont écrits les traitements. ØBigSQL permet des gains de performance et de productivité ØTechniques d’optimisation similaires
  • 15. FIN