Vous êtes sur la page 1sur 3

Issat Gafsa Framework Big Data

TP2: Explorer les données avec Spark

1. Spark History server


Pour activer le serveur d’historique sur cloudera exécuter les commandes suivantes:

$ sudo service spark-history-server stop


$ sudo -u hdfs hadoop fs -chown -R spark:spark /user/spark
$ sudo -u hdfs hadoop fs -chmod 777 /user/spark/applicationHistory

Ajouter dans le fichier /etc/spark/conf/spark-defaults.conf les lignes suivantes:

spark.eventLog.enabled=true
spark.eventLog.dir=hdfs://quickstart.cloudera:8020/user/spark/
applicationHistory
spark.yarn.historyServer.address=http://quickstart.cloudera:18088

Après exécuter la commande suivante:

$ sudo service spark-history-server start

Pour afficher le serveur d’historique il faut ouvrir le navigateur wed et aller a :


http://quickstart.cloudera:18088

2. Manipuler des données avec Spark

Dans cette partie on s’intéresse au fichier words.txt qui contient tout les travaux de l’écrivain
anglais William Shakespeare.

Pour s’assure que le fichier et déjà existant dans hdfs exécuter la commande suivante:
hadoop fs -put words.txt

Si non, il faut télécharger me fichier texte en entrant le lien suivant dans le navigateur: http://
ocw.mit.edu/ans7870/6/6.006/s08/lecturenotes/files/t8.shakespeare.txt
et le copier dans hdfs.
qu’est
Lancer le shell Spark pour scala:
$ spark-shell

scala> sc

Qu’est ce qui affiche la commande suivante? Que représente sc?

2023/2024 1 sur 3
Issat Gafsa Framework Big Data

scala> val pagecounts = sc.textFile( "words.txt")

Qu’est ce que permet de faire ce ligne de code? c’est quoi pagecounts?

scala> pagecounts.take(10)

La fonction take permet d’obtenir les 10 premiers lignes. Interpréter l’affichage de cette
commande

scala> pagecounts.take(10).foreach(println)

Interpréter l’affichage de cette commande. C’est quoi la différence par rapport à l’autre
commande?

scala> pagecounts.count

C’est quoi le résultat de ce code?

Consulter le serveur d’historique de spart pour voir les différentes taches et étapes crées.
On propose maintenant de créer un programme pour relever les mots les plus fréquents que
Shakespeare a utilisé dans ses travaux.

Pour cela on va d’abord charger le fichier dans la mémoire:


scala> val docs = sc.textFile( "words.txt")

Après on va convertir tout le texte en minuscules:

scala> val lower = docs.map(line => line.toLowerCase)

Après on va séparer les lignes en mots:

scala> val words = lower.flatMap(line => line.split(« \\s+ »))

Et produire les tuples (mot, 1)

scala> val counts = words.map(word => (word,1))

Et Compter tous les mots

scala> val freq = counts.reduceByKey(_ + _)

2023/2024 2 sur 3
Issat Gafsa Framework Big Data

Interpreter maintenant ce qui suit:

scala> freq.map(_.swap)

scala> val top = freq.map(_.swap).saveAsTextFile(« output" )

scala> val top = freq.map(_.swap).top(100)

2023/2024 3 sur 3

Vous aimerez peut-être aussi