Spark Journées informatiques RI septembre 2016

Slides:



Advertisements
Présentations similaires
Developpement Process « Coding party !! » Tony Carnal Altran.
Advertisements

Projet de fin d'étude pour l'obtention du Diplôme Nationale d'Ingénieur en Informatique Conception et développement des modules de GED pour l’ indexation.
Composants Matériels de l'Ordinateur Plan du cours : Ordinateurs et applications Types d'ordinateurs Représentation binaires des données Composants et.
Programmation Objet en Python L2 (Informatique) 2011 – 2012 CM : Jerzy Karczmarczuk – TD/TP : Véronique Terrier (Cherchez-nous.
Oubliez SQL avec SQLAlchemy Pycon.fr 2009 Michael Scherer.
PILOTER VOTRE INFRASTRUCTURE VIRTUALISEE AVEC PYTHON ( UN RETOUR D’EXPÉRIENCE EN ENVIRONNEMENT VMWARE ET IRONPYTHON) Jean-marc Pouchoulon PYCON FR 2009.
Le système Raid 5 Table des matières Qu'est ce que le RAID ? Les objectifs Le raid 5 Les avantages et les inconvénients Les composants d’un Raid.
1 Le stage informatique de Master Rayonnement et Énergie 2009/2010 Ivana Hrivnacova Vincent Lafage Basé sur le stage informatique du LAL et IPN par (2005/2006):
1 Le stage informatique de Masters APIM et PIE (2012/2013) Ivana Hrivnacova Vincent Lafage Basé sur le stage informatique du LAL et IPN par (2005/2006):
Comparing color edge detection and segmentation methods Projet TIM.
Présentation du programme
Introduction Bases de Données NoSQL Principe de base Avantages/Inconvénients L’évolution du Web 2.0 et actuellement Web 3.0, a montrée l’insuffisance des.
WIKITTY Base de données orientée documents et API de persistance pour Java.
Un système autonomique basé sur des bases de connaissances pour améliorer les performances d’un entrepôt de données Réalisé par : OUSSAFI MOHAMMED HOURRI.
ANNEE ACADEMIQUE Institut Supérieur Emmanuelle D’Alzon de Butembo COURS: THEORIE DE BASE DE DONNEES : 45H PROMOTION: G2 Gestion Informatique.
MOUAD ZEHARI SOUFIANE BENHLIMA Réaliser par : Encadré par : Mme Najat RAFALIA Membres de jury: Mme Najat RAFALIA Mr Jâfar ABOUCHABAKA Mr Moulay Youssef.
Interfaçage entre Maple et du code externe
Les Bases de données Définition Architecture d’un SGBD
Activité DIESEL TS1 BTS MCI 2016  STRATEGIES INJECTION
Choisir le bon format de visualisation pour réussir sa dataviz
e-Prelude.com Analyse globale du flux
Environnement du développement de BD ORACLE REPORTS 10g
Synthèse des difficultés rencontrées et des bonnes pratiques
Session 1 6 mars 2017 Plateforme ICONICS Justine Guégan
Initiation aux bases de données et à la programmation événementielle
Expériences significatives Conception de l’Architecture AC2020
Langage de manipulation de données (LMD)
Base de données: Généralité IFT6800 Jian-Yun Nie.
Journée Analyse D0, 19 janvier 2004
Les Bases de données Définition Architecture d’un SGBD
Ecole Spark mars 2017.
Spark et LSST Christian Arnault.
Profils d’emplois JT du 24 septembre 2001
Les bases de données et le modèle relationnel
DARCY Lionel BTS SIO Option SLAM
Session 1 31 mai 2017 Plateforme ICONICS Justine Guégan
Le stage informatique de l'IPN
Le stage informatique de l'IPN 2008/2009
Outils Statistiques pour la Sémantique Décembre 2013
Technologies de l’intelligence d’affaires Séance 11
Technologies de l’intelligence d’affaires Séance 12
Réalisation d’une application web sous le thème: «Mon vétérinaire » par : Benzineb Asmaa et Meftahi Oualid Présentation à Université Saad Dahlab Blida.
CeMEB La plateforme MBB
Programmation système
CeMEB La plateforme MBB
Manipulation D’Une Base De Données
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II
Plus de 4000 langages....
ACP Analyse en Composantes Principales
Outils et principes de base. Exemple d’application  Gestion de données d’enquête : Interface de saisie en ligne  insère directement les données dans.
Chapitre2: SGBD et Datawarehouse. On pourrait se demander pourquoi ne pas utiliser un SGBD pour réaliser cette structure d'informatique décisionnelle.
Présentation de la base Frantext
1. LE LANGAGE SQL DDL Version 2 - Janvier Le langage SQL-DDL
TGV Trigger Générique Vme Face avant Tri d’événements de physique
BIOS- OS Environnement logiciel PC / Traitement numérique / Contrôle.
Transition vers l’assignation automatique des stages à la résidence
PRESENTATION ACCESS Editeur : Microsoft Environnement Windows (SE)
PLATE FORME DE GESTION ÉLECTRONIQUE DE DOCUMENTS Présenté par: Amine LARIBI.
Présentation des services IT
Passage primaire-secondaire
Notions d'architecture client-serveur. Présentation de l'architecture d'un système client/serveur Des machines clientes contactent un serveur qui leur.
Lecture/Écriture de fichiers (I/O)
Prélude ERP 6 Présentation 01/05/2019 © Gérard Baglin,
Tableau de bord d’un système de recommandation
Test de performances. Test de performances:  Un test de performance est un test dont l'objectif est de déterminer la performance d'un système informatique.
La gestion électronique des documents Classe de terminale STG.
PAF Guillaume Martin - Fabrice Cizeron - Xavier Roulot
Les données structurées et leur traitement
Business Intelligence en ACube OLAP et Reporting avec ACubeOLAP et GRaM.
Transcription de la présentation:

Spark Journées informatiques RI3 26-29 septembre 2016 Christian Arnault (LAL) Julien Nauroy (DI Upsud)

La R&D Spark et LSST Mise en place d’une R&D dans le contexte de l’université Paris-Sud Candidat pour un « Equipements de Recherche Mutualisés » (ERM) Dans le cloud OpenStack (VirtualData + Paris-Sud) Plusieurs domaines d’application: LSST, BIO, … LSST: Etudes de plusieurs cas d’utilisation «Requêtes», et indexation sur un grand nombre de fichier FITS Requêtes 2D WCS Sélection selon les clés des header FITS Production de catalogues de galaxies simulées Étude du processus complet (images, photométrie, astrométrie, production des courbes de lumière) Compréhension de facteurs d’échelle Nombre de workers Distribution du CPU, du disque, de la mémoire Relation avec les base de données, formats de données

Nos plateformes Une installation est préparée au CCIN2P3: Inclus: MondoDB + Spark + HDFS 109 SNLS12 FITS headers ont été installés HDFS => tests sur des requêtes 2D WCS Une installation est utilisable dans le cloud VirtualData (LAL+UPSUD) HDFS/Ceph, OpenStack, Spark + Avro + SciPy + Matplotlib Production de galaxies simulatée (avec l’aide de Johann) => explorer l’histogramming dans le contexte Spark Acquérir de l’expérience avec les algorithmes M.R. Animation d’un groupe d’experts Spark experts dans l’environnement Paris-Saclay (Loops) Mise en place des outils de monitoring/statistiques Spark (Ganglia) CPU, Disk, IO, Memoire

Spark Originaire des membres de la Fondation Apache (ex Databricks) (Hadoop/HDFS) + MapReduce + Spark + DataSets + components associés … tout un écosystème de composants est « Spark capable » pour traiter des formats de données: Text Columnar data SQL, NoSQL Records JSON User-defined types décrits par un schema Schedule et optimise la distribution de: Data blocks vs. CPU vs. Disk vs: Mémoire Algorithmes Map Reduce pilotés par la programmation fonctionnelle et Lambda (Java), Scala, Python, R

Hadoop - MapReduce Cœur de Hadoop Beaucoup d’autres outils MAP REDUCE Un système de fichiers réparti Hadoop Distributed File System (HDFS) Un système de répartition des calculs MapReduce Beaucoup d’autres outils Stockage : Hbase, Parquet, ... Calcul : Hive (SQL), Spark, ... MAP Lecture des données et production de couples (clé, valeur) Les clés servent à organiser les données REDUCE Regroupement des clés et traitement des valeurs

Spécificités Spark par rapport à MR Framework généraliste de calcul distribué Enchaînement de traitements naturel «In memory» lorsque possible Pas d’écriture intermédiaire entre opérations Terasort: performance x30+ Peut utiliser HDFS et YARN (MR2) Également mode autonome

Un exemple simple Copie des fichiers dans HDFS (système de fichiers réparti) Cerf Ours Grue Chat Chat Grue Cerf Chat Ours Cerf Ours Grue Chat Chat Grue Cerf Chat Ours

Un exemple simple Copie des fichiers dans HDFS (système de fichiers réparti) Etape 1: Map production de (clé, valeur) Cerf , 1 Ours, 1 Grue, 1 Chat, 1 Cerf, 1 Cerf Ours Grue Chat Chat Grue Cerf Chat Ours Cerf Ours Grue Chat Chat Grue Cerf Chat Ours

Un exemple simple Copie des fichiers dans HDFS (système de fichiers réparti) Etape 1: Map production de (clé, valeur) Etape 2: regroupement des clés (shuffle & sort) Cerf , 1 Ours, 1 Grue, 1 Chat, 1 Cerf, 1 Ours, 1 Chat, 1 Cerf, 1 Grue, 1 Cerf Ours Grue Chat Chat Grue Cerf Chat Ours Cerf Ours Grue Chat Chat Grue Cerf Chat Ours

Un exemple simple Copie des fichiers dans HDFS (système de fichiers réparti) Etape 1: Map production de (clé, valeur) Etape 2: regroupement des clés (shuffle & sort) Etape 3: Reduce – somme des valeurs Cerf , 1 Ours, 1 Grue, 1 Chat, 1 Cerf, 1 Ours, 1 Chat, 1 Cerf, 1 Grue, 1 Ours, 2 Chat, 2 Cerf, 2 Grue, 2 Cerf Ours Grue Chat Chat Grue Cerf Chat Ours Cerf Ours Grue Chat Chat Grue Cerf Chat Ours

Un exemple simple Copie des fichiers dans HDFS (système de fichiers réparti) Etape 1: Map production de (clé, valeur) Etape 2: regroupement des clés (shuffle & sort) Etape 3: Reduce – somme des valeurs Etape 4: écriture du résultat Calculs distribuées Calculs distribuées Données distribuées Cerf , 1 Ours, 1 Grue, 1 Chat, 1 Cerf, 1 Ours, 1 Chat, 1 Cerf, 1 Grue, 1 Ours, 2 Chat, 2 Cerf, 2 Grue, 2 Cerf Ours Grue Chat Chat Grue Cerf Chat Ours Ours, 2 Chat, 3 Cerf, 2 Grue, 2 Cerf Ours Grue Chat Chat Grue Cerf Chat Ours

Fonctionnement de MapReduce Découpage des fichiers en blocs (ex: 128 Mo) Bloc 1 2 3 4 5

Fonctionnement de MapReduce Découpage des fichiers en blocs (ex: 128 Mo) Copie des blocs sur plusieurs nœuds Nœud A Nœud B Nœud C Nœud D Nœud E 1 2 3 4 5

Fonctionnement de MapReduce Découpage des fichiers en blocs (ex: 128 Mo) Copie des blocs sur plusieurs nœuds (typiquement 3 copies) Nœud A Nœud B Nœud C Nœud D Nœud E 1 1 1 1 2 3 4 5

Fonctionnement de MapReduce Découpage des fichiers en blocs (ex: 128 Mo) Copie des blocs sur plusieurs nœuds (typiquement 3 copies) Nœud A Nœud B Nœud C Nœud D Nœud E Bloc 1 1 2 1 1 2 2 2 3 4 5

Fonctionnement de MapReduce Découpage des fichiers en blocs (ex: 128 Mo) Copie des blocs sur plusieurs nœuds (typiquement 3 copies) Nœud A Nœud B Nœud C Nœud D Nœud E 1 1 2 1 1 2 2 3 3 2 4 3 3 5 5 4 5 4 4 5

Fonctionnement de MapReduce Découpage des fichiers en blocs (ex: 128 Mo) Copie des blocs sur plusieurs nœuds (typiquement 3 copies) Sélection des nœuds portant les calculs Les données doivent être sur un nœud Nœud A Nœud B Nœud C Nœud D Nœud E 1 1 2 1 1 2 2 3 3 2 4 3 3 5 5 4 5 4 4 5

Fonctionnement de MapReduce Découpage des fichiers en blocs (ex: 128 Mo) Copie des blocs sur plusieurs nœuds (typiquement 3 copies) Sélection des nœuds portant les calculs Les données doivent être sur un nœud Nœud A Nœud B Nœud C Nœud D Nœud E 1 1 2 1 1 2 2 3 3 2 4 3 3 5 5 4 5 4 4 5

Fonctionnement de MapReduce Découpage des fichiers en blocs (ex: 128 Mo) Copie des blocs sur plusieurs nœuds (typiquement 3 copies) Sélection des nœuds portant les calculs Les données doivent être sur un nœud Le nœud ne doit pas être occupé Nœud A Nœud B Nœud C Nœud D Nœud E 1 1 2 1 1 2 2 3 3 2 4 3 3 5 5 4 5 4 4 5

Fonctionnement de MapReduce Découpage des fichiers en blocs (ex: 128 Mo) Copie des blocs sur plusieurs nœuds (typiquement 3 copies) Sélection des nœuds portant les calculs Les données doivent être sur un nœud Le nœud ne doit pas être occupé Nœud A Nœud B Nœud C Nœud D Nœud E 1 1 2 1 1 2 2 3 3 2 4 3 3 5 5 4 5 4 4 5

Fonctionnement de MapReduce Découpage des fichiers en blocs (ex: 128 Mo) Copie des blocs sur plusieurs nœuds (typiquement 3 copies) Sélection des nœuds portant les calculs Les données doivent être sur un nœud Le nœud ne doit pas être occupé Tous les blocs doivent être traités Nœud A Nœud B Nœud C Nœud D Nœud E 1 1 2 1 1 2 2 3 3 2 4 3 3 5 5 4 5 4 4 5

Les données dans Spark Resilient Distributed Dataset (RDD) Dataframes Représentation d’un ensemble de données Distribué (et redistribuable) sur les nœuds Résistant : recalcul à la volée En mémoire lorsque possible (sinon disque) Traitement là où sont les données Dataframes données tabulaires («RDD spécialisé») Lien avec SparkSQL En entrée : Fichiers : locaux, HDFS, S3 ... Bases de données : SQL, noSQL Flux : MQ, Twitter, Kafka ... Manipulation via transformations RDD1 ⇨ RDD2 via transformation Exemples : map, reduce, filtrage En sortie : fichiers, BDD, affichage, etc

Workflow Spark nœuds : transformations et actions Représentation sous forme de graphe Graphe Acyclique Dirigé (DAG) Exécution Affichage, écriture, collecte, ... «Exécution paresseuse» Exemple: Chargement de fichiers => textFile Interprétation de chaque ligne => map Filtrage des entrées incorrectes => filter Création de couples (clé, valeur) = map Calcul valeur max par clé => reduceByKey Collecte et affichage => collect

Plus sur les données Le format de données Spark suppose que les données sont sont structurées selon le schéma généraliste (Clé, Value) Mais, de nombreux mécanismes adaptent les formats spécifiques lorsque les données ne sont pas directement sous cette forme Via une sérialisation Grâce une description JSON, Autres format: CSV, SQL, NoSQL Plusieurs packages associés à Spark permettent de supporter des formats spécifiques: Hive (pour requêtes SQL) MongoDB => headers FITS Parquet (DataSets, DataFrames) (cf HDF5) Avro (sérialisation binaire) => FITS headers

Simulation Principe Etude: La structure de données Les modèles Astrophysiques founissent des fonctions de probabilité (Probability Distribution Functions) de produire une galaxie: D’une certaine magnitude (M) D’un certain type (T) Autour d’un décalage vers le riouge (Z0) Ensuite, le but est de générer un grand nombre de galaxies pour chaque population … pour créer un catalogue ou pour histogrammer Etude: Le workflow Spark Distribution des CPU, des cores, dela mémoire La structure de données Clé complexe = (M, T, Z0) Valeur = PDF (sous la forme tabulaire) Utilisation de PySpark + SciPy, numpy, …

(user defined function) Le workflow Text file Parallelize map (M, T, Z0) generate Output catalogue HDFS (M, T, Z0), PDF Les PDF s Distribue Les PDFs Construction de Clés aléatoires Generation galaxies (user defined function)

Résultats Temps (secondes) Overhead d’activation: Spark + lecture des PDF Nombre de Galaxies 103 107 1011

Indexation de fichiers FITS Fichier FITS Données Image de SLNS12 Structure: 1 HDU (header FITS) par CCD Technologie HDFS + MongoDB Objectif: Indexation 2D Extraction des matrices de transformation WCS du header Pre-calcule le centre de chaque CCD (pixel coords -> WCS coords) MongoDB document = un FITS HDU Inclut les ROI CCD = un 2D Point (valeur indexable) + un angle d’acceptance

PyMongo client = pymongo.MongoClient(MONGO_URL) lsst = client.lsst c = lsst.fits c.create_index( [ ('center', '2dsphere') ] ) radius = 1.0 for o in c.find( { 'center' : { '$geoWithin': { '$centerSphere' : [ [ -145.0, 53.0 ], radius ] } } } , {'_id':0, 'where':1, 'center':1 } ): print o Selected RA, DEC Bonne efficacité: (170 µs) mais nécessitera plus de mesures

Enjeux Quel langage utiluser pour Spark? intégration des données Scala, Python, R, Java ? Important: on a besoin d’intégrer les librairies scientifiques Scala est plus proche de Spark mais fournit un support plutôt faible aux librairies scientifiques: ~ numpy, ~ matplotlib Mais l’API pour Spark est parfois limitée Les notebook Jupyter/Zeppelin peuvent être très utiles. intégration des données Il existe un ensemble riche de packages associés Soit SQL-orientés Soit JSON-orientés Formats spécifiques Sérialiseurs (AVRO, …) DataFrames, DataSets => Connexion aux formats standards (FITS, HDF5) On pourrait établir des workflows de type pipeline pour convertir (adapter) les données « au vol » Or… ou bien adapter les données aux étapes amont de la production ??

Références Hadoop/Spark and HDF5 https://www.hdfgroup.org/pubs/papers/Big_HDF_FAQs.pdf Map Reduce in astro http://ssg.astro.washington.edu/downloadable/PASP2011_AstronomyInTheCloud.pdf Spark v2.0 https://databricks.com/blog/2016/05/11/apache-spark-2-0-technical-preview-easier-faster-and-smarter.html Drill https://www.mapr.com/blog/apache-spark-vs-apache-drill https://drill.apache.org/