CorrigéTD3 Versionetudiant
CorrigéTD3 Versionetudiant
CorrigéTD3 Versionetudiant
1
CIGBM TTIS ABouraoui TD/TP BigData
-Cela réduit le besoin des clients d'interagir avec le NameNode car les lectures
et les écritures sur le même bloc ne nécessitent qu'une seule demande initiale
au NameNode pour les informations de localisation. La réduction est
significative pour les charges de travail où les applications lisent et écrivent
principalement des fichiers volumineux de manière séquentielle.
-Étant donné que sur un grand bloc, un client est plus susceptible d'effectuer
de nombreuses opérations sur le bloc donné, il peut réduire la surcharge du
réseau en conservant une connexion TCP persistante au DataNode sur une
période prolongée.
-Il réduit la taille des métadonnées stockées sur le NameNode. Cela nous
permet de garder les métadonnées en mémoire.
2. Linéairement. HDFS est conçu en tenant compte des pannes de machine, et
donc les DataNodes n'ont pas besoin d'être des machines très fiables (très
chères). Au lieu de cela, du matériel de base standard peut être utilisé. De plus,
le nombre de nœuds peut être augmenté dès que cela devient nécessaire,
évitant le gaspillage de ressources lorsque la quantité de données est encore
limitée. C'est en effet le principal avantage du « scaling out » par rapport au
« scaling up », qui a une croissance exponentielle des coûts.
3. Avant Hadoop 2.0.0, le NameNode était un point de défaillance unique. Alors
que la perte de toute autre machine (intermittente ou permanente) n'entraîne
pas de perte de données, la perte de NameNode entraîne l'indisponibilité du
cluster. La perte permanente des données sur NameNode rendrait le HDFS du
cluster inutilisable.
La fonctionnalité de haute disponibilité HDFS résout les problèmes ci-dessus en
offrant la possibilité d'exécuter deux NameNodes redondants dans le même
cluster dans une configuration active/passive avec un serveur de secours.
3.1. Le Secondary namenode est un nœud qui fusionne périodiquement les
fichiers « fsimage et les editlogs » des modifications et maintient la taille du
journal des modifications dans une limite. Cela permet au NameNode de
démarrer plus rapidement en cas de panne. L'équipe HDFS a continué à
2
CIGBM TTIS ABouraoui TD/TP BigData
3
CIGBM TTIS ABouraoui TD/TP BigData
4
CIGBM TTIS ABouraoui TD/TP BigData
Pour avoir une idée de la façon dont les données circulent entre le client
interagissant avec HDFS, considérez un diagramme ci-dessous qui montre les
principaux composants de HDFS.
5
CIGBM TTIS ABouraoui TD/TP BigData
5 . Lecture
2. NameNode répond avec une liste de blocs et les emplacements de chaque réplique.
6
CIGBM TTIS ABouraoui TD/TP BigData
6. Si le namenode était responsable de la copie de tous les fichiers vers les datanodes, cela deviendrait
un goulot d'étranglement
Exercice 5
7
CIGBM TTIS ABouraoui TD/TP BigData
Corrigé :
{
"hôpital": "Habib Thameur",
"service" : "urgence"
"date": 03032012,
"patients": [
{
"nom": "Memmi",
"prenom": "Mohammed",
"numeroSS" : 0101020445
},
{
"nom": "Ben Ali",
"prenom": "Samira",
"numeroSS" : 02147485
},
{
"nom": "Mathlouthi",
"prenom": "Tarek",
"numeroSS" : 08789852
}
]
}
Exercice 7
Dans cet exercice on va s’entraîner à faire de l’analyse de données en utilisant
Python.
8
CIGBM TTIS ABouraoui TD/TP BigData
1. Graphiques et visualisation
Ouvrir le site http://catalog.industrie.gov.tn/dataset/demande-annuelle-d-energie-
primaire. Sinon le fichier et fourni sur Google classroom.
Télécharger le dataset TN-Demande annuelle d'énergie primaire. (Excell)
Ouvrir Python localement, ou en utilisant Google Colab ou Juoyter Notes.
Charger le dataset.
Il s’agit de construire un graphique qui permettra de mieux exprimer les données
visuellement. (Time-series par exemple).
Lib à utiliser : matplotlib.
a. Tout d’abord récupérer le contenu du fichier dans un DataFrame
b. Imprimez le contenu à l’écran
c. Jouez un peu avec les fonctions head et tail de DF
d. Changez les noms de colonne du DataFrame pour que ce soit plus pratique.
e. Imprimez quelques colonnes isolées.
f. Construire une courbe simple qui exprime la consommation d’électricité
primaire entre 1990 et 2021. Comme dans l’image ci-dessous.
9
CIGBM TTIS ABouraoui TD/TP BigData
df = pd.read_csv("univariate_linear_regression_dataset.csv")
#selection de la première colonne de notre dataset (la taille de la population)
X = df.iloc[0:len(df),0]
#selection de deuxième colonnes de notre dataset (le profit effectué)
Y = df.iloc[0:len(df),1]
plt.title("Exemple de regression pour le chapitre 5")
plt.scatter(X,Y)
# X et Y sont les variables qu'on a extraites du dataframe
plt.grid() # dessiner une grille pour une meilleure lisibilité du graphe
10
CIGBM TTIS ABouraoui TD/TP BigData
plt.show()
Exercice 9
from textblob import TextBlob
from langdetect import detect
import nltk
import sys
text = "Aujourd'hui j'ai vu un film. Il s'appelle Alien. Je ne crois pas que ce soit un bon
film"
blob = TextBlob(text)
print(blob)
Sentences=blob.sentences
print (Sentences)
Words=blob.words
print(Words)
Tags=blob.tags
print(Tags)
lg=detect (str(blob))
print(lg)
sent=blob.sentiment
print(sent)
11
CIGBM TTIS ABouraoui TD/TP BigData
tr1=blob.translate(from_lang=lg, to='en')
print(tr1)
tr2=blob.translate(from_lang=lg, to='ar')
tr3=str(tr2).encode('utf-8')
sys.stdout.buffer.write(tr3)
//corriger l’orthographe
print(b.correct())
Exercice 10
import numpy as np
import cv2
import matplotlib.pyplot as plt
original_image = cv2.imread("clustersampleimage.jpeg")
img=cv2.cvtColor(original_image,cv2.COLOR_BGR2RGB)
vectorized = img.reshape((-1,3))
vectorized = np.float32(vectorized)
criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 10, 1.0)
K=5
attempts=10
ret,label,center=cv2.kmeans(vectorized,K,None,criteria,attempts,cv2.KMEANS_PP_
CENTERS)
center = np.uint8(center)
res = center[label.flatten()]
result_image = res.reshape((img.shape))
figure_size = 15
plt.figure(figsize=(figure_size,figure_size))
plt.subplot(1,2,1),plt.imshow(img)
plt.title('Image originale'), plt.xticks([]), plt.yticks([])
plt.subplot(1,2,2),plt.imshow(result_image)
plt.title('Image segmentée avec K = %i' % K), plt.xticks([]), plt.yticks([])
plt.show()
12
CIGBM TTIS ABouraoui TD/TP BigData
13