Big sql4meetup

Jacques Milman
Jacques MilmanBig Data Executive Architect um IBM
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
1 von 15

Recomendados

Introduction spark von
Introduction sparkIntroduction spark
Introduction sparkProbst Ludwine
894 views16 Folien
Chapitre 3 spark von
Chapitre 3 sparkChapitre 3 spark
Chapitre 3 sparkMouna Torjmen
581 views27 Folien
Spark - Ippevent 19-02-2015 von
Spark - Ippevent 19-02-2015Spark - Ippevent 19-02-2015
Spark - Ippevent 19-02-2015Alexis Seigneurin
4.2K views37 Folien
Chapitre 4 no sql von
Chapitre 4 no sqlChapitre 4 no sql
Chapitre 4 no sqlMouna Torjmen
275 views21 Folien
Cours Big Data Chap4 - Spark von
Cours Big Data Chap4 - SparkCours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkAmal Abid
4.7K views17 Folien
Spark - Alexis Seigneurin (Français) von
Spark - Alexis Seigneurin (Français)Spark - Alexis Seigneurin (Français)
Spark - Alexis Seigneurin (Français)Alexis Seigneurin
2K views41 Folien

Más contenido relacionado

Was ist angesagt?

Spark SQL principes et fonctions von
Spark SQL principes et fonctionsSpark SQL principes et fonctions
Spark SQL principes et fonctionsMICHRAFY MUSTAFA
10.7K views32 Folien
Cours Big Data Chap5 von
Cours Big Data Chap5Cours Big Data Chap5
Cours Big Data Chap5Amal Abid
3.7K views73 Folien
Découverte de Redis von
Découverte de RedisDécouverte de Redis
Découverte de RedisJEMLI Fathi
987 views16 Folien
Hadoop et son écosystème - v2 von
Hadoop et son écosystème - v2Hadoop et son écosystème - v2
Hadoop et son écosystème - v2Khanh Maudoux
501 views74 Folien
Apache Flink par Bilal Baltagi Paris Spark Meetup Dec 2015 von
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
2.3K views36 Folien
spark_intro_1208 von
spark_intro_1208spark_intro_1208
spark_intro_1208Mehdi Erraki
1.1K views69 Folien

Was ist angesagt?(20)

Spark SQL principes et fonctions von MICHRAFY MUSTAFA
Spark SQL principes et fonctionsSpark SQL principes et fonctions
Spark SQL principes et fonctions
MICHRAFY MUSTAFA10.7K views
Cours Big Data Chap5 von Amal Abid
Cours Big Data Chap5Cours Big Data Chap5
Cours Big Data Chap5
Amal Abid3.7K views
Découverte de Redis von JEMLI Fathi
Découverte de RedisDécouverte de Redis
Découverte de Redis
JEMLI Fathi987 views
Hadoop et son écosystème - v2 von Khanh Maudoux
Hadoop et son écosystème - v2Hadoop et son écosystème - v2
Hadoop et son écosystème - v2
Khanh Maudoux501 views
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro von Olivier Mallassi
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
Olivier Mallassi5K views
Annexe Big Data von Amal Abid
Annexe Big DataAnnexe Big Data
Annexe Big Data
Amal Abid3.2K views
Déploiement ELK en conditions réelles von Geoffroy Arnoud
Déploiement ELK en conditions réellesDéploiement ELK en conditions réelles
Déploiement ELK en conditions réelles
Geoffroy Arnoud4.9K views
BigData_TP3 : Spark von Lilia Sfaxi
BigData_TP3 : SparkBigData_TP3 : Spark
BigData_TP3 : Spark
Lilia Sfaxi31.2K views
[Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ? von Sébastien Prunier
[Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?[Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?
[Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?
Sébastien Prunier1.8K views
Cours Big Data Chap6 von Amal Abid
Cours Big Data Chap6Cours Big Data Chap6
Cours Big Data Chap6
Amal Abid2.3K views
Base de données graphe, Noe4j concepts et mise en oeuvre von MICHRAFY MUSTAFA
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
MICHRAFY MUSTAFA6.9K views
Utiliser Hadoop en perl avec HadoopStreaming von David Morel
Utiliser Hadoop en perl avec HadoopStreamingUtiliser Hadoop en perl avec HadoopStreaming
Utiliser Hadoop en perl avec HadoopStreaming
David Morel1.1K views
Stats web avec Hive chez Scoop.it von hibnico
Stats web avec Hive chez Scoop.itStats web avec Hive chez Scoop.it
Stats web avec Hive chez Scoop.it
hibnico967 views

Similar a Big sql4meetup

Azure Camp 9 Décembre - slides session développeurs webmedia von
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
1.7K views75 Folien
Infrastructure as code drupal von
Infrastructure as code drupalInfrastructure as code drupal
Infrastructure as code drupalChristophe Villeneuve
512 views47 Folien
20160216 - From BigData to BigProcessing von
20160216 - From BigData to BigProcessing20160216 - From BigData to BigProcessing
20160216 - From BigData to BigProcessingPierre-Marie Brunet
409 views55 Folien
REX Ansible von
REX AnsibleREX Ansible
REX AnsibleNoël Bardelot
525 views55 Folien
P8 03 presentation von
P8 03 presentationP8 03 presentation
P8 03 presentationrajiasellami
381 views46 Folien
Presentation du SGBD Oracle DATABASE.pptx von
Presentation du SGBD Oracle DATABASE.pptxPresentation du SGBD Oracle DATABASE.pptx
Presentation du SGBD Oracle DATABASE.pptxPriscilleGANKIA
82 views24 Folien

Similar a Big sql4meetup(20)

Azure Camp 9 Décembre - slides session développeurs webmedia von Microsoft
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
Microsoft1.7K views
Presentation du SGBD Oracle DATABASE.pptx von PriscilleGANKIA
Presentation du SGBD Oracle DATABASE.pptxPresentation du SGBD Oracle DATABASE.pptx
Presentation du SGBD Oracle DATABASE.pptx
PriscilleGANKIA82 views
Azure Camp 9 Décembre 2014 - slides Keynote von Microsoft
Azure Camp 9 Décembre 2014 - slides KeynoteAzure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides Keynote
Microsoft2.1K views
Présentation Big Data et REX Hadoop von Joseph Glorieux
Présentation Big Data et REX HadoopPrésentation Big Data et REX Hadoop
Présentation Big Data et REX Hadoop
Joseph Glorieux4.6K views
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014 von Benoît de CHATEAUVIEUX
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 von yacine sebihi
Comparaison des solutions PaasComparaison des solutions Paas
Comparaison des solutions Paas
yacine sebihi3K views
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se... von Frederic Descamps
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 von Dr Hajji Hicham
Distributed computing with Spark 2.xDistributed computing with Spark 2.x
Distributed computing with Spark 2.x
Dr Hajji Hicham467 views
Architecture Big Data open source S.M.A.C.K von Julien Anguenot
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
Julien Anguenot3.3K views
JSS2014 – Hive ou la convergence entre datawarehouse et Big Data von GUSS
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
GUSS805 views
LP_Admin_base_données.ppt von Idriss22
LP_Admin_base_données.pptLP_Admin_base_données.ppt
LP_Admin_base_données.ppt
Idriss222 views
Présentation_Spark.pptx von boulonvert
Présentation_Spark.pptxPrésentation_Spark.pptx
Présentation_Spark.pptx
boulonvert7 views
Hadoop et son écosystème von Khanh Maudoux
Hadoop et son écosystèmeHadoop et son écosystème
Hadoop et son écosystème
Khanh Maudoux9.3K views
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017) von univalence
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 1.3K views
SAS Forum Soft Computing Théâtre von Soft Computing
SAS Forum Soft Computing ThéâtreSAS Forum Soft Computing Théâtre
SAS Forum Soft Computing Théâtre
Soft Computing1.8K views
_JCVFr von JC Viens
_JCVFr_JCVFr
_JCVFr
JC Viens252 views

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