sql >> Databasteknik >  >> NoSQL >> HBase

Skillnaden mellan InputSplit vs Blocks i Hadoop

I denna MapReduce-handledning kommer vi att diskutera jämförelsen mellan MapReduce InputSplit vs Blocks i Hadoop . Först kommer vi att se vad som är HDFS-datablock bredvid vad som är Hadoop InputSplit.

Då kommer vi att se den funktionsmässiga skillnaden mellan InputSplit vs Blocks. Till sist kommer vi också att diskutera exemplet med Hadoop InputSplit och datablock i HDFS.

Introduktion till InputSplit och Blocks i Hadoop

Låt oss först diskutera vad som är HDFS-datablock och vad som är Hadoop InputSplit en efter en.

1. Vad är ett block i HDFS?

Hadoop HDFS dela upp stora filer i små bitar som kallas block. Den innehåller en minsta mängd data som kan läsas eller skrivas. HDFS lagrar varje fil som block.

Hadoop-applikationen distribuerar datablocket över flera noder. HDFS-klienten har ingen kontroll på blocket som blockets plats, Namenode bestämmer alla sådana saker.

2. Vad är InputSplit i Hadoop?

Det representerar data som enskild kartläggare processer. Således är antalet kartuppgifter lika med antalet InputSplits. Framework delar upp i poster, som mappar processer.

Inledningsvis lagrar inmatningsfiler data för MapReduce-jobbet. Inmatning av en fil finns vanligtvis i HDFS InputFormat beskriver hur man delar upp och läser indatafiler. InputFormat ansvarar för att skapa InputSplit.

Jämförelse mellan InputSplit vs Blocks i Hadoop

Låt oss nu diskutera den funktionsmässiga skillnaden mellan InputSplit vs Blocks i Hadoop Framework.

1. Datarepresentation

  • Blockera –  HDFS Block är den fysiska representationen av data i Hadoop.
  • InputSplit –  MapReduce InputSplit är den logiska representationen av data som finns i blocket i Hadoop. Det används i princip under databehandling i MapReduce-programmet eller andra bearbetningstekniker. Det viktigaste att fokusera på är att InputSplit inte innehåller faktiska data; det är bara en referens till data.

2. Storlek

  • Blockera –  Som standard är HDFS-blockstorleken 128 MB som du kan ändra enligt dina önskemål. Alla HDFS-block har samma storlek utom det sista blocket, som antingen kan ha samma storlek eller mindre. Hadoop-ramverket delar upp filer i 128 MB-block och lagras sedan i Hadoop-filsystemet.
  • InputSplit –  InputSplit-storlek är som standard ungefär lika med blockstorlek. Det är användardefinierat. I programmet MapReduce kan användaren styra delad storlek baserat på storleken på data.

3. Exempel på Block och InputSplit i Hadoop

Anta att vi behöver lagra filen i HDFS. Hadoop HDFS lagrar filer som block. Block är den minsta dataenhet som kan lagras eller hämtas från disken.

Standardstorleken på blocket är 128MB. Hadoop HDFS delar upp filer i block. Sedan lagrar den dessa block på olika noder i klustret.

Vi har till exempel en fil på 132 MB. Så HDFS kommer att dela upp den här filen i 2 block.

Om vi ​​nu vill utföra en MapReduce-operation på blocken kommer den inte att bearbetas. Anledningen är att 2 block är ofullständigt. Så, InpuSplit löser detta problem.

MapReduce InputSplit kommer att bilda en logisk grupp av block som ett enda block. Som InputSplit inkluderar en plats för nästa block och byte-offset för de data som behövs för att slutföra blocket.

Slutsats

Därför är InputSplit bara en logisk del av data, det vill säga den har bara information om blockadress eller plats. Medan Block är den fysiska representationen av data.

Nu är jag säker på att du har en tydligare förståelse om InputSplit- och HDFS-datablock efter att ha läst den här bloggen. Om du hittar någon annan skillnad mellan InputSplit vs Blocks, så låt oss veta det i kommentarsektionen.


  1. Redis uppdaterar inte när många förfrågningar samtidigt

  2. $in kräver en array som ett andra argument, hittat:saknas

  3. MongoDB $exp

  4. Kontrollera flödesproblem med nod/redis och återuppringningar?