Introduction spark

357 vues

Publié le

Introduction to Apache Spark

Publié dans : Données & analyses
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
357
Sur SlideShare
0
Issues des intégrations
0
Intégrations
4
Actions
Partages
0
Téléchargements
14
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Introduction spark

  1. 1. Introduction à! Nantes - 08/07/2014! Ludwine Probst - @nivdul
  2. 2. développeuse! maths lover! machine learning & big data Leadeuse de Duchess France @nivdulnivdul.wordpress.com
  3. 3. Etat des lieux
  4. 4. Mais…
  5. 5. • analytics pour de gros datasets et données en mémoire! • Resilient Distributed Datasets (RDD)! • principe de lineage! • compatible avec Hadoop / InputFormats! • meilleures performances que Hadoop! • plus de flexibilité d’implémentation
  6. 6. Interrogation de Spark shell scala/python! supporte les lambdas expressions (Java8) compatible avec NumPy
  7. 7. Vue globale todo schéma
  8. 8. SparkContext SparkConf sparkConf = new SparkConf() .setAppName("SimpleExample") .setMaster("local"); ! //.setMaster(« spark://192.168.1.11:7077") ! ! JavaSparkContext sc = new JavaSparkContext(sparkConf);
  9. 9. Resilient Distributed Datasets (RDD) • créé au démarrage! • traitement en parallèle possible / partitionnement sur les différents noeuds du cluster! • opérations sur les RDDs = transformations + actions! • contrôle sur la persistance : MEMORY, DISK…! • resistance à la panne (principe de lineage avec le DAG) Définition : collections distribuées fault-tolerant et ! immutable
  10. 10. Créer un RDD // sc est le SparkContext ! // à partir d’un fichier texte JavaRDD<String[]> lines = sc.textFile("ensemble-des-equipements- sportifs-de-lile-de-france.csv"); ! // à partir d’un fichier venant d’Hadoop sc.hadoopFile(path, inputFormatClass, keyClass, valueClass); !
  11. 11. Opérations sur les RDDs JavaRDD<String[]> lines = sc.textFile("ensemble-des-equipements- sportifs-de-lile-de-france.csv") .map(line -> line.split(";")) // suppression de la 1ère ligne .filter(line -> !line[1].equals("ins_com")); ! lines.count(); ! // nombre par type d'équipement rangé par ordre alphabétique lines.mapToPair(line -> new Tuple2<>(line[3], 1)) .reduceByKey((x, y) -> x + y) .sortByKey() .foreach(t -> System.out.println(t._1 + " -> " + t._2)); !
  12. 12. Persistance des RDDs // lines est un RDD ! // persistance par défaut MEMORY_ONLY lines.cache(); ! // spécifié lines.persist(StorageLevel.DISK_ONLY()); lines.persist(StorageLevel.MEMORY_ONLY()); lines.persist(StorageLevel.MEMORY_AND_DISK()); ! // avec réplication lines.persist(StorageLevel.apply(1, 3)); *Spark est fault-tolerant grâce au graphe d’exécution qui enregistre la suite des opérations effectuées sur un RDD
  13. 13. Côté performances
  14. 14. Ecosystème Spark Streaming

×