Wyjaśnij NameNode i DataNode w HDFS?

Klaster HDFS ma dwa typy węzłów działających w układzie master-slave:

1. NameNode (węzeł nadrzędny) i
2. liczba DataNodes (węzłów podrzędnych/pracowników).

HDFS NameNode
1. NameNode jest głównym centralnym składnikiem architektury HDFS.
2. NameNode jest również znany jako węzeł główny.
3. HDFS Namenode przechowuje metadane tj. liczbę bloków danych, nazwę pliku, ścieżkę, identyfikatory bloków, lokalizację bloków, liczbę replik, a także konfigurację związaną ze Slave. Te metadane są dostępne w pamięci w węźle nadrzędnym dla szybszego pobierania danych.
4. NameNode przechowuje metadane związane z przestrzenią nazw systemu plików w pamięci, dla szybszego czasu odpowiedzi. W związku z tym, potrzeba więcej pamięci. Tak więc konfiguracja NameNode powinna być wdrożona na niezawodnej konfiguracji.
5. NameNode utrzymuje i zarządza węzłami podrzędnymi oraz przypisuje im zadania.
6. NameNode posiada wiedzę o wszystkich DataNodes zawierających bloki danych dla danego pliku.
7. NameNode koordynuje pracę z setkami lub tysiącami węzłów danych i obsługuje żądania pochodzące z aplikacji klienckich.
Dwa pliki 'FSImage’ i 'EditLog’ są używane do przechowywania informacji metadanych.

FsImage: Jest to snapshot systemu plików, gdy Name Node jest uruchomiony. To jest „plik obrazu”. FsImage zawierać the cały filesystem namespace i przechowywać jako kartoteka w the NameNode’s lokalny system kartoteka. Zawiera on również serializowaną formę wszystkich katalogów i inodów plików w systemie plików. Każdy inode jest wewnętrzną reprezentacją metadanych pliku lub katalogu.

EditLogs: Zawiera wszystkie ostatnie modyfikacje dokonane w systemie plików na najbardziej aktualnym FsImage. NameNode otrzymuje od klienta żądanie utworzenia/aktualizacji/usunięcia. Po tym żądanie to jest najpierw zapisywane do pliku edits.

Funkcje NameNode w HDFS

1. Jest to główny demon, który utrzymuje i zarządza DataNodes (węzły slave).
2. Zapisuje metadane wszystkich plików przechowywanych w klastrze, np. lokalizację bloków przechowywanych, rozmiar plików, uprawnienia, hierarchię itp.
3. Zapisuje każdą zmianę, która ma miejsce w metadanych systemu plików. Na przykład, jeśli plik zostanie usunięty w HDFS, NameNode natychmiast zarejestruje to w EditLog.
4. Regularnie otrzymuje Heartbeat i raport blokowy ze wszystkich DataNodes w klastrze, aby upewnić się, że DataNodes żyją.
5. Przechowuje zapis wszystkich bloków w HDFS i w których węzłach te bloki się znajdują.
6. NameNode jest również odpowiedzialny za dbanie o czynnik replikacji wszystkich bloków.
7. W przypadku awarii DataNode, NameNode wybiera nowe DataNode dla nowych replik, równoważy użycie dysków i zarządza ruchem komunikacyjnym do DataNodes.

HDFS DataNode
1. Węzeł danych jest również znany jako węzeł slave.
2. W architekturze Hadoop HDFS węzeł danych przechowuje rzeczywiste dane w HDFS.
3. Węzły danych odpowiadają za obsługę żądań odczytu i zapisu dla klientów.
4. Węzły danych mogą być wdrażane na sprzęcie klasy commodity.
5. DataNodes wysyła informacje do NameNode o plikach i blokach przechowywanych w tym węźle i odpowiada do NameNode dla wszystkich operacji systemu plików.
6. Kiedy DataNode startuje to ogłosić się do NameNode wraz z listą bloków jest odpowiedzialny za.
7. DataNode jest zwykle skonfigurowany z dużą ilością miejsca na dysku twardym. Ponieważ rzeczywiste dane są przechowywane w DataNode.

Funkcje DataNode w HDFS
1. Są to daemony lub procesy slave, które działają na każdej maszynie slave.
2. Rzeczywiste dane są przechowywane w DataNodes.
3. DataNodes wykonują niskopoziomowe żądania odczytu i zapisu od klientów systemu plików.
4. Każdy DataNode wysyła wiadomość heartbeat do Name Node co 3 sekundy i przekazuje, że żyje. W scenariuszu, w którym Węzeł Nazw nie otrzymuje komunikatu „heartbeat” od Węzła Danych przez 10 minut, Węzeł Nazw uznaje ten konkretny Węzeł Danych za martwy i rozpoczyna proces replikacji bloku na innym Węźle Danych.
5. Wszystkie Węzły Danych są zsynchronizowane w klastrze Hadoop w taki sposób, aby mogły się ze sobą komunikować i zapewniać
i. Równoważenie danych w systemie
ii. Przenoszenie danych w celu utrzymania wysokiej replikacji
iii. Kopiowanie danych w razie potrzeby

.