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

Introduktion til datalokalitet i Hadoop MapReduce

I denne Hadoop tutorial, vi skal forklare dig konceptet med datalokalitet i Hadoop.

Først og fremmest vil vi se introduktionen til MapReduce Data Locality i Hadoop, derefter vil vi diskutere behovet for Hadoop Data Locality derefter med kategorierne Data Locality i MapReduce, Datalokalitetsoptimering.

Til sidst vil vi se fordelene ved Hadoop Data Locality-princippet i denne MapReduce tutorial.

Hvad er datalokalitet i Hadoop MapReduce?

Datalokalitet i Hadoop er processen med at flytte beregningen tæt på hvor de faktiske data er i stedet for at flytte store data til beregning. Dette minimerer den samlede overbelastning af netværket. Dette øger også systemets samlede gennemløb.

Den største ulempe ved Hadoop var cross-switch netværkstrafik på grund af den enorme mængde data. For at overvinde denne ulempe opstod Data Locality.

I Hadoop, HDFS gemmer datasæt. Framework opdeler datasæt i blokke og lagrer på tværs af datanoderne. Når en klient kører MapReduce-jobbet, sendte NameNode MapReduce-koden til de dataanoder, hvor data er tilgængelige i henhold til MapReduce-job.

Krav til Hadoop-datalokalitet

Hadoop-arkitektur skal opfylde nedenstående betingelser for at få fordelene ved alle fordelene ved datalokalitet:

  • For det første skal Hadoop-klyngen have den passende topologi. Hadoop-koden bør have mulighed for at læse datalokalitet.
  • For det andet bør Apache Hadoop være opmærksom på topologien af ​​de noder, hvor opgaver udføres. Hadoop burde også vide, hvor dataene er placeret.

Kategorier af datalokalitet i Hadoop

De forskellige kategorier i Hadoop Data Locality er som følger:

1. Data lokal datalokalitet i Hadoop

I denne er data placeret på den samme node som mapper arbejder på data. I dette, er nærheden af ​​data meget tæt på beregning. Data lokal datalokalitet er det mest foretrukne scenarie.

2. Intra-Rack datalokalitet i Hadoop

Som vi ved, at det ikke altid er muligt at udføre mapperen på den samme datanode på grund af ressourcebegrænsninger. I dette tilfælde foretrækkes det at køre mapper på den anden node, men på det samme rack.

3. Inter-Rack datalokalitet i Hadoop

Nogle gange er det heller ikke muligt at udføre mapper på en anden node i samme rack. I en sådan situation vil vi udføre mapperen på noderne på forskellige racks. Inter-rack datalokalitet er det mindst foretrukne scenarie.

Hadoop-datalokalitetsoptimering

Da datalokalitet er den største fordel ved Hadoop KortReducer. Men dette er ikke altid fordelagtigt i praksis på grund af forskellige årsager som heterogen klynge, spekulativ udførelse, datadistribution og -placering og datalayout.

I store klynger bliver udfordringer mere udbredte. Som i store klynge mere antallet af data noder og data, jo mindre er lokaliteten.

I større klynger er nogle noder nyere og hurtigere end de andre, hvilket skaber data-til-beregning-forholdet ude af balance. Derfor er store klynger ikke helt homogene.

I Hadoop spekulativ udførelse, da dataene måske ikke er lokale, men de bruger regnekraften. Hovedårsagen ligger også i datalayoutet/placeringen. Også ikke-lokal databehandling belaster netværket, hvilket skaber problemer med skalerbarheden. Derfor bliver netværket flaskehalsen.

Vi kan også forbedre datalokaliteten ved først at opdage, hvilke jobs der er forringet over tid eller datalokalitetsproblem. Problemløsning er mere kompleks og involverer ændring af dataplacering og datalayout ved hjælp af en anden skemalægger.

Derefter skal vi verificere, om en ny udførelse af den samme arbejdsbelastning har et bedre datalokalitetsforhold.

Fordele ved datalokalitet i Hadoop

  • Høj gennemstrømning –  Datalokalitet i Hadoop øger systemets samlede gennemløb.
  • Hurtigere udførelse –  I datalokalitet flytter framework kode til den node, hvor data findes i stedet for at flytte store data til noden. Dette gør således Hadoop hurtigere. Fordi programmets størrelse altid er mindre end datastørrelsen, så er flytning af data en flaskehals ved netværksoverførsel.

Konklusion

Som konklusion forbedrer datalokalitet i Hadoop den overordnede udførelse af systemet og gør Hadoop hurtigere. Derfor reducerer det overbelastning af netværket.

Hvis du finder denne blog nyttig, eller du har spørgsmål, så efterlad en kommentar i kommentarfeltet nedenfor. Vi vil med glæde løse dem.


  1. Find et dokument med ObjectID i mongoDB

  2. Hvordan kan jeg gennemse eller forespørge om live MongoDB-data?

  3. Hvad er den maksimale værdistørrelse, du kan gemme i redis?

  4. hvordan man flytter data fra mysql til redis