Hadoop HPC, calcul de VAR sur Hadoop vs GridGain
-
Upload
hadoop-user-group-france -
Category
Documents
-
view
1.322 -
download
4
description
Transcript of Hadoop HPC, calcul de VAR sur Hadoop vs GridGain
© OCTO 2011
DRAFT
Retour d’expérienceHadoop MapReduce comme grille de calcul
Marc Bojoly, architecte senior OCTO Technology, [email protected]
2@OCTO 2011
Pourquoi une telle idée?
C‘est un pattern - peu répandu- mais cité dans la littérature Hadoop the Definitive guide Highly Scalable Blog
Les grilles de calculs manipulent également beaucoup de données Pour accéder aux données nécessaires au calcul Pour agréger les résultats des différents noeuds
Hadoop est efficace pour paralléliser les traitements et offre simultanément des outils pour analyser d’énormes quantités de données
3@OCTO 2011
Conclusion
En un mot…..
…c’est moins performant qu’une grille de calcul
4@OCTO 2011
Happy hour !
5@OCTO 2011
Oui mais encore….
C’est moins performant qu’une grille de calcul…….sauf dans certains cas particuliers
Objectifs de la présentation Vous indiquez lesquels Vous donner quelques chiffres Vous permettre d’argument négativement si quelqu’un vous propose
une idée similaire
6@OCTO 2011
Agenda
Le cas d’étude : la VARLe code Hadoop et GridGain de ce
POCLes mesures pour comparerLes résultatsLes optimisationsExplications
7@OCTO 2011
La Value At Risk
VAR : une mesure de la perte maximale possible, durant une période de temps donnée avec une probabilité maximale fixée
75 €
Prix d’achat
10% de (mal)chanceD’avoir plus de 25€ de perte
8@OCTO 2011
Simuler pour calculer la VAR de produits complexes
Simulation de prix Lorsque l’historique n’est pas
disponible• On simule le prix des produits
simples (actions, taux d’intérêt) pour lesquels on a un historique
• On utilise le modèle de Black and Sholes pour calculer le prix actuel de l’action
Le calcul de Monte-Carlo Pourquoi ça marche ?
• Un calcul précis à partir de tirage aléatoire !
• Basé mathématiquement sur la loi des grands nombres
Hello World : le calcul de Pi
© OCTO Technology 2010
Un calcul intensif…adapté au Map/Reduce
0
1
2
VAR à 77%
Map Reduce
SimulationCalcule les prix correspondants3 prix sont retournés par chaque noeud
Librairie
Paramètres d’entrée
Regroupe tous les prix et identifie les 9*33%=2 plus faiblesIdentifie le plus haut parmi ces 2 : il s’agit de la VAR à 77%
9
10@OCTO 2011
Le match : Gridgain versus Hadoop
GridGain Conçu comme une pure grille
de calcul Basée sur le pattern
Map/Reduce Open Source
Hadoop Conçu comme un framework
de calcul distribué, scalable et fiable
Basée sur le pattern Map/Reduce
Open Source
Les règles du jeu Même noyau de calcul Exécuté sur la même « grille »
Un à 2 portables (DEL Latitude E6510 avec un code i7 quad core avec 4 GB de RAM)
Comparaison sur un cas d’utilisation nécessitant d’utiliser le disque
11@OCTO 2011
Le moteur de calcul
Optimisation
Potentiellement~10 000
opérations +,-,*,/
Variable 1E3 à 1E9
12@OCTO 2011
Algorithme
Split
Aperçu de Gridgain
Map
(…)
(…)
13@OCTO 2011
Aperçu de GridGain
Reduce
14@OCTO 2011
Aperçu de Hadoop
Map
Adapter pourComputeVar()
Split
N tirages par process
15@OCTO 2011
Aperçu de Hadoop
Reduce
16@OCTO 2011
Un cas d’utilisation à l’avantage d’Hadoop
Objectifs Réaliser le calcul de façon parallèle Traiter ensuite les résultats dans la grille de façon
colocalisée Cas d’utilisation
Calcul de la VAR comme précédemment Collecte des résultats de calcul intermédiaires Analyse avec Hadoop pour expliquer la VAR
Implémentations GridGain calcule puis écrit ses données dans un fichier Hadoop calcule de façon standard dans HDFS
17@OCTO 2011
Exemple d’analyse explicative avec Hive
INSERT OVERWRITE LOCAL DIRECTORY "HiveOutput" ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' select cp.s0, cp.price from cp order by cp.price;'
Hello World : on retrouve les formules de Black-and-Sholes…
18@OCTO 2011
Résultat sur GridGain hors du cas d’analyse
1 DELL Latitude E6510 avec un core i67 quad core et 4 GB de RAM., 4 threads simultanés
Les données ne sont pas stockées pour analyse
19@OCTO 2011
« combine » rejetée pour les besoins d’analyse
Un seul reducer sur Gridgain C’est un goulet d’étranglement
Le calcul de la VAR permet de ne pas envoyer toutes les données Combine : ne renvoyer de chaque nœud que 10% du volume total Mais on ne sait plus expliquer
Quelques résultats
2 machines et 6 processus
Temps optim combineTemps standard
20@OCTO 2011
Conservation des paramètres + résultats pour analyse
1 machine physique avec 4 coeurs sur mon laptop, un DELL Latitude E6510 avec un core i67 quad core et 4 GB de RAM.
21@OCTO 2011
GridGain : 1 s., avec données 40 s., Hadoop >= 40 s.
1 machine virtuelle avec 2 GB de RAM et 4 coeurs sur mon laptop, un DELL Latitude E6510 avec un core i67 quad core et 4 GB de RAM.
22@OCTO 2011
Algorithme sur Hadoop (1/2)
Extraction de la VAR avec l’aide du tri par clé Utilisation de la
fonction de tri des clés Données triées par
scénario puis par prix croissant
Plusieurs tirages peuvent donner le même prix
scenario id;percentile size;call price
La clé intermédiaire
Donnée en sortie
1;10;0.513775910851316 ( "252 84.31301373924966120.00.05 0.2 0.513775910851316", "252103.39569385168355 120.0 0.050.2 4.181165705822988", "252
123.11293496630553 120.0 0.05 0.214.414516512987014")
23@OCTO 2011
Hadoop : Implémentation 1
Job Hadoop
Map : compute
Reduce: idempotent
Job Hive
Analyse des données
Client : lecture du fichier trié par prix
Extraction du percentile
1;10;0.513775910851316 ( "252 84.31301373924966120.00.05 0.2 0.513775910851316", "252103.39569385168355 120.0 0.050.2 4.181165705822988", "252
123.11293496630553 120.0 0.05 0.214.414516512987014")
24@OCTO 2011
Algorithme sur Hadoop (1/2)
Extraction de la VAR par le Reducer
Parallélisation : un reducer par simulation Utilisation d’un partitionner
par identifiant de simulation Utilisation d’un
comparateur par identifiant de simulation ET prix de l’option
Le reducer lit la taille du percentile et extrait la Nième valeur par ordre croissant
scenario id;percentile size;call price
La clé intermédiaire
Donnée en entrée du reducer1;10;0.513775910851316 ( "252 84.31301373924966120.0
0.05 0.2 0.513775910851316", "252103.39569385168355 120.0 0.050.2 4.181165705822988", "252
123.11293496630553 120.0 0.05 0.214.414516512987014")
25@OCTO 2011
Hadoop : Implémentation 2
Job Hadoop
Map : compute
Reduce: idempotent
Job Hive
Analyse des données
Job Hadoop
Map : 0
N Reducers: extraction du percentile
1;10;0.513775910851316 ( "252 84.31301373924966120.00.05 0.2 0.513775910851316", "252103.39569385168355 120.0 0.050.2 4.181165705822988", "252
123.11293496630553 120.0 0.05 0.214.414516512987014")1;11;0.513775910851316 ( "252 84.31301373924966120.00.05 0.2 0.513775910851316", "252103.39569385168355 120.0 0.050.2 4.181165705822988", "252
123.11293496630553 120.0 0.05 0.214.414516512987014")
FirstPartitionner
26@OCTO 2011
Optimiser Hadoop : optimiser les accès disques
Optimisation de paramètres Plus de mémoire
(mapred.child.java.opts) Traiter des lots plus importants
(io.file.buffer.size,io.sort.mb, io.sort.factor,)
Lire et écrire des blocs plus importants sur HDFS (dfs.block.size)
Optimisations mineures Comparer sans désérialiser :
1,19x plus rapide
#core-site.xmlio.file.buffer.size=131072#hdfs-site.xmldfs.block.size=134217728#mapred-site.xmlmapred.child.java.opts=-Xmx384mio.sort.mb=250io.sort.factor=100
27@OCTO 2011
Hadoop dépasse GridGain sur les hauts volumes
1 machine virtuelle avec 2 GB de RAM et 4 coeurs sur mon laptop, un DELL Latitude E6510 avec un core i67 quad core et 4 GB de RAM.
28@OCTO 2011
Conclusion : des comparaisons… parfois musclée
29@OCTO 2011
Conclusion : fonctionnalités Hadoop / GridGain
Hadoop GridGain
Designed to large DataSets Yes (distributed FS) Not included
Nb. Of reducers N 1
Programming model map(k, v, collector<k, v> output)map(key, value, collector<k, v> output)reduce(k, v, collector<k, v> output)
r GridJobAdapter ( v reduce() )r Reduce(List<GridJobResult>)
Between Map and Reduce SortCombinePartition
NA
Serialization Custom Java.serialisation
Interface Yes (Web) Partly (JMX)
Programming Model
Locality Enforced Possible
Un critère de choix principal Si cela tient en mémoire => GridGain Sinon => Hadoop et optimiser les accès disques
30@OCTO 2011
Questions ?