In unserem vorherigen Hadoop Blog haben wir Ihnen eine ausführliche Beschreibung von Hadoop InputFormat bereitgestellt und Ausgabeformat . Jetzt werden wir uns ausführlich mit Hadoop-Zählern befassen. In diesem Hadoop-Tutorial besprechen wir, was MapReduce-Zähler sind und welche Rolle sie spielen.
Schließlich werden wir auch die Arten von Zählern in Hadoop MapReduce behandeln. Wie MapReduce-Aufgabenzähler, Dateisystemzähler, FileInputFormat-Zähler FileOutputFormat-Zähler, Job-Zähler in MapReduce, Dynamische Zähler in Hadoop.
Hadoop MapReduce
Bevor wir mit Hadoop Counters beginnen, wollen wir zunächst lernen, was Hadoop MapReduce ist?
MapReduce ist die Datenverarbeitungsschicht von Hadoop. Es verarbeitet große strukturierte und unstrukturierte Daten, die in HDFS. gespeichert sind MapReduce verarbeitet auch eine riesige Menge an Daten parallel. Dies geschieht, indem der Job (vorgelegter Job) in eine Reihe unabhängiger Aufgaben (Sub-Job) aufgeteilt wird. In Hadoop funktioniert MapReduce, indem es die Verarbeitung in Phasen aufteilt:Map und Reduzieren .
- Kartenphase- Es ist die erste Phase des Datenprozesses. In dieser Phase spezifizieren wir die gesamte komplexe Logik/Geschäftsregeln/kostspieligen Code.
- Reduzierungsphase- Es ist die zweite Phase der Verarbeitung. In dieser Phase spezifizieren wir einfache Verarbeitung wie Aggregation/Summierung.
Was sind Hadoop-Zähler?
Zähler in Hadoop sind ein nützlicher Kanal zum Sammeln von Statistiken über den MapReduce-Job. Wie für die Qualitätskontrolle oder für die Anwendungsebene. Zähler sind auch für die Problemdiagnose nützlich.
Ein Zähler stellt globale Apache Hadoop-Zähler dar, die entweder vom MapReduce-Framework definiert werden. Jeder Zähler in MapReduce wird durch ein „Enum“ benannt. Es hat auch ein long für den Wert.
Hadoop-Zähler bestätigen dies:
- Es liest und schreibt die richtige Anzahl von Bytes.
- Es hat die richtige Anzahl von Aufgaben gestartet und erfolgreich ausgeführt oder nicht.
- Zähler validieren auch, ob die verbrauchte CPU- und Arbeitsspeichermenge für unsere Job- und Cluster-Knoten angemessen ist oder nicht.
Arten von Zählern in MapReduce
Es gibt zwei Arten von MapReduce-Zählern:
- Eingebaute Zähler
- Benutzerdefinierte Zähler/benutzerdefinierte Zähler
1. Integrierte Zähler in Hadoop MapReduce
Apache Hadoop unterhält einige eingebaute Zähler für jeden Job. Diese Zähler melden verschiedene Metriken. Es gibt Zähler für die Anzahl der Bytes und Datensätze. Dadurch können wir bestätigen, dass die erwartete Menge an Input verbraucht und die erwartete Menge an Output produziert wird.
Hadoop-Zähler sind ebenfalls in Gruppen unterteilt. Es gibt mehrere Gruppen von eingebauten Zählern. Jede Gruppe enthält außerdem entweder Aufgabenzähler oder Jobzähler.
Einige Gruppen der eingebauten Zähler in Hadoop sind wie folgt:
a) MapReduce-Aufgabenzähler
Der Aufgabenzähler sammelt während seiner Ausführungszeit spezifische Informationen über Aufgaben. Dazu gehört die Anzahl der gelesenen und geschriebenen Datensätze.
Beispielsweise ist der Zähler MAP_INPUT_RECORDS der Aufgabenzähler. Es zählt auch die Eingabedatensätze, die von jeder Zuordnungsaufgabe gelesen werden.
b) Dateisystemzähler
Dieser Zähler sammelt Informationen wie die Anzahl der vom Dateisystem gelesenen und geschriebenen Bytes. Der Name und die Beschreibung der Dateisystemzähler lauten wie folgt:
- Dateisystem-Bytes gelesen – Die Anzahl der vom Dateisystem gelesenen Bytes.
- Dateisystem-Bytes geschrieben – Die Anzahl der in das Dateisystem geschriebenen Bytes.
c) FileInputFormat-Zähler
Diese Zähler sammeln auch Informationen über eine Anzahl von Bytes, die von Zuordnungsaufgaben über FileInputFormat gelesen werden.
d) FileOutputFormat-Zähler
Diese Zähler sammeln auch Informationen über eine Anzahl von Bytes, die von Map-Tasks geschrieben wurden (für Nur-Map-Jobs) oder reduzieren Tasks über FileOutputFormat.
e) Jobzähler in MapReduce
Der Jobzähler misst die Statistiken auf Jobebene. Es misst keine Werte, die sich ändern, während eine Aufgabe ausgeführt wird.
Zählen Sie beispielsweise TOTAL_LAUNCHED_MAPS die Anzahl der Kartenaufgaben, die im Laufe eines Jobs gestartet wurden. Der Anwendungsmaster misst auch die Jobzähler.
Daher müssen sie im Gegensatz zu allen anderen Zählern, einschließlich benutzerdefinierten, nicht über das Netzwerk gesendet werden.
2. Benutzerdefinierte Zähler oder benutzerdefinierte Zähler in Hadoop MapReduce
Zusätzlich zu den integrierten Zählern ermöglicht Hadoop MapReduce dem Benutzercode, eine Reihe von Zählern zu definieren. Dann werden sie wie gewünscht im Mapper erhöht oder Reduzierer . Wie in Java, um Zähler zu definieren, verwendet es „enum ’ .
Ein Job kann eine beliebige Anzahl von „Enums“ definieren. Jeweils mit einer beliebigen Anzahl von Feldern. Der Name der Aufzählung ist der Gruppenname. Die Felder der Aufzählung sind die Zählernamen.
a) Dynamische Zähler in Hadoop
Die Felder von Java enum werden zur Kompilierzeit definiert. Wir können also keine neuen Zähler zur Laufzeit mit Enums erstellen. Wir verwenden also dynamische Zähler, um zur Laufzeit neue Zähler zu erstellen. Aber der dynamische Zähler wird zur Kompilierzeit nicht definiert.
Schlussfolgerung
Daher prüfen Zähler, ob die richtige Anzahl von Bytes gelesen und geschrieben wurde. Der Zähler misst auch den Fortschritt oder die Anzahl der Vorgänge, die innerhalb des MapReduce-Jobs auftreten.
Hadoop verwaltet auch integrierte Zähler und benutzerdefinierte Zähler, um den Fortschritt zu messen, der innerhalb des MapReduce-Jobs auftritt.
Ich hoffe, dieser Blog hat Ihnen geholfen. Wenn Sie Fragen zu Hadoop Counter haben, hinterlassen Sie einen Kommentar in einem Abschnitt unten.