sql >> Databasteknik >  >> NoSQL >> HBase

Introduktion till datalokalitet i Hadoop MapReduce

I denna Hadoop-handledning, vi kommer att förklara konceptet för datalokalitet i Hadoop.

Först och främst kommer vi att se introduktionen till MapReduce Data Locality i Hadoop, sedan kommer vi att diskutera behovet av Hadoop Data Locality med kategorierna Data Locality i MapReduce, Datalokalitetsoptimering.

Äntligen kommer vi att se fördelarna med Hadoop Data Locality-principen i denna MapReduce-handledning.

Vad är datalokalitet i Hadoop MapReduce?

Datalokalitet i Hadoop är processen att flytta beräkningen nära där den faktiska datan finns istället för att flytta stor data till beräkning. Detta minimerar den totala överbelastningen av nätverket. Detta ökar också systemets totala genomströmning.

Den största nackdelen med Hadoop var korskopplingsnätverkstrafik på grund av den enorma mängden data. För att övervinna denna nackdel kom Data Locality till.

I Hadoop, HDFS lagrar datamängder. Framework delar upp datauppsättningar i block och lagrar över datanoderna. När en klient kör MapReduce-jobbet skickade NameNode MapReduce-koden till datanoderna där data är tillgänglig enligt MapReduce-jobbet.

Krav för Hadoop Data Locality

Hadoop-arkitekturen måste uppfylla nedanstående villkor för att dra nytta av alla fördelar med datalokalitet:

  • För det första bör Hadoop-klustret ha lämplig topologi. Hadoop-koden bör ha förmågan att läsa datalokalitet.
  • För det andra bör Apache Hadoop vara medveten om topologin för de noder där uppgifter utförs. Hadoop bör också veta var data finns.

Datakategorier i Hadoop

De olika kategorierna i Hadoop Data Locality är följande:

1. Datalokal datalokal i Hadoop

I denna finns data på samma nod som mapparen arbetar med datan. I detta är närheten till data mycket nära beräkning. Datalokal datalokalitet är det mest föredragna scenariot.

2. Intra-Rack-datalokal i Hadoop

Som vi vet är det inte alltid möjligt att köra mapparen på samma datanod på grund av resursbegränsningar. I det här fallet är det att föredra att köra kartläggaren på en annan nod men på samma rack.

3. Inter-Rack datalokal i Hadoop

Ibland är det inte heller möjligt att köra mapper på en annan nod i samma rack. I en sådan situation kommer vi att köra mapparen på noderna på olika rack. Inter-rack datalokalitet är det minst föredragna scenariot.

Hadoop Datalokalitetsoptimering

Eftersom datalokalitet är den största fördelen med Hadoop MapReduce. Men detta är inte alltid fördelaktigt i praktiken på grund av olika orsaker som heterogent kluster, spekulativt utförande, datadistribution och -placering och datalayout.

I stora kluster blir utmaningar vanligare. Eftersom antalet datanoder och data är fler i stora kluster, desto mindre är lokaliteten.

I större kluster är vissa noder nyare och snabbare än de andra, vilket skapar förhållandet mellan data och beräkning ur balans. Således tenderar stora kluster inte att vara helt homogena.

I Hadoop spekulativ exekvering eftersom data kanske inte är lokal, men den använder beräkningskraften. Huvudorsaken ligger också i datalayouten/placeringen. Även icke-lokal databehandling belastar nätverket, vilket skapar problem med skalbarheten. Därför blir nätverket flaskhalsen.

Vi kan också förbättra datalokaliteten genom att först upptäcka vilka jobb som har försämrats över tid eller datalokalitetsproblem. Problemlösning är mer komplex och innebär att dataplacering och datalayout ändras med en annan schemaläggare.

Efter det måste vi verifiera om en ny körning av samma arbetsbelastning har ett bättre datalokalitetsförhållande.

Fördelar med datalokalitet i Hadoop

  • Hög genomströmning –  Datalokalitet i Hadoop ökar systemets totala genomströmning.
  • Snabbare exekvering –  I datalokalitet flyttar ramverket kod till noden där data finns istället för att flytta stora data till noden. Detta gör Hadoop snabbare. Eftersom storleken på programmet alltid är mindre än storleken på data, så är att flytta data en flaskhals för nätverksöverföring.

Slutsats

Sammanfattningsvis förbättrar datalokalitet i Hadoop den övergripande exekveringen av systemet och gör Hadoop snabbare. Därför minskar det överbelastning på nätverket.

Om du tycker att den här bloggen är användbar, eller om du har några frågor, så lämna en kommentar i kommentarsfältet nedan. Vi löser dem gärna.


  1. Hjälp att definiera ett fantastiskt MongoDB GUI-verktyg

  2. Mongodb:Fråga ett json-objekt kapslat i en array

  3. Hur man installerar MongoDB på Ubuntu 18.04

  4. Hitta dokument med arrayer som inte innehåller ett dokument med ett visst fältvärde i MongoDB