sql >> Databasteknik >  >> NoSQL >> HBase

Hadoop-räknare och typer av räknare i MapReduce

I vår tidigare Hadoop blogg har vi gett dig en detaljerad beskrivning av Hadoop InputFormat och OutputFormat . Nu ska vi täcka Hadoop-räknare i detalj. I denna Hadoop-handledning kommer vi att diskutera vad som är MapReduce Counters, vilka är deras roller.

Äntligen kommer vi också att täcka typerna av räknare i Hadoop MapReduce. Som MapReduce Task Counter, File System Counters, FileInputFormat Counters,  FileOutputFormat-räknare, jobbräknare i MapReduce, Dynamiska räknare i Hadoop.

Hadoop MapReduce

Innan vi börjar med Hadoop Counters, låt oss först lära oss vad Hadoop MapReduce är?

MapReduce är databehandlingslagret i Hadoop. Den bearbetar stora strukturerade och ostrukturerade data lagrade i HDFS. MapReduce bearbetar också en enorm mängd data parallellt. Den gör detta genom att dela upp jobbet (inlämnat jobb) i en uppsättning självständiga uppgifter (underjobb). I Hadoop fungerar MapReduce genom att dela upp bearbetningen i faser: Karta ochReducera .

  • Kartfas- Det är den första fasen av dataprocessen. I denna fas specificerar vi all komplex logik/affärsregler/dyr kod.
  • Reducera fas- Det är den andra fasen av bearbetningen. I denna fas specificerar vi lättviktsbearbetning som aggregering/summering.

Vad är Hadoop Counters?

Räknare i Hadoop är en användbar kanal för att samla in statistik om MapReduce-jobbet. Som för kvalitetskontroll eller för applikationsnivå. Räknare är också användbara för problemdiagnostik.

En räknare representerar Apache Hadoop globala räknare, definierade antingen av MapReduce-ramverket. Varje räknare i MapReduce namnges med ett "Enum". Det har också en lång för värdet.

Hadoop-räknare bekräftar att:

  • Den läser och skriver korrekt antal byte.
  • Den har startat och kört korrekt antal uppgifter eller inte.
  • Räknare validerar också att mängden CPU och minne som förbrukas är lämplig för våra jobb- och klusternoder eller inte.

Typer av räknare i MapReduce

Två typer av MapReduce-räknare är:

  • Inbyggda räknare
  • Användardefinierade räknare/anpassade räknare

1. Inbyggda räknare i Hadoop MapReduce

Apache Hadoop underhåller några inbyggda räknare för varje jobb. Dessa räknare rapporterar olika mätvärden. Det finns räknare för antalet byte och poster. Vilket gör att vi kan bekräfta att den förväntade mängden input konsumeras och den förväntade mängden output produceras.

Hadoop-räknare är också indelade i grupper. Det finns flera grupper av de inbyggda diskarna. Varje grupp innehåller också antingen uppgiftsräknare eller innehåller jobbräknare.

Flera grupper av de inbyggda räknarna i Hadoop är följande:

a) MapReduce Task Counter

Uppgiftsräknaren samlar in specifik information om uppgifter under dess utförandetid. Som inkluderar antalet lästa och skrivna poster.

Till exempel är MAP_INPUT_RECORDS-räknaren uppgiftsräknaren. Den räknar också indataposterna som läses av varje kartuppgift.

b) Filsystemräknare

Denna räknare samlar information som ett antal byte som läses och skrivs av filsystemet. Namnet och beskrivningen av filsystemräknare är följande:

  • Lästa filsystembytes – Antalet byte som läses av filsystemet.
  • Filsystembytes skrivna – Antalet byte som skrivits till filsystemet.
c) FileInputFormat-räknare

Dessa räknare samlar också in information om ett antal byte som läses av kartuppgifter via FileInputFormat.

d) FileOutputFormat-räknare

Dessa räknare samlar också in information om ett antal byte skrivna av kartuppgifter (för enbart kartjobb) eller minskar uppgifter via FileOutputFormat.

e) Jobbräknare i MapReduce

Jobbräknare mäter statistiken på jobbnivå. Den mäter inte värden som ändras medan en uppgift körs.

Till exempel TOTAL_LAUNCHED_MAPS, räkna antalet kartuppgifter som lanserades under ett jobb. Application master mäter också jobbräknare.

Så de behöver inte skickas över nätverket, till skillnad från alla andra räknare, inklusive användardefinierade.

2. Användardefinierade räknare eller anpassade räknare i Hadoop MapReduce

Förutom inbyggda räknare tillåter Hadoop MapReduce användarkod att definiera en uppsättning räknare. Sedan ökar den dem efter önskemål i kartläggningen eller reducerare . Som i Java för att definiera räknare som den använder, 'enum ’ .

Ett jobb kan definiera ett godtyckligt antal "uppräkningar". Var och en med ett godtyckligt antal fält. Namnet på uppräkningen är gruppnamnet. Uppräkningens fält är räknarens namn.

a) Dynamiska räknare i Hadoop

Java enums fält definieras vid kompilering. Så vi kan inte skapa nya räknare under körning med hjälp av enums. Så vi använder dynamiska räknare för att skapa nya räknare under körning. Men dynamisk räknare definieras inte vid kompilering.

Slutsats

Räknare kontrollerar därför om den har läst och skrivit korrekt antal byte. Räknaren mäter också framstegen eller antalet operationer som sker inom MapReduce-jobbet.

Hadoop har också inbyggda räknare och användardefinierade räknare för att mäta framstegen som sker inom MapReduce-jobbet.

Hoppas den här bloggen hjälpte dig. Om du har några frågor relaterade till Hadoop Counter, lämna en kommentar i ett avsnitt nedan.


  1. Hur ansluter du till ett replikset från ett MongoDB-skal?

  2. MongoDB bind_ip fungerar inte om den inte är inställd på 0.0.0.0

  3. .NET Core injicera singleton-tjänst i en annan singleton-tjänst

  4. MongoDB utskriftsavstånd mellan två punkter