In onze vorige Hadoop blog hebben we je een gedetailleerde beschrijving gegeven van Hadoop InputFormat en OutputFormat . Nu gaan we Hadoop-tellers in detail bespreken. In deze Hadoop-zelfstudie bespreken we wat MapReduce-tellers zijn, wat hun rollen zijn.
Eindelijk zullen we ook de soorten tellers in Hadoop MapReduce behandelen. Zoals MapReduce-taakteller, bestandssysteemtellers, FileInputFormat-tellers, FileOutputFormat-tellers, Job Counters in MapReduce, Dynamic Counters in Hadoop.
Hadoop MapReduce
Voordat we beginnen met Hadoop Counters, laten we eerst leren wat Hadoop MapReduce is?
MapReduce is de gegevensverwerkingslaag van Hadoop. Het verwerkt grote gestructureerde en ongestructureerde gegevens die zijn opgeslagen in HDFS. MapReduce verwerkt ook een enorme hoeveelheid gegevens parallel. Het doet dit door de taak (ingediende taak) op te delen in een reeks zelfstandige taken (subtaak). In Hadoop werkt MapReduce door de verwerking in fasen op te splitsen:Kaart enVerminderen .
- Kaartfase- Het is de eerste fase van het dataproces. In deze fase specificeren we alle complexe logica/bedrijfsregels/kostbare code.
- Fase verminderen- Het is de tweede fase van verwerking. In deze fase specificeren we lichtgewicht verwerking zoals aggregatie/sommatie.
Wat zijn Hadoop-tellers?
Tellers in Hadoop zijn een handig kanaal voor het verzamelen van statistieken over de MapReduce-taak. Zoals voor kwaliteitscontrole of voor applicatieniveau. Tellers zijn ook handig voor probleemdiagnose.
Een teller vertegenwoordigt Apache Hadoop-globale tellers, gedefinieerd door het MapReduce-framework. Elke teller in MapReduce wordt genoemd door een "Enum". Het heeft ook een long voor de waarde.
Hadoop-tellers valideren dat:
- Het leest en schrijft het juiste aantal bytes.
- Het is gestart en heeft met succes het juiste aantal taken uitgevoerd of niet.
- Tellers valideren ook dat de hoeveelheid verbruikte CPU en geheugen geschikt is voor onze taak en clusterknooppunten of niet.
Typen tellers in MapReduce
2 soorten MapReduce-tellers zijn:
- Ingebouwde tellers
- Door gebruiker gedefinieerde tellers/aangepaste tellers
1. Ingebouwde tellers in Hadoop MapReduce
Apache Hadoop onderhoudt enkele ingebouwde tellers voor elke taak. Deze tellers rapporteren verschillende statistieken. Er zijn tellers voor het aantal bytes en records. Hiermee kunnen we bevestigen dat de verwachte hoeveelheid input wordt verbruikt en de verwachte hoeveelheid output wordt geproduceerd.
Hadoop Counters zijn ook onderverdeeld in groepen. Er zijn verschillende groepen van de ingebouwde tellers. Elke groep bevat ook taaktellers of taaktellers.
Verschillende groepen van de ingebouwde tellers in Hadoop zijn als volgt:
a) MapReduce-taakteller
Taakteller verzamelt specifieke informatie over taken tijdens de uitvoeringstijd. Waaronder het aantal gelezen en geschreven records.
De teller MAP_INPUT_RECORDS is bijvoorbeeld de taakteller. Het telt ook de invoerrecords die door elke kaarttaak zijn gelezen.
b) Tellers van bestandssysteem
Deze teller verzamelt informatie zoals een aantal bytes dat door het bestandssysteem is gelezen en geschreven. De naam en beschrijving van de tellers van het bestandssysteem zijn als volgt:
- Bestandssysteem bytes gelezen – Het aantal bytes dat door het bestandssysteem wordt gelezen.
- Bestandssysteem bytes geschreven – Het aantal bytes dat naar het bestandssysteem is geschreven.
c) FileInputFormat-tellers
Deze tellers verzamelen ook informatie van een aantal bytes die door kaarttaken zijn gelezen via FileInputFormat.
d) FileOutputFormat-tellers
Deze tellers verzamelen ook informatie van een aantal bytes die zijn geschreven door kaarttaken (voor taken met alleen kaart) of verminderen taken via FileOutputFormat.
e) Taaktellers in MapReduce
Taakteller meet de statistieken op taakniveau. Het meet geen waarden die veranderen terwijl een taak wordt uitgevoerd.
Bijvoorbeeld TOTAL_LAUNCHED_MAPS, tel het aantal kaarttaken dat in de loop van een taak is gestart. Applicatiemaster meet ook de Job-tellers.
Ze hoeven dus niet over het netwerk te worden verzonden, in tegenstelling tot alle andere tellers, inclusief door de gebruiker gedefinieerde tellers.
2. Door de gebruiker gedefinieerde tellers of aangepaste tellers in Hadoop MapReduce
Naast ingebouwde tellers, staat Hadoop MapReduce gebruikerscode toe om een set tellers te definiëren. Vervolgens worden ze naar wens verhoogd in de mapper of verloopstuk . Zoals in Java om tellers te definiëren die het gebruikt, 'enum ’ .
Een baan kan een willekeurig aantal ‘enums’ definiëren. Elk met een willekeurig aantal velden. De naam van de enum is de groepsnaam. De velden van de opsomming zijn de tellernamen.
a) Dynamische tellers in Hadoop
De velden van Java enum worden gedefinieerd tijdens het compileren. We kunnen dus geen nieuwe tellers maken tijdens runtime met behulp van enums. We gebruiken dus dynamische tellers om tijdens runtime nieuwe tellers te maken. Maar dynamische teller wordt niet gedefinieerd tijdens het compileren.
Conclusie
Daarom controleren Tellers of het het juiste aantal bytes heeft gelezen en geschreven. Teller meet ook de voortgang of het aantal bewerkingen dat plaatsvindt binnen de MapReduce-taak.
Hadoop onderhoudt ook ingebouwde tellers en door de gebruiker gedefinieerde tellers om de voortgang te meten die optreedt binnen de MapReduce-taak.
Ik hoop dat deze blog je heeft geholpen. Als je een vraag hebt over Hadoop Counter, laat dan een reactie achter in een sectie hieronder.