sql >> Database teknologi >  >> NoSQL >> HBase

Hadoop-tællere og typer af tællere i MapReduce

I vores tidligere Hadoop blog har vi givet dig en detaljeret beskrivelse af Hadoop InputFormat og OutputFormat . Nu skal vi dække Hadoop tællere i detaljer. I denne Hadoop tutorial vil vi diskutere, hvad der er MapReduce Counters, hvad er deres roller.

Til sidst vil vi også dække typerne af tællere i Hadoop MapReduce. Såsom MapReduce Task Counter, File System Counters, FileInputFormat Counters,  FileOutputFormat-tællere, Jobtællere i MapReduce, Dynamiske tællere i Hadoop.

Hadoop MapReduce

Inden vi starter med Hadoop Counters, lad os først lære, hvad Hadoop MapReduce er?

MapReduce er databehandlingslaget i Hadoop. Den behandler store strukturerede og ustrukturerede data gemt i HDFS. MapReduce behandler også en enorm mængde data parallelt. Det gør den ved at opdele jobbet (indsendt job) i et sæt selvstændige opgaver (underjob). I Hadoop fungerer MapReduce ved at opdele behandlingen i faser:Kort ogReducer .

  • Kortfase- Det er den første fase af dataprocessen. I denne fase specificerer vi al den komplekse logik/forretningsregler/dyr kode.
  • Reducer fase- Det er anden fase af behandlingen. I denne fase specificerer vi letvægtsbehandling som aggregering/summation.

Hvad er Hadoop Counters?

Tællere i Hadoop er en nyttig kanal til at indsamle statistik om MapReduce-jobbet. Som for kvalitetskontrol eller til applikationsniveau. Tællere er også nyttige til problemdiagnose.

En tæller repræsenterer Apache Hadoop globale tællere, defineret enten af ​​MapReduce-rammen. Hver tæller i MapReduce er navngivet med et "Enum". Det har også en lang for værdien.

Hadoop-tællere bekræfter, at:

  • Den læser og skriver det korrekte antal bytes.
  • Den er lanceret og kørt korrekt antal opgaver eller ej.
  • Tællere validerer også, at mængden af ​​forbrugt CPU og hukommelse er passende for vores job- og klynge noder eller ej.

Typer af tællere i MapReduce

2 typer MapReduce-tællere er:

  • Indbyggede tællere
  • Brugerdefinerede tællere/tilpassede tællere

1. Indbyggede tællere i Hadoop MapReduce

Apache Hadoop vedligeholder nogle indbyggede tællere til hvert job. Disse tællere rapporterer forskellige metrics. Der er tællere for antallet af bytes og poster. Hvilket giver os mulighed for at bekræfte, at den forventede mængde input er forbrugt, og den forventede mængde output produceres.

Hadoop-tællere er også opdelt i grupper. Der er flere grupper af de indbyggede tællere. Hver gruppe indeholder også enten opgavetællere eller indeholder jobtællere.

Flere grupper af de indbyggede tællere i Hadoop er som følger:

a) MapReduce Task Counter

Opgavetæller indsamler specifikke oplysninger om opgaver i løbet af dens udførelsestid. Som inkluderer antallet af læste og skrevne poster.

For eksempel er MAP_INPUT_RECORDS-tælleren opgavetælleren. Den tæller også de inputposter, der læses af hver kortopgave.

b) Filsystemtællere

Denne tæller samler information som et antal bytes læst og skrevet af filsystemet. Navnet og beskrivelsen af ​​filsystemtællerne er som følger:

  • Filsystembytes læst – Antallet af bytes læst af filsystemet.
  • Skrevet filsystembytes – Antallet af bytes skrevet til filsystemet.
c) FileInputFormat-tællere

Disse tællere indsamler også information om et antal bytes, der læses af kortopgaver via FileInputFormat.

d) FileOutputFormat-tællere

Disse tællere indsamler også information om et antal bytes skrevet af kortopgaver (for opgaver, der kun er kort) eller reducerer opgaver via FileOutputFormat.

e) Jobtællere i MapReduce

Jobtæller måler statistikken på jobniveau. Den måler ikke værdier, der ændres, mens en opgave kører.

For eksempel TOTAL_LAUNCHED_MAPS, tæl antallet af kortopgaver, der blev startet i løbet af et job. Application master måler også jobtællerne.

Så de behøver ikke at blive sendt på tværs af netværket, i modsætning til alle andre tællere, inklusive brugerdefinerede.

2. Brugerdefinerede tællere eller brugerdefinerede tællere i Hadoop MapReduce

Ud over indbyggede tællere tillader Hadoop MapReduce brugerkode at definere et sæt tællere. Derefter øges dem som ønsket i kortlægningen eller reduktion . Ligesom i Java til at definere tællere, den bruger, 'enum ’.

Et job kan definere et vilkårligt antal 'enums'. Hver med et vilkårligt antal felter. Navnet på enummet er gruppenavnet. Optællingens felter er tællernavnene.

a) Dynamiske tællere i Hadoop

Java enums felter defineres på kompileringstidspunktet. Så vi kan ikke oprette nye tællere ved kørselstid ved hjælp af enums. Så vi bruger dynamiske tællere til at oprette nye tællere på køretid. Men dynamisk tæller er ikke defineret på kompileringstidspunktet.

Konklusion

Derfor kontrollerer tællere, om den har læst og skrevet korrekt antal bytes. Tælleren måler også fremskridtet eller antallet af operationer, der forekommer i MapReduce-jobbet.

Hadoop vedligeholder også indbyggede tællere og brugerdefinerede tællere for at måle de fremskridt, der sker i MapReduce-jobbet.

Håber denne blog hjalp dig. Hvis du har nogen spørgsmål relateret til Hadoop Counter, så efterlad en kommentar i et afsnit nedenfor.


  1. JSON.NET cast-fejl ved serialisering af Mongo ObjectId

  2. Er redis-operationer på datastrukturer trådsikre

  3. Sådan forskønner du eksporterede MongoDB-dokumenter i mongoexport

  4. Find alle dokumenter inden for de sidste n dage