Initiation `a Apache Spark avec Java
Hamzaoui Mohamed Ali
2016
Facult´e des sciences math´ematiques, physiques et naturelles de Tunis
Plan
1. Intoduction
2. Familiarisation avec les concepts de Spark
3. Mise en oeuvre des RDDs
2/16
Intoduction
3/16
Intoduction
Apache Spark se pr´esente comme la nouvelle g´en´eration de moteur de
calcul distribu´e qui remplace progressivement Hadoop/MapReduce.
Spark est ´ecrit en Scala et s’ex´ecute sur la machine virtuelle Java (JVM).
Les langages support´es actuellement pour le d´eveloppement
d’applications sont : Scala , Python , Clojure R ET JAVA .
4/16
Mise en place de l’environement
Pour bien commencer, il vous faut installer sur la machine :
• Un JDK 1.8.x.
• Un IDE ou ´editeur de texte : Sublime Text, Eclipse, netbeans.
• Le binaire pr´e-compil´e de Spark.
5/16
Sommaire
Intoduction
Familiarisation avec les concepts de Spark
Mise en oeuvre des RDDs
6/16
Spark Context
SparkContext est la couche d’abstraction qui permet `a Spark de savoir o`u
il va s’ex´ecuter.
Un SparkContext standard sans param`etres correspond `a l’ex´ecution en
local sur 1 CPU du code Spark qui va l’utiliser.
public class FirstRDD {
public static void main(String[] args) {
JavaSparkContext sc = new JavaSparkContext();
JavaRDD<String> lines = sc.textFile(”/path/fst.
txt”);}}
7/16
RDD
L’abstraction de base de Spark est le RDD pour Resilient Distributed
Dataset, c’est une structure de donn´ee immutable, nous pouvons voir un
RDD comme une table dans une base de donn´ees.
Un calcul distribu´e avec Spark commence toujours par un chargement de
donn´ees via un Base RDD.
8/16
Transformations et Actions
2 concepts de base s’appuient et s’appliquent sur le RDD.
9/16
Sommaire
Intoduction
Familiarisation avec les concepts de Spark
Mise en oeuvre des RDDs
10/16
Mise en oeuvre des RDDs
Les RDDs sont une collection d’objets immuables r´epartis sur plusieurs
noeuds d’un cluster. Un RDD est cr´e´e `a partir d’un source de donn´ees ou
d’une collection d’objets Scala, Python ou Java.
11/16
Mise en oeuvre des RDDs
12/16
Mise en oeuvre des RDDs
Les op´erations disponibles sur un RDD sont :
La cr´eation :
public class FirstRDD {
public static void main(String[] args) {
JavaRDD<String> lines = sc.textFile(”data.txt”);
List<Integer> data = Arrays.asList(1, 2, 3, 4, 5);
JavaRDD<Integer> distData = sc.parallelize(data);}}
13/16
Mise en oeuvre des RDDs
Les transformations :
Les transformations ne retournent pas de valeur seule, elles retournent un
nouveau RDD. Par exemple : map, filter, flatMap, groupByKey,
reduceByKey.
public class FirstRDD {
public static void main(String[] args) {
JavaRDD<String> lines = sc.textFile(”data.txt”);
List<Integer> data = Arrays.asList(1, 2, 3, 4, 5);
JavaRDD<Integer> distData = sc.parallelize(data);
JavaRDD<Integer> 2distData = distData.map(( i)−>{
return i∗2;});}}
14/16
Mise en oeuvre des RDDs
L’action :
Les actions ´evaluent et retournent une nouvelle valeur. Au moment o`u
une fonction d’action est appel´ee sur un objet RDD, toutes les requˆetes
de traitement des donn´ees sont calcul´ees et le r´esultat est retourn´e. Les
actions sont par exemple reduce, collect, count, first, take, countByKey
et foreach.
public class FirstRDD {
public static void main(String[] args) {
JavaRDD<String> lines = sc.textFile(”data.txt”);
List<Integer> data = Arrays.asList(1, 2, 3, 4, 5);
JavaRDD<Integer> distData = sc.parallelize(data);
JavaRDD<Integer> = distData.reduce((j,i) −> {
return i + j;});}}
15/16
Les Pairs RDD
Spark offre des fonctionnalit´es sp´ecifiques aux RDD clef-valeur,
RDD[(K,V)] . Il s’agit notamment des fonctions groupByKey,
reduceByKey, mapValues, countByKey, cogroup.
JavaRDD<String> lines = sc.textFile(”data.txt”);
JavaPairRDD<String, Integer> pairs;
pairs = lines.mapToPair(s −> new Tuple2(s, 1));
JavaPairRDD<String, Integer> counts;
counts = pairs.reduceByKey((a, b) −> a + b);
16/16

Introduction Apche Spark

  • 1.
    Initiation `a ApacheSpark avec Java Hamzaoui Mohamed Ali 2016 Facult´e des sciences math´ematiques, physiques et naturelles de Tunis
  • 2.
    Plan 1. Intoduction 2. Familiarisationavec les concepts de Spark 3. Mise en oeuvre des RDDs 2/16
  • 3.
  • 4.
    Intoduction Apache Spark sepr´esente comme la nouvelle g´en´eration de moteur de calcul distribu´e qui remplace progressivement Hadoop/MapReduce. Spark est ´ecrit en Scala et s’ex´ecute sur la machine virtuelle Java (JVM). Les langages support´es actuellement pour le d´eveloppement d’applications sont : Scala , Python , Clojure R ET JAVA . 4/16
  • 5.
    Mise en placede l’environement Pour bien commencer, il vous faut installer sur la machine : • Un JDK 1.8.x. • Un IDE ou ´editeur de texte : Sublime Text, Eclipse, netbeans. • Le binaire pr´e-compil´e de Spark. 5/16
  • 6.
    Sommaire Intoduction Familiarisation avec lesconcepts de Spark Mise en oeuvre des RDDs 6/16
  • 7.
    Spark Context SparkContext estla couche d’abstraction qui permet `a Spark de savoir o`u il va s’ex´ecuter. Un SparkContext standard sans param`etres correspond `a l’ex´ecution en local sur 1 CPU du code Spark qui va l’utiliser. public class FirstRDD { public static void main(String[] args) { JavaSparkContext sc = new JavaSparkContext(); JavaRDD<String> lines = sc.textFile(”/path/fst. txt”);}} 7/16
  • 8.
    RDD L’abstraction de basede Spark est le RDD pour Resilient Distributed Dataset, c’est une structure de donn´ee immutable, nous pouvons voir un RDD comme une table dans une base de donn´ees. Un calcul distribu´e avec Spark commence toujours par un chargement de donn´ees via un Base RDD. 8/16
  • 9.
    Transformations et Actions 2concepts de base s’appuient et s’appliquent sur le RDD. 9/16
  • 10.
    Sommaire Intoduction Familiarisation avec lesconcepts de Spark Mise en oeuvre des RDDs 10/16
  • 11.
    Mise en oeuvredes RDDs Les RDDs sont une collection d’objets immuables r´epartis sur plusieurs noeuds d’un cluster. Un RDD est cr´e´e `a partir d’un source de donn´ees ou d’une collection d’objets Scala, Python ou Java. 11/16
  • 12.
    Mise en oeuvredes RDDs 12/16
  • 13.
    Mise en oeuvredes RDDs Les op´erations disponibles sur un RDD sont : La cr´eation : public class FirstRDD { public static void main(String[] args) { JavaRDD<String> lines = sc.textFile(”data.txt”); List<Integer> data = Arrays.asList(1, 2, 3, 4, 5); JavaRDD<Integer> distData = sc.parallelize(data);}} 13/16
  • 14.
    Mise en oeuvredes RDDs Les transformations : Les transformations ne retournent pas de valeur seule, elles retournent un nouveau RDD. Par exemple : map, filter, flatMap, groupByKey, reduceByKey. public class FirstRDD { public static void main(String[] args) { JavaRDD<String> lines = sc.textFile(”data.txt”); List<Integer> data = Arrays.asList(1, 2, 3, 4, 5); JavaRDD<Integer> distData = sc.parallelize(data); JavaRDD<Integer> 2distData = distData.map(( i)−>{ return i∗2;});}} 14/16
  • 15.
    Mise en oeuvredes RDDs L’action : Les actions ´evaluent et retournent une nouvelle valeur. Au moment o`u une fonction d’action est appel´ee sur un objet RDD, toutes les requˆetes de traitement des donn´ees sont calcul´ees et le r´esultat est retourn´e. Les actions sont par exemple reduce, collect, count, first, take, countByKey et foreach. public class FirstRDD { public static void main(String[] args) { JavaRDD<String> lines = sc.textFile(”data.txt”); List<Integer> data = Arrays.asList(1, 2, 3, 4, 5); JavaRDD<Integer> distData = sc.parallelize(data); JavaRDD<Integer> = distData.reduce((j,i) −> { return i + j;});}} 15/16
  • 16.
    Les Pairs RDD Sparkoffre des fonctionnalit´es sp´ecifiques aux RDD clef-valeur, RDD[(K,V)] . Il s’agit notamment des fonctions groupByKey, reduceByKey, mapValues, countByKey, cogroup. JavaRDD<String> lines = sc.textFile(”data.txt”); JavaPairRDD<String, Integer> pairs; pairs = lines.mapToPair(s −> new Tuple2(s, 1)); JavaPairRDD<String, Integer> counts; counts = pairs.reduceByKey((a, b) −> a + b); 16/16