Vous êtes sur la page 1sur 4

Big Data & Data Analysis

Mme. HDIOUD Ferdaous

Examen Final : Durée : 02h45

I. QCM :
Choisir la bonne réponse (Bonne réponse : 0.5 pt ; Fausse réponse : -0,25 pt ; Aucune réponse : 0
pt)

1. Comment fonctionne la distribution de fichiers sur HDFS ?


a. Répartition en fonction de la taille des fichiers sur chaque nœud du cluster.
b. Répartition en blocs répliqués sur les nœuds du cluster.
c. Répartition en nœuds répliqués sur les blocs du cluster.
d. Répartition en fonction des choix de l'utilisateur au moment de l'uploade.

2. Quel est le rôle du NameNode ?


a. Écrire ou lire les données sur les DataNodes.
b. Vérifier la disponibilité des données sur les DataNodes.
c. Remplacer un DataNode si un d'entre eux devient indisponible.
d. Administrer les transactions en autorisant ou non la lecture / écriture des fichiers.

3. Quand on ajoute des machines à un cluster pour augmenter sa capacité, il s'agit d'un passage à
l'échelle :
a. horizontal
b. transversal
c. vertical

4. Lequel de ces groupes d'outils fait partie de ce qu'on appelle les solutions de stockage clé-valeur ?
a. Cassandra, Redis, Riak
b. CouchDB, MongoDB, Riak
c. Elasticsearch, Solr, Splunk

5. Laquelle des options suivantes n'est pas le mode d’execution d’Hadoop?


a. Standalone mode
b. Hibernate-based mode
c. Pseudo-distributed mode
d. Fully distributed mode

6. Laquelle des options suivantes est la commande utilisée pour tester si tous les démons Hadoop
fonctionnent parfaitement ou non?
a. YARN
b. HDFS
c. JPS
d. None of the above
Big Data & Data Analysis
Mme. HDIOUD Ferdaous

II. Questions de Cours : (4 points)


1. Quels sont les différents fichiers de configuration de Hadoop ?
2. Donner la différence entre Hadoop V1 et Hadoop V2 ?
3. Expliquer le principe de Co-localisation des données ? pourquoi a-t-on besoin de ce principe ?
4. Donner les Vs de Big Data en détails ?

III. HDFS :
A) Donner la commande HDFS pour :
1pt 1- Créer un répertoire (MonDossier) dans la racine HDFS.
1pt 2- Copier un fichier (File.txt) du bureau local (utilisateur Cloudera) vers MonDossier de HDFS.
1pt 3- Renommer File.txt en Fichier1.txt dans HDFS.
1pt 4- Créer un nouveau fichier Fichier2.txt dans MonDossier de HDFS.
B) Compléter le code Java suivant :

1pt FileSystem hdfs =FileSystem.get(URI.create("………………………(1)…………………"), new


Configuration());
1pt
…………………………(2)…………………………

if(hdfs.exists(newFolderPath))

1pt …………(3)……..(newFolderPath, true); //Supprimer le dossier

1pt …………(4)…….. (newFolderPath); //Créer un nouveau dossier

Path hdfsFilePath =new Path(newFolderPath+”/newFile.txt”);

1pt …………(5)…………..( hdfsFilePath); //Créer un fichier HDFS

Path localFilePath=new Path(“/home/cloudera/Desktop/”);

1pt …………(6)………….. (hdfsFilePath, localFilePath);

IV. MapReduce:
Commenter le code Java suivant :

public class WordCount {

public static void main(String [] args) throws Exception

Configuration c=new Configuration();


Big Data & Data Analysis
Mme. HDIOUD Ferdaous

String[] files=new GenericOptionsParser(c,args).getRemainingArgs();

Path input=new Path(“/home/cloudera/Desktop/source.txt”);

Path output=new Path((“/home/cloudera/Desktop/destination.txt”);

Job j=new Job(c,"wordcount"); // ………………..(1)…………………

j.setJarByClass(WordCount.class);

j.setMapperClass(MapForWordCount.class); //…………………(2)…………………

j.setReducerClass(ReduceForWordCount.class); //…………………(3)…………………

j.setOutputKeyClass(Text.class); //……………………..(4)………………………

j.setOutputValueClass(IntWritable.class); //……………………..(5)………………………

FileInputFormat.addInputPath(j, input); //…………………….(6)………………………….

FileOutputFormat.setOutputPath(j, output);

System.exit(j.waitForCompletion(true)?0:1); //……………………(7)………………………..}

V. NoSQL: (4points)
1. Citer brièvement les différences entre une base de données relationnelle et une base de données
NoSQL
2. « A l’arrivée des bases de données NoSQL, les bases de données relationnelles n’auront plus de place
dans les systèmes d’information des entreprises. » Vous êtes d’accord avec cet énoncé ? Justifier votre
réponse
3. Citer les différents cas d’utilisation d’une base de données NoSQL
4. Lier chaque cas d’application avec la base de données convenable
1- Réseau social A- Cassandra
2- Moteur de recherche B- Neo4j
3- Compteur de vitesse
C- MongoDB
instantanée

VI. SPARK et NoSQL:


Une société de Telecom désire exploiter les données des clients afin de prévoir les tentatives de Boycott de ses
clients. Pour cela, la société possède un cluster de 100 serveurs de 64 Go de RAM, 4 Vcores et 10 To de
disque dur (on ne compte pas les ressources occupées par les SE). La société a 5 million de clients dont chacun
envoie une moyenne de 1 Mo de messages vers ses contacts par jour.
Big Data & Data Analysis
Mme. HDIOUD Ferdaous

Dans une base de données NoSQL, on stocke ces messages afin de les analyser. On s’intéresse ici de détecter
les messages qui commencent à se dispatcher rapidement dans le graphe des clients à travers les contacts.
L’objectif de la société est également le blocage de certains messages afin de limiter le partage de scandales
par exemple.

1) Sachant que le système doit offrir un rapport automatique chaque jour, et que le traitement se fait en
trois étapes (Chargement des messages -> comptage de nombre d’occurrences -> calcul de points
gagnés dans le classement de chaque message), est ce que l’infrastructure est suffisante si on utilise
Apache SPARK ? Justifier
2) Si on garde tous les messages, dans combien de jours l’espace de stockage du cluster sera saturé ?
3) Quel est le type de la base de données la plus adéquate pour stocker les messages ?
4) Afin de classer les clients intéressés par les mêmes thématiques de messages, la société a décidé
d’utiliser la machine Learning. Proposer un algorithme qui permet de réaliser cet objectif.
5) La société doit indexer les messages de chaque jour. Pour cela, on attribue un poids à chaque terme,
puis on trie les termes par ordre décroissant du poids. On remarque que les mots vides (Stop Words)
prennent toujours les premières positions dans les index. Expliquer pourquoi, et proposer une solution.
6) Quel est l’élément de l’écosystème SPARK qui permet d’exécuter les algorithmes de la machine
Learning.

VII. Algorithmique Map-Reduce : (6 points)


On considère deux matrices A et B, carrées et creuses, c’est-à-dire comportant beaucoup de valeurs nulles
(0.0). Elles sont donc stockées sous la forme d’ensembles de triplets (i, j, vali,j ) où vali,j ≠ 0. Ce format est plus
économique qu’un stockage sous forme de tableau dès qu’il y a principalement des valeurs nulles dans les
matrices, et reste générique (adapté à tout type de matrices creuses).

Question : On suppose que la longueur du côté des matrices est connue, et notée n. Proposez un algorithme
Map-Reduce pour calculer la matrice carrée C = A × B, de n × n éléments.

Vous aimerez peut-être aussi