sql >> Database >  >> NoSQL >> HBase

Verschil tussen InputSplit versus blokken in Hadoop

In deze MapReduce-zelfstudie bespreken we de vergelijking tussen MapReduce InputSplit versus Blocks in Hadoop . Ten eerste zullen we zien wat HDFS-gegevensblokken zijn naast wat Hadoop InputSplit is.

Dan zullen we het functionele verschil zien tussen InputSplit en Blocks. Ten slotte zullen we ook het voorbeeld van Hadoop InputSplit en Data-blokken in HDFS bespreken.

Inleiding tot InputSplit en Blocks in Hadoop

Laten we eerst één voor één bespreken wat HDFS-gegevensblokken zijn en wat Hadoop InputSplit is.

1. Wat is een blokkering in HDFS?

Hadoop HDFS splits grote bestanden in kleine stukjes, ook wel Blocks genoemd. Het bevat een minimale hoeveelheid gegevens die kan worden gelezen of geschreven. HDFS slaat elk bestand op als blokken.

De Hadoop-applicatie verdeelt het datablok over meerdere nodes. HDFS-client heeft geen controle over het blok, zoals de locatie van het blok, de Namenode beslist over al dergelijke dingen.

2. Wat is InputSplit in Hadoop?

Het vertegenwoordigt de gegevens die individuele mapper processen. Het aantal kaarttaken is dus gelijk aan het aantal InputSplits. Framework verdeelt opgesplitst in records, die mapper verwerkt.

In eerste instantie slaan invoerbestanden de gegevens op voor de MapReduce-taak. Invoer van een bestand bevindt zich meestal in HDFS InputFormat beschrijft hoe invoerbestanden moeten worden opgesplitst en gelezen. InputFormat is verantwoordelijk voor het maken van InputSplit.

Vergelijking tussen InputSplit versus blokken in Hadoop

Laten we het nu hebben over het functionele verschil tussen InputSplit en Blocks in Hadoop Framework.

1. Gegevensweergave

  • Blokkeren –  HDFS Block is de fysieke representatie van gegevens in Hadoop.
  • InputSplit –  MapReduce InputSplit is de logische weergave van gegevens die aanwezig zijn in het blok in Hadoop. Het wordt in principe gebruikt tijdens gegevensverwerking in het MapReduce-programma of andere verwerkingstechnieken. Het belangrijkste om te focussen is dat InputSplit geen echte gegevens bevat; het is slechts een verwijzing naar de gegevens.

2. Maat

  • Blokkeren –  Standaard is de HDFS-blokgrootte 128 MB die u volgens uw vereiste kunt wijzigen. Alle HDFS-blokken hebben dezelfde grootte, behalve het laatste blok, dat even groot of kleiner kan zijn. Hadoop-framework breekt bestanden op in blokken van 128 MB en slaat ze vervolgens op in het Hadoop-bestandssysteem.
  • InputSplit –  De grootte van InputSplit is standaard ongeveer gelijk aan de blokgrootte. Het is door de gebruiker gedefinieerd. In het MapReduce-programma kan de gebruiker de gesplitste grootte regelen op basis van de gegevensgrootte.

3. Voorbeeld van Block en InputSplit in Hadoop

Stel dat we het bestand in HDFS moeten opslaan. Hadoop HDFS slaat bestanden op als blokken. Blok is de kleinste gegevenseenheid die kan worden opgeslagen of opgehaald van de schijf.

De standaardgrootte van het blok is 128 MB. Hadoop HDFS breekt bestanden op in blokken. Vervolgens slaat het deze blokken op verschillende knooppunten in het cluster op.

We hebben bijvoorbeeld een bestand van 132 MB. Dus HDFS zal dit bestand in 2 blokken splitsen.

Als we nu een MapReduce-bewerking op de blokken willen uitvoeren, wordt deze niet verwerkt. De reden is dat blok 2 onvolledig is. InpuSplit lost dit probleem dus op.

MapReduce InputSplit vormt een logische groepering van blokken als één enkel blok. Omdat de InputSplit een locatie voor het volgende blok bevat en de byte-offset van de gegevens die nodig zijn om het blok te voltooien.

Conclusie

Daarom is InputSplit slechts een logisch stuk gegevens, d.w.z. het heeft alleen de informatie over het adres of de locatie van de blokken. Terwijl Block de fysieke representatie van gegevens is.

Nu weet ik zeker dat je een beter begrip hebt van InputSplit- en HDFS-gegevensblokken na het lezen van deze blog. Als je een ander verschil vindt tussen InputSplit en Blocks, laat het ons dan weten in het commentaargedeelte.


  1. Laravel-caching begrijpen:cache-façade en Redis

  2. $ slice-operator gebruiken om het laatste element van de array te krijgen

  3. Kan geen verbinding maken met MongoDB vanwege verkeerde URI

  4. Hoe beperkingen toepassen in MongoDB?