NameNode Hochverfügbarkeit mit Quorum Journal Manager



Die Hochverfügbarkeit von NameNode ist eine der wichtigsten Funktionen von Hadoop 2.0. Die Hochverfügbarkeit von NameNode mit Quorum Journal Manager wird verwendet, um Bearbeitungsprotokolle zwischen dem aktiven und dem Standby-NameNode freizugeben.

Dies ist eine der wichtigsten Funktionen von Hadoop 2.0. Bevor Sie die Namenode-Hochverfügbarkeitsfunktion besprechen, müssen Sie unbedingt wissen, was Quorum ist. Quorum ist ein Oberbegriff für Clustering, bei dem ein bestimmter Cluster stabil ist. Das Quorum enthält eine Liste der Computer und hilft bei der Ermittlung des Zustands des Clusters. Es gibt zwei Arten von Quorum: Erwartetes Quorum und Berechnetes Quorum.





Was ist ein Char in Java

NameNode Hochverfügbarkeit mit Quorum Journal Manager (QJM)

Vor Hadoop 2.0 war der NameNode ein Single Point of Failure (SPOF) in einem HDFS-Cluster. Jeder Cluster hatte einen einzelnen NameNode, und wenn dieser Computer nicht verfügbar war, war der Cluster insgesamt nicht verfügbar, bis der NameNode entweder neu gestartet oder auf einem separaten Computer gestartet wurde. In einem klassischen HA-Cluster sind zwei separate Computer als NameNodes konfiguriert. Zu jedem Zeitpunkt befindet sich einer der NameNodes im aktiven Zustand und der andere im Standby-Zustand. Der Active NameNode ist für alle Clientvorgänge im Cluster verantwortlich, während der Standby lediglich als Slave fungiert und den Status für ein schnelles Failover beibehält.

Damit der Standby-Knoten seinen Status mit dem aktiven Knoten koordiniert, kommunizieren beide Knoten mit einer Gruppe separater Dämonen, die als 'JournalNodes' (JNs) bezeichnet werden. Wenn eine Namespace-Änderung vom aktiven Knoten durchgeführt wird, protokolliert er einen Datensatz der vorgenommenen Änderungen in den JournalNodes. Der Standby-Knoten kann die geänderten Informationen aus den JNs lesen und überwacht sie regelmäßig auf Änderungen. Wenn der Standby-Knoten die Änderungen sieht, wendet er sie auf seinen eigenen Namespace an. Im Falle eines Failovers stellt der Standby-Modus sicher, dass alle Änderungen von den JounalNodes gelesen wurden, bevor der Status in 'Aktiver Status' geändert wird. Dies garantiert, dass der Namespace-Status vollständig synchronisiert ist, bevor ein Failover auftritt.



Um ein schnelles Failover zu ermöglichen, muss der Standby-Knoten über die aktualisierten und aktuellen Informationen zur Position der Blöcke im Cluster verfügen. Zu diesem Zweck werden die DataNodes mit dem Speicherort beider NameNodes konfiguriert und senden Blockstandortinformationen und Heartbeats an beide.

Es ist wichtig, dass jeweils nur einer der NameNodes aktiv ist. Andernfalls würde der Namespace-Status zwischen beiden abweichen und zu Datenverlust oder fehlerhaften Ergebnissen führen. Um dies zu vermeiden, erlauben die JournalNodes jeweils nur einen einzelnen NameNode für einen Schreiber. Während eines Failovers übernimmt der NameNode, der aktiv werden soll, die Verantwortung für das Schreiben in die JournalNodes.

Hast du eine Frage an uns? Bitte erwähnen Sie sie in den Kommentaren und wir werden uns bei Ihnen melden.



Zusammenhängende Posts:

Übersicht über die Hadoop 2.0 Cluster Architecture Federation

Was ist MVC in Java