Vous êtes sur la page 1sur 70

Revision

Do Not Print this Page


Record
Course Code Product Product Version Course Version

H13-711 MRS V3.0

Author/ID Date Reviewer/ID New/ Update

Wang Mengde/wwx711842 2020.03.12 Huang Haoyang/hwx690472 Update

Wang Mengde/wwx711842 2020.08.26 Chen Ao/cwx860206 New

0 Huawei Confidential
Chapter 2 HDFS and ZooKeeper
Foreword

 This course describes the big data distributed storage system HDFS and the
ZooKeeper distributed service framework that resolves some frequently-
encountered data management problems in distributed services. This chapter
lays a solid foundation for subsequent component learning.

2 Huawei Confidential
Objectives

 Upon completion of this course, you will be able to learn:


 HDFS-related concepts
 HDFS application scenarios
 HDFS system architecture
 HDFS Key features
 ZooKeeper-related concepts
 ZooKeeper usage

3 Huawei Confidential
Contents

1. HDFS Overview and Application Scenarios

2. HDFS-related Concepts

3. HDFS Architecture

4. Key Features

5. HDFS Data Read/Write Process

6. ZooKeeper Overview

7. ZooKeeper Architecture

4 Huawei Confidential
Dictionary and File System

Dictionary File System


Radical Index
File name
(1) Radical directory
Metadata
(2) Word index
(3) Stroke index for Rare characters

Dictionary body Data block

5 Huawei Confidential
• Système de fichiers : Un système de fichiers est une méthode de stockage
et d'organisation des données informatiques. Il facilite l'accès et la
recherche de données informatiques.
• Nom de fichier : dans le système de fichiers, les noms de fichiers sont
utilisés pour trouver l'emplacement de stockage.
• Métadonnées : les métadonnées sont les propriétés du fichier de stockage
des données, telles que le nom du fichier, la longueur du fichier, le groupe
d'utilisateurs auquel le fichier appartient et l'emplacement de stockage du
fichier.
• Bloc : Un bloc est l'unité minimale pour stocker des fichiers. Le support de
stockage est divisé en zones fixes. Le support de stockage est alloué et
utilisé en fonction de ces zones.

6
HDFS Overview
 Hadoop Distributed File System (HDFS) is a distributed file system designed to run on
commodity hardware.
 HDFS has a high fault tolerance capability and is deployed on cost-effective hardware.
 HDFS provides high-throughput access to application data and applies to applications with
large data sets.
 HDFS looses some Potable Operating System Interface of UNIX (POSIX) requirements to
implement streaming access to file system data.
 HDFS was originally built as the foundation for the Apache Nutch Web search engine
project.
 HDFS is a part of the Apache Hadoop Core project.

7 Huawei Confidential
Aperçu HDFS
• Hadoop Distributed File System (HDFS) est un système de fichiers distribué
conçu pour s'exécuter sur du matériel de base.
• HDFS a une capacité de tolérance aux pannes élevée et est déployé sur du
matériel rentable.
• HDFS fournit un accès à haut débit aux données d'application et
s'applique aux applications avec de grands ensembles de données.
• HDFS perd certaines exigences Potable Operating System Interface of UNIX
(POSIX) pour implémenter l'accès en continu aux données du système de
fichiers.
• HDFS a été construit à l'origine comme la base du projet de moteur de
recherche Web Apache Nutch.
• HDFS fait partie du projet Apache Hadoop Core.
8
Scénarios inapplicables
• Applications accessibles par des données à faible délai, en quelques dizaines de millisecondes
Cause : HDFS est optimisé pour les applications à haut débit de données, ce qui entraîne une latence élevée.
• Un grand nombre de petits fichiers
Cause : au démarrage, NameNode stocke les métadonnées du système de fichiers dans la mémoire. Par
conséquent, le nombre total de fichiers pouvant être stockés dans le système de fichiers est limité par la
mémoire NameNode. D'après l'expérience, les informations de stockage de chaque fichier, répertoire et
bloc de données occupent environ 150 octets. S'il y a 1 million de fichiers et que chaque fichier occupe un
bloc de données, au moins 300 Mo de mémoire sont nécessaires. Si vous stockez 1 milliard de fichiers, la
mémoire requise est très importante.
• Fichiers écrits et modifiés aléatoirement par plusieurs utilisateurs
Cause : Désormais, les fichiers HDFS n'ont qu'un seul graveur et les opérations d'écriture sont toujours
effectuées à la fin du fichier. De plus, le fichier ne peut être modifié dans aucune position. Il peut être pris
en charge à l'avenir, mais l'efficacité est relativement faible.
• Accès aux données en streaming : après la génération d'un ensemble de données, diverses
opérations d'analyse sont effectuées sur l'ensemble de données pendant une longue période.
Chaque analyse impliquera la plupart ou même toutes les données du DataSet (l'ensemble de
données), de sorte que le délai pour lire l'ensemble de données entier est plus important que le délai
pour lire le premier enregistrement. D'autre part, l'accès aléatoire aux données nécessite un court
délai pour localiser, interroger ou modifier les données. Il convient aux scénarios dans lesquels les
données sont lues et écrites plusieurs fois après leur création. Les bases de données relationnelles
9
traditionnelles répondent à cette exigence.
HDFS Application Scenario Example

 Stockage des données du site


Web et données des médias
sociaux
 E-police
 Données météorologiques
 Données du capteur
 Etc.

10 Huawei Confidential
Contents

1. HDFS Overview and Application Scenarios

2. HDFS-related Concepts

3. HDFS Architecture

4. Key Features

5. HDFS Data Read/Write Process

6. ZooKeeper Overview

7. ZooKeeper Architecture

11 Huawei Confidential
Computer Cluster Structure
 The distributed file system stores files on multiple
computer nodes. Thousands of computer nodes form a
computer cluster.

 Currently, the computer cluster used by the distributed


file system consists of common hardware, which greatly
reduces the hardware overhead.

12 Huawei Confidential
Le cluster ou le groupe

 Le système de fichiers distribué stocke les fichiers sur plusieurs nœuds


informatiques. Des milliers de nœuds d'ordinateurs forment un cluster
d'ordinateurs.
 Actuellement, le cluster d'ordinateurs utilisé par le système de fichiers distribué se
compose d'un matériel commun, ce qui réduit considérablement la surcharge
matérielle.
 Auparavant, des dispositifs de traitement parallèle utilisant plusieurs processeurs
et du matériel avancé dédié étaient utilisés.

13 Huawei Confidential
13
Basic System Architecture

HDFS Architecture

Metadata (Name, replicas, ...):


NameNode /home/foo/data,3...

Metadata ops

Block ops
Client

Read DataNodes DataNodes

Replication

Blocks Blocks

Client
Rack 1 Rack 2

14 Huawei Confidential
Architecture du système de base

• L'architecture HDFS se compose de trois parties : NameNode,


DataNode et Client.
• Un NameNode stocke et génère les métadonnées des systèmes de
fichiers. Il exécute une instance.
• Un DataNode stocke les données réelles et rapporte les blocs de
données qu'il gère au NameNode. Plusieurs instances peuvent
s'exécuter sur le DataNode.
• Un client prend en charge l'accès HDFS par service. Il obtient des
données du NameNode et du DataNode et envoie les données aux
services. Plusieurs instances peuvent s'exécuter avec des services.
15
Block
 The default size of an HDFS block is 128 MB. A file is divided into multiple blocks,
which are used as the storage unit.
 The block size is much larger than that of a common file system, minimizing the
addressing overhead.
 The abstract block concept brings the following obvious benefits:
 Supporting large-scale file storage
 Simplifying system design
 Applicable to data backup

16 Huawei Confidential
les avantages du concept Bloc
• Prise en charge du stockage de fichiers à grande échelle : un fichier est stocké
en blocs. Un fichier volumineux peut être divisé en plusieurs blocs de fichiers et
différents blocs de fichiers peuvent être distribués à différents nœuds. Par
conséquent, la taille d'un fichier n'est pas limitée par la capacité de stockage
d'un seul nœud, la capacité de stockage peut être bien supérieure à celle de
n'importe quel nœud du réseau.
• Conception simplifiée du système : Premièrement, la gestion du stockage est
grandement simplifiée car la taille des blocs de fichiers est fixe. De cette façon, il
est facile de calculer le nombre de blocs de fichiers qui peuvent être stockés sur
un nœud. De plus, les métadonnées peuvent être gérées par d'autres instances
au lieu de blocs de fichiers.
• Convient pour la sauvegarde des données : chaque bloc de fichiers peut être
stocké de manière redondante sur plusieurs nœuds, ce qui améliore
considérablement la tolérance aux pannes et la disponibilité du système.
17
NameNode and DataNode (1)

NameNode DataNode

Stores metadata. Stores file content.


Stores file content.
Metadata is stored in the memory.
The file content is stored in the disk.
Stores file content.
Metadata is stored in the memory.
The file content is stored in the disk.
Saves the mapping between files,
Maintains the mapping between block IDs
blocks, and DataNodes.
and local files on DataNodes.

18 Huawei Confidential
• Name node : Stocke les métadonnées. Les métadonnées sont
stockées dans la mémoire.
– Enregistre le mappage entre les fichiers, les blocs et les DataNodes
• DataNode Stocke le contenu du fichier. Le contenu du fichier
est stocké sur le disque.
– Maintient le mappage entre les ID de bloc et les fichiers locaux sur
DataNodes

19
NameNode and DataNode (2)

20 Huawei Confidential
Dans HDFS, NameNode gère l'espace de noms du système de fichiers
distribué et stocke deux structures de données principales :
FsImage et EditLog.
• FsImage est utilisé pour maintenir les métadonnées de
l'arborescence du système de fichiers et de tous les fichiers et
dossiers de l'arborescence de fichiers.
• Le fichier journal des opérations EditLog enregistre toutes les
opérations sur les fichiers, telles que la création, la suppression et
le renommage des fichiers.
• NameNode enregistre les informations d'emplacement sur le
DataNode où se trouve chaque bloc de chaque fichier.
21
DataNodes
 DataNodes are working nodes that store and read data in HDFS. DataNodes store
and retrieve data based on the scheduling of the clients or NameNodes, and
periodically send the list of stored blocks to the NameNodes.
 Data on each DataNode is stored in the local Linux file system of the node.

22 Huawei Confidential
Contents

1. HDFS Overview and Application Scenarios

2. HDFS-related Concepts

3. HDFS Architecture

4. Key Features

5. HDFS Data Read/Write Process

6. ZooKeeper Overview

7. ZooKeeper Architecture

23 Huawei Confidential
HDFS Architecture Overview

24 Huawei Confidential
• HDFS utilise la structure primaire/secondaire. Un cluster HDFS se
compose d'un NameNode et de plusieurs DataNodes, comme
illustré dans la figure.
• En tant que serveur central, le NameNode gère l'espace de noms
du système de fichiers et l'accès des clients aux fichiers.
• Dans un cluster, un DataNode exécute un processus DataNode pour
traiter les demandes de lecture/écriture des clients du système de
fichiers et créer, supprimer et répliquer des blocs de données sous
la planification unifiée des NameNodes.
• Les données de chaque nœud de données sont en fait stockées
dans le système de fichiers Linux local.
25
HDFS Namespace Management
 The HDFS namespace contains directories, files, and blocks.
 HDFS uses the traditional hierarchical file system. Therefore, users can create and
delete directories and files, move files between directories, and rename files in the
same way as using a common file system.
 NameNode maintains the file system namespace. Any changes to the file system
namespace or its properties are recorded by the NameNode.
 The application can specify the number of file replicas that should be maintained
by HDFS. The number of replicas of a file is called the replication factor of the file.
This information is stored by the NameNode.

26 Huawei Confidential
Communication Protocol
 HDFS is a distributed file system deployed on a cluster. Therefore, a large amount
of data needs to be transmitted over the network.
 All HDFS communication protocols are based on the TCP/IP protocol.
 The client initiates a TCP connection to the NameNode through a configurable port and
uses the client protocol to interact with the NameNode.
 The NameNode and the DataNode interact with each other by using the DataNode
protocol.
 The interaction between the client and the DataNode is implemented through the
Remote Procedure Call (RPC). In design, the NameNode does not initiate an RPC
request, but responds to RPC requests from the client and DataNode.

27 Huawei Confidential
Client
 The client is the most commonly used method for users to operate HDFS. HDFS
provides a client during deployment.
 The HDFS client is a library that contains HDFS file system interfaces that hide
most of the complexity of HDFS implementation.
 Strictly speaking, the client is not a part of HDFS.
 The client supports common operations such as opening, reading, and writing, and
provides a command line mode similar to Shell to access data in HDFS.
 HDFS also provides Java APIs as client programming interfaces for applications to
access the file system.

28 Huawei Confidential
• Le client est la méthode la plus couramment utilisée par les utilisateurs pour
faire fonctionner HDFS. HDFS fournit un client pendant le déploiement.
• Le client HDFS est une bibliothèque qui contient des interfaces de système de
fichiers HDFS qui cachent la majeure partie de la complexité de l'implémentation
HDFS.
• À proprement parler, le client ne fait pas partie de HDFS.
• Le client prend en charge les opérations courantes telles que l'ouverture, la
lecture et l'écriture, et fournit un mode de ligne de commande similaire à Shell
pour accéder aux données dans HDFS.
• HDFS fournit également des API Java en tant qu'interfaces de programmation
client permettant aux applications d'accéder au système de fichiers.

29
Disadvantages of the HDFS Single-NameNode Architecture

 Only one NameNode is set for HDFS, which greatly simplifies the system design but also
brings some obvious limitations. The details are as follows:
 Namespace limitation: NameNodes are stored in the memory. Therefore, the number of objects
(files and blocks) that can be contained in a NameNode is limited by the memory size.
 Performance bottleneck: The throughput of the entire distributed file system is limited by the
throughput of a single NameNode.
 Isolation: Because there is only one NameNode and one namespace in the cluster, different
applications cannot be isolated.
 Cluster availability: Once the only NameNode is faulty, the entire cluster becomes unavailable.

30 Huawei Confidential
• Un seul NameNode est défini pour HDFS, ce qui simplifie grandement la
conception du système mais apporte également des limitations évidentes. Les
détails sont les suivants:
• Limitation de l'espace de noms : les NameNodes sont stockés dans la mémoire.
Par conséquent, le nombre d'objets (fichiers et blocs) pouvant être contenus
dans un NameNode est limité par la taille de la mémoire.
• Goulot d'étranglement des performances : le débit de l'ensemble du système de
fichiers distribué est limité par le débit d'un seul NameNode.
• Isolation : étant donné qu'il n'y a qu'un seul NameNode et un seul espace de
noms dans le cluster, différentes applications ne peuvent pas être isolées.
• Disponibilité du cluster : une fois que le seul NameNode est défectueux,
l'ensemble du cluster devient indisponible.

31
Contents

1. HDFS Overview and Application Scenarios

2. HDFS-related Concepts

3. HDFS Architecture

4. Key Features

5. HDFS Data Read/Write Process

6. ZooKeeper Overview

7. ZooKeeper Architecture

32 Huawei Confidential
HDFS High Availability (HA)

Zoo Keeper Zoo Keeper Zoo Keeper

Heartbeat

Heartbeat
Edit Log

JN JN JN
ZKFC ZKFC

Nam eNod e Synch ronize Nam eNod e


( act ive) FSIm age. ( st an dby)

HDFS
Read/ wr ite data.
Client

Copy.

Dat aN ode Dat aN o de Dat aN ode Dat aNode

33 Huawei Confidential
HDFS High Availability (HA): La haute fiabilité (HA)
La haute fiabilité est obtenue en utilisant ZooKeeper pour implémenter des NameNodes actifs et en veille afin de
résoudre le problème du point de défaillance unique (SPOF) ou maillon faible.
• ZooKeeper est utilisé pour stocker les fichiers d'état HA et les informations
actives/en veille. Il est recommandé que le nombre de ZooKeepers soit un
nombre impair supérieur ou égal à 3.
• Les NameNodes fonctionnent en mode actif/veille. Le NameNode actif fournit
des services et le NameNode de secours synchronise les métadonnées du
NameNode actif et fonctionne comme la sauvegarde à chaud du NameNode
actif.
• ZooKeeper Failover Controller (ZKFC) est utilisé pour surveiller l'état actif/veille
de NameNodes.
• JournalNode (JN) stocke le Editlog généré par le NameNode actif. Le
NameNode de secours charge le journal d'édition sur le JN et synchronise les
métadonnées.
•ZKFC contrôle l'arbitrage NameNode actif/en veille.
En tant qu'agent d'arbitrage simplifié, ZKFC utilise la fonction de verrouillage distribué de
ZooKeeper pour mettre en œuvre l'arbitrage actif/veille et contrôle l'état actif/veille de
NameNodes via le canal de commande. ZKFC et NameNode sont déployés ensemble, et le
nombre de ZKFC est le même que celui de NameNodes.
34 Huawei Confidential
Metadata Persistence

NameNode Secondary NameNode


2. Obtain Editlog and FsImage from
Editlog FsImage the active node.
(Fsimage is downloaded only during
NameNode
1. Notify. initialization and use local files in
the future).
Editlog
FsImage
.new Editlog

3. Merge.

FsImage FsImage
.ckpt .ckpt
5. Roll back
FsImage. 4. Upload the newly
generated FsImage file
Editlog FsImage to the active node.

36 Huawei Confidential
Metadata Persistence ou Persistance des métadonnées
• EditLog : enregistre les opérations de l'utilisateur et est utilisé pour générer une nouvelle
image du système de fichiers basée sur la FsImage.
• FSImage : enregistre périodiquement les images des fichiers.
• FSImage.ckpt : une fois les fichiers fsimage et EditLog fusionnés dans la mémoire, une
nouvelle FsImage est générée et écrite sur le disque. Ce processus est appelé point de
contrôle. Après avoir chargé les fichiers fsimage et EditLog, le NameNode de secours écrit le
résultat de la fusion sur le disque local et NFS. À ce stade, il existe un fichier FsImage
d'origine et un nouveau fichier de point de contrôle fsimage.ckpt sur le disque. Changez
ensuite le nom de fsimage.ckpt en fsimage pour écraser le fsimage d'origine.
• EditLog.new : le NameNode déclenche la combinaison de journaux toutes les heures ou
lorsque le fichier Editlog atteint 64 Mo. Lorsque les données sont transférées vers le
NameNode de secours, les données ne peuvent pas être lues ou écrites de manière
synchrone. Dans ce cas, le NameNode génère un nouveau fichier journal Editlog.new pour
stocker les journaux d'opérations générés au cours de cette période. Le NameNode de
secours combine les fichiers dans fsimage et l'envoie au NameNode actif pour remplacer le
fsimage d'origine. Le fichier Editlog.new est nommé Editlog.

37
HDFS Federation cause et scénario d'application
 Cause : l'architecture NameNode à activité unique (The single-active NameNode architecture)
entraîne des problèmes potentiels d'évolutivité du cluster et de performances de HDFS. Lorsque
la taille du cluster atteint un certain niveau, la mémoire utilisée par le processus NameNode peut
atteindre des centaines de Go. Dans ce cas, NN devient le goulot d'étranglement des
performances.
 Scénario d'application : stockage de fichiers ultra-volumineux. Par exemple, les sociétés
Internet stockent des données à grande échelle telles que des données sur le comportement des
utilisateurs, des données de télécommunications historiques et des données vocales. Dans ce
cas, la mémoire NameNode est insuffisante pour prendre en charge un cluster aussi volumineux.
 La formule d'estimation courante est la suivante : 1 Go correspond à 1 million de blocs. Si la
taille de bloc par défaut est utilisée, la taille est d'environ 128 To. (Ce ratio d'estimation est
important. En fait, même si chaque fichier n'a qu'un seul bloc, toutes les informations de
métadonnées n'atteignent pas 1 Ko/bloc.)

38 Huawei Confidential
HDFS Federation
APP Client-1 Client-k Client-n

HDFS Namespace-1 Namespace-k Namespace-n

Namespace
NN1 NN-k NN-n

... ...
NS1 NS-k
NS-n

Pool
Pool 1 Pool n
Block Pools
Storage
Block

Common Storage
DataNode1 DataNode2 DataNodeN
... ... ...

40 Huawei Confidential
Data Replica Mechanism
• La formule de calcul des distances des répliques est la suivante :
– Distance(Rack1/D1, Rack1/D1)=0,
– La distance au sein d'un même serveur est de 0.
– Distance(Rack1/D1, Rack1/D3)=2,
– La distance entre différents serveurs avec le même rack est de 2.
– Distance(Rack1/D1, Rack2/D1)=4,
– La distance entre les serveurs dans les différents racks est de 4.
– La distance entre les nœuds dans les différents centres de données est de 6.
• Politique de stockage des répliques :
– La première réplique est placée sur le DataNode vers lequel le fichier est téléchargé. Si la tâche est soumise
en dehors du cluster, un nœud dont l'espace disque n'est pas plein et le processeur n'est pas occupé est
sélectionné de manière aléatoire.
– La deuxième réplique est placée sur un nœud dans un rack différent de la première réplique.
– La troisième réplique est stockée sur d'autres nœuds dans le même rack que la première réplique.
– Pour plus de répliques, elles sont stockées sur des nœuds aléatoires.
• Si le demandeur d'écriture est envoyé depuis l'un des DataNodes, les données sont stockées
localement. Sinon, un DataNode est sélectionné au hasard dans le cluster.
• Rack1 : indique le rack 1.
• D1 : indique DataNode 1.
• B1 : indique le bloc 1 sur le nœud.
41
Data Replica Mechanism

Distance=4
Distance=4
Distance=0

Client B1 B2 Node1 B4 Node1

Distance=2 Node2 Node2 Node2

B3 Node3 Node3 Node3

Node4 Node4 Node4

Node5 Node5 Node5

RACK1 RACK2 RACK3

42 Huawei Confidential
HDFS Data Integrity Assurance
 HDFS aims to ensure the integrity of storage data and ensures the reliability of components.

 Rebuilding the replica data of failed data disks


 When the DataNode fails to report data to the NameNode periodically, the NameNode initiates the replica rebuilding action to
restore the lost replicas.

 Cluster data balancing:


 The HDFS architecture designs the data balancing mechanism, which ensures that data is evenly distributed on each
DataNode.

 Metadata reliability:
 The log mechanism is used to operate metadata, and metadata is stored on the active and standby NameNodes.

 The snapshot mechanism implements the common snapshot mechanism of file systems, ensuring that data can be restored in
a timely manner in the case of mis-operations.

 Security mode:
 HDFS provides a unique security mode mechanism to prevent faults from spreading when DataNodes or disks are faulty.

43 Huawei Confidential
HDFS Data Integrity Assurance ou Assurance de l'intégrité des données
• HDFS vise à garantir l'intégrité des données de stockage et assure la fiabilité des composants.
• Recréer les données de réplique des disques de données défaillants
– Lorsque le DataNode ne parvient pas à donner un rapport sur les données au NameNode périodiquement,
le NameNode lance l'action de reconstruction du réplica pour restaurer les réplicas perdus.
• Équilibrage des données de cluster :
– L'architecture HDFS conçoit le mécanisme d'équilibrage des données, qui garantit que les données sont
réparties uniformément sur chaque DataNode.
• Fiabilité des métadonnées :
– Le mécanisme de journal est utilisé pour exploiter les métadonnées, et les métadonnées sont stockées sur
les NameNodes actifs et en veille.
– Le mécanisme d'instantané (snapshot mechanism) implémente le mécanisme d'instantané commun des
systèmes de fichiers, garantissant que les données peuvent être restaurées en temps opportun en cas de
mauvaises opérations. (Les blocs dans les nœuds de données ne sont pas copiés : les fichiers d'instantanés
enregistrent la liste des blocs et la taille du fichier. Il n'y a pas de copie de données.)

• Mode sécurité:
– HDFS fournit un mécanisme de mode de sécurité unique pour empêcher la propagation des erreurs lorsque
les DataNodes ou les disques sont défectueux.
– Lorsqu'un disque dur d'un nœud est défaillant, le nœud entre en mode sécurité. Dans ce mode, HDFS prend
uniquement en charge l'accès aux métadonnées. Dans ce cas, les données sur le HDFS sont en lecture seule.
D'autres opérations, telles que la création et la suppression de fichiers, échoueront. Une fois le défaut de
disque corrigé et les données restaurées, on quittera le mode de sécurité.
44
Other Key Design Points of the HDFS Architecture
 Space reclamation mechanism:
 Supports the recycle bin mechanism and dynamic setting of the number of copies.

 Data organization:
 Data is stored by data block in the HDFS of the operating system.

 Access mode:
 Provides HDFS data accessing through Java APIs, HTTP or SHELL modes.

45 Huawei Confidential
Autres points de conception clés de l'architecture HDFS

• Mécanisme de récupération d'espace :


– Prend en charge le mécanisme de la corbeille et le réglage
dynamique du nombre de copies.
• Organisation des données :
– Les données sont stockées par bloc de données dans le HDFS du
système d'exploitation.
• Mode d'accès:
– Fournit un accès aux données HDFS via les API Java, les modes HTTP
ou SHELL.
46
Common Shell Commands

Type Command Description


-cat Displays file content.
-ls Displays the directory list.
-rm Delete a file.
-put Uploads the directory or file to HDFS.
dfs Downloads directories or files to the local
-get
host from HDFS.
-mkdir Creates a directory.
-chmod/-chown Changes the group of the file.
... ...

-safemode Performs security mode operations.


dfsadmin
-report Reports service status.

47 Huawei Confidential
New Features of HDFS 3.0
 Erasure Code (EC) in HDFS is supported.
 Union based on the HDFS router is supported.
 Multiple NameNodes are supported.
 Disk balancers are added to DataNodes for load balancing.

48 Huawei Confidential
New Features of HDFS 3.0
• Le code d'effacement dans HDFS est pris en charge.
• Le codage à effacement (EC) est une technologie de protection des données. C'est la première
technologie de récupération de données utilisée dans la transmission de données dans l'industrie
des communications. Il s'agit d'une technologie de codage tolérante aux pannes. En ajoutant de
nouvelles données de parité aux données d'origine, les données des différentes parties sont
corrélées. Dans le cas d'une certaine plage d'erreurs de données, la technologie EC peut être utilisée
pour restaurer les données. La technologie EC peut empêcher la perte de données et résoudre le
problème du doublement de l'espace de stockage HDFS.
• Lorsqu'un fichier est créé, la politique EC est héritée du répertoire ancêtre le plus proche pour
déterminer comment ses blocs sont stockés. Par rapport à la réplication à 3 canaux, la politique EC
par défaut peut économiser 50 % d'espace de stockage et tolérer davantage de défauts de stockage.
• Il est recommandé d'utiliser le stockage EC pour les données froides, car la quantité de données
froides est importante. Le nombre de copies peut être réduit pour réduire l'espace de stockage. De
plus, les données froides sont stables. Une fois que les données doivent être restaurées, les services
ne sont pas grandement affectés.
• L'union basée sur le routeur HDFS est prise en charge.
• HDFS ajoute une couche de routage RPC basée sur la fédération de routeurs et fournit une vue
combinée de plusieurs espaces de noms HDFS. Ceci est similaire à la combinaison existante de
ViewFS et HDFS. La différence est que la table d'installation est gérée par la couche de routage sur le
serveur au lieu du client. Cela simplifie l'accès aux clusters fédérés sur les clients HDFS existants. La
fonction est similaire à celle de la combinaison de ViewFS et HDFS. La différence est que la table
49 d'installation est gérée par la couche de routage sur le serveur au lieu du client.
Contents

1. HDFS Overview and Application Scenarios

2. HDFS-related Concepts

3. HDFS Architecture

4. Key Features

5. HDFS Data Read/Write Process

6. ZooKeeper Overview

7. ZooKeeper Architecture

51 Huawei Confidential
HDFS Data Write Process

2. Create file metadata.


1. Create file request. Distributed
HDFS FileSystem NameNode
3. Write data.
Client 7. Complete the write operation.

FSData NameNode
6. Close the file.
OutputStream

Client node

4. Write the data 5. Receive the


packet. acknowledgment packet.

4 4
DataNode DataNode DataNode
5 5

DataNode DataNode DataNode

52 Huawei Confidential
HDFS Data Write Process ou Processus d’écriture
Le processus d'écriture des données HDFS est le suivant :
• L'application de service appelle l'API fournie par le client HDFS pour demander l'écriture de
données dans le fichier.
• Le client HDFS contacte le NameNode et le NameNode crée un nœud de fichier dans les
métadonnées.
• L'application de service appelle l'API d'écriture pour écrire le fichier.
• Après avoir reçu les données de service, le client HDFS obtient le numéro de bloc de
données et les informations d'emplacement du NameNode, contacte le DataNode et établit
un pipeline pour le DataNode dans lequel les données doivent être écrites. Ensuite, le client
écrit les données dans DataNode1 à l'aide de son propre protocole et DataNode1 réplique
les données dans DataNode2 et DataNode3.
• Une fois les données écrites, un message est renvoyé au client HDFS.
• Une fois toutes les données confirmées, le service appelle le client HDFS pour fermer le
fichier.
• Une fois que le service a appelé les fonctions de fermeture et de vidage, le client HDFS
contacte le NameNode pour confirmer que l'écriture des données est terminée. Les
métadonnées sont stockées de manière persistante sur le NameNode.

53
HDFS Data Read Process

1. Open the file. Distributed 2. Obtain data block information.


HDFS NameNode
3. Read the request. FileSystem
Client
FSData NameNode
IutputStream
6. Shut down the node.

Client node 5. Read data.

4. Read data.

DataNode DataNode DataNode

DataNode DataNode DataNode

54 Huawei Confidential
HDFS Data Read Process ou Processus de lecture
Le processus de lecture des données HDFS est le suivant :
• L'application de service appelle les API fournies par le client HDFS pour
ouvrir le fichier.
• Le client HDFS obtient des informations de fichier (blocs de données et
informations d'emplacement DataNode) à partir du NameNode.
• L'application de service appelle l'API de lecture pour lire le fichier.
• Sur la base des informations obtenues à partir du NameNode, le client
HDFS contacte le DataNode pour obtenir les blocs de données
correspondants. (Le client lit les données selon le principe de proximité.)
• Le client HDFS communique avec plusieurs DataNodes pour obtenir des
blocs de données.
• Une fois les données lues, le service appelle la fonction de fermeture pour
fermer la connexion.
55
Contents

1. HDFS Overview and Application Scenarios

2. HDFS-related Concepts

3. HDFS Architecture

4. Key Features

5. HDFS Data Read/Write Process

6. ZooKeeper Overview

7. ZooKeeper Architecture

56 Huawei Confidential
ZooKeeper Overview
 The ZooKeeper distributed service framework is used to solve some data
management problems that are frequently encountered in distributed applications
and provide distributed and highly available coordination service capabilities.
 In security mode, ZooKeeper depends on Kerberos and LdapServer for security
authentication, but in non-security mode, ZooKeeper does not depend on them
any more. As a bottom-layer component, ZooKeeper is widely used and depended
by upper-layer components, such as Kafka, HDFS, HBase and Storm.

57 Huawei Confidential
Présentation de ZooKeeper
• Le cadre de service distribué ZooKeeper est utilisé pour
résoudre certains problèmes de gestion des données
fréquemment rencontrés dans les applications distribuées et
fournit des capacités de service de coordination distribuées et
hautement disponibles.
• En mode sécurité, ZooKeeper dépend de Kerberos et
LdapServer pour l'authentification de sécurité, mais en mode
non-sécurité, ZooKeeper ne dépend plus d'eux. En tant que
composant de couche inférieure, ZooKeeper est largement
utilisé et dépend des composants de couche supérieure, tels
que Kafka, HDFS, HBase et Storm.
58
Contents

1. HDFS Overview and Application Scenarios

2. HDFS-related Concepts

3. HDFS Architecture

4. Key Features

5. HDFS Data Read/Write Process

6. ZooKeeper Overview

7. ZooKeeper Architecture

59 Huawei Confidential
ZooKeeper Service Architecture - Model

ZooKeeper Service
Leader

Server Server Server Server Server

Client Client Client Client Client Client Client Client

 The ZooKeeper cluster consists of a group of server nodes. In this group, there is only one leader node, and other
nodes are followers.

 The leader is elected during the startup.

 ZooKeeper uses the custom atomic message protocol to ensure data consistency among nodes in the entire
system.

 After receiving a data change request, the leader node writes the data to the disk and then to the memory.

60 Huawei Confidential
Architecture de service ZooKeeper - Modèle
 Un cluster ZooKeeper est un groupe de serveurs. Dans ce groupe, un serveur fonctionne comme
le leader et les autres serveurs sont des suiveurs. Lorsqu'un client est connecté au cluster
ZooKeeper et lance une demande d'écriture, la demande est envoyée au leader. Ensuite, les
modifications de données sur le nœud leader sont synchronisées avec les suiveurs dans le
cluster.
 Après avoir reçu une demande de modification de données, le responsable écrit d'abord la
modification sur les disques locaux pour restauration. Toutes les modifications de données sont
stockées en mémoire uniquement après avoir été écrites sur des disques.
 ZooKeeper utilise un protocole défini par l'utilisateur nommé Zookeeper Atomic Broadcast (ZAB),
qui garantit la cohérence des données ou de l'état entre les nœuds du système de coordination.
Les abonnés utilisent ZAB pour synchroniser les données ZooKeeper locales avec le leader et
fournir des services basés sur le stockage local.
 Si le leader échoue, la couche de message sélectionne un autre leader pour traiter les demandes
d'écriture des clients et synchroniser les modifications de données du système de coordination
ZooKeeper avec les autres suiveurs.
61 Huawei Confidential
ZooKeeper Service Architecture - DR Capability
 If the ZooKeeper can complete the election, it can provide services for external
systems.
 During ZooKeeper election, if an instance obtains more than half of the votes, the
instance becomes the leader.

 For a service with n instances, n may be an odd or even number.


 When n is an odd number, assume: n= 2x+1 ; then the node needs to obtain x+1 votes
to become the leader, and the DR capability is x.
 When n is an even number, that: n=2x+2 ; then the node needs to obtain x+2 (more
than half) votes to become the leader, and the DR capability is x.

62 Huawei Confidential
Présentation de ZooKeeper
• Si le ZooKeeper peut terminer l'élection, il peut fournir des services pour
des systèmes externes.
• Lors de l'élection de ZooKeeper, si une instance obtient plus de la moitié
des votes, elle devient le leader.
• Pour un service avec n instances, n peut être un nombre pair ou impair.
• Lorsque n est un nombre impair, supposons : n= 2x+1 ; alors le nœud doit
obtenir x+1 votes pour devenir le leader, et la capacité DR est x.
• Lorsque n est un nombre pair, cela : 2x+2 ; alors le nœud doit obtenir x+2
(plus de la moitié) des votes pour devenir le leader, et la capacité DR est x.
• Par conséquent, la capacité DR de 2x+1 nœuds est la même que celle de
2x+2 nœuds (trois nœuds sont identiques à quatre nœuds et cinq nœuds
sont identiques à six nœuds). Compte tenu de la corrélation entre la
vitesse d'opération d'élection et d'écriture et le nombre de nœuds, il est
63
recommandé de déployer un nombre impair de nœuds pour ZooKeeper.
Key Features of ZooKeeper
 Eventual consistency: All servers are displayed in the same view.
 Real-time capability: Clients can obtain server updates and failures within a specified
period of time.
 Reliability: A message will be received by all servers.
 Wait-free: Slow or faulty clients cannot intervene the requests of rapid clients so that the
requests of each client can be processed effectively.
 Atomicity: Data update either succeeds or fails. There are no intermediate states.
 Sequence consistency: Updates sent by the client are applied in the sequence in which
they are sent.

64 Huawei Confidential
Read Function of ZooKeeper
 According to the consistency of ZooKeeper, the client obtains the same view
regardless of the server connected to the client. Therefore, read operations can be
performed between the client and any node.

ZK1(F) ZK2(L) ZK3(F)

Local Storage Local Storage Local Storage

1.Read request 2.Read


response

Client

65 Huawei Confidential
Write Function of ZooKeeper

3.2. Send
Proposal 2. Write Request
4.1
ZK1(F) 3.1 ZK2(L) ZK3(F)
3.3. Send
Proposal
4.2.
ACK 4.3.
ACK
5.1
5.3. Commit
Local Storage 5.2. Commit Local Storage Local Storage

1. Write Request

Client
6. Write Response

66 Huawei Confidential
Fonction d'écriture de ZooKeeper
• Un client peut lancer une demande d'écriture sur n'importe quel
serveur.
• Le serveur envoie cette requête au leader.
• Après avoir reçu la demande d'écriture, le leader envoie la
demande d'écriture à tous les nœuds et confirme si l'opération
d'écriture peut être effectuée.
• Les followers envoient des messages ACK. Le leader détermine si
l'opération d'écriture peut être effectuée sur la base des messages
ACK. Si le nombre d'opérations d'écriture pouvant être effectuées
est supérieur à 50 % du nombre total d'instances, l'opération
d'écriture peut être effectuée.
• Le leader envoie le résultat aux suiveurs et effectue l'opération
d'écriture. Les données du leader sont synchronisées avec les
suiveurs. L'opération d'écriture est terminée.
67
Commands for ZooKeeper Clients
 To invoke a ZooKeeper client, run the following command:

zkCli.sh –server 172.16.0.1:24002


 To create a node: create /node
 To list subnodes: ls /node
 To create node data: set /node data
 To obtain node data: get /node
 To delete a node: delete /node
 To delete a node and all its subnodes: deleteall /node

68 Huawei Confidential
Summary
 The distributed file system is an effective solution for large-scale data storage in the big data era. The open-source HDFS
implements GFS and distributed storage of massive data by using a computer cluster formed by inexpensive hardware.

 HDFS is compatible with inexpensive hardware devices, stream data read and write, large data sets, simple file models,
and powerful cross-platform compatibility. However, HDFS has its own limitations. For example, it is not suitable for low-
latency data access, cannot efficiently store a large number of small files, and does not support multi-user write and
arbitrary file modification.

 "Block" is the core concept of HDFS. A large file is split into multiple blocks. HDFS adopts the abstract block concept,
supports large-scale file storage, simplifies system design, and is suitable for data backup.

 The ZooKeeper distributed service framework is used to solve some data management problems that are frequently
encountered in distributed applications and provide distributed and highly available coordination service capabilities.

69 Huawei Confidential
Quiz

1. Why is it recommended that the number of ZooKeepers be deployed in an odd


number?

2. Why is the HDFS data block size larger than the disk block size?

3. Can HDFS data be read when it is written?

70 Huawei Confidential
Recommendations

 Huawei Cloud Official Web Link:


 https://www.huaweicloud.com/intl/en-us/

 Huawei MRS Documentation:


 https://www.huaweicloud.com/intl/en-us/product/mrs.html

 Huawei TALENT ONLINE:


 https://e.huawei.com/en/talent/#/

71 Huawei Confidential
Thank you. Bring digital to every person, home, and
organization for a fully connected,
intelligent world.

Copyright©2020 Huawei Technologies Co., Ltd.


All Rights Reserved.

The information in this document may contain predictive


statements including, without limitation, statements regarding
the future financial and operating results, future product
portfolio, new technology, etc. There are a number of factors that
could cause actual results and developments to differ materially
from those expressed or implied in the predictive statements.
Therefore, such information is provided for reference purpose
only and constitutes neither an offer nor an acceptance. Huawei
may change the information at any time without notice.

Vous aimerez peut-être aussi