Indholdsfortegnelse:
Video: Bildæk: Optimer dit dæktryk, spar penge, og kør sikkert. Se guiden her! 2024
Bortset fra at optimere den aktuelle applikationskode med MapReduce til store dataprojekter, kan du bruge nogle optimeringsteknikker til forbedring af pålidelighed og ydeevne. De falder i tre kategorier: hardware / netværkstopologi, synkronisering og filsystem.
Stor datahjælp / netværkstopologi
Uafhængigt af applikationen vil den hurtigste hardware og netværk sandsynligvis give de hurtigste runde gange for din software. En klar fordel ved MapReduce er evnen til at køre på billige klynger af råvarehardware og standardnetværk. Hvis du ikke er opmærksom på, hvor dine servere er fysisk organiserede, får du ikke den bedste ydelse og høj grad af fejltolerance, der er nødvendige for at understøtte store dataopgaver.
Commodity-hardware opbevares ofte i racks i datacenteret. Nærheden af hardwaren i racket giver en præstationsfordel i modsætning til at flytte data og / eller kode fra rack til rack. Under implementeringen kan du konfigurere din MapReduce-motor til at være opmærksom på og drage fordel af denne nærhed.
Ved at holde dataene og koden sammen er en af de bedste optimeringer til MapReduce-ydeevne. I virkeligheden jo tættere hardwareforarbejdningselementerne er til hinanden, jo mindre latens skal du håndtere.
Stor datasynkronisering
Da det er ineffektivt at holde alle resultaterne af din kortlægning i noden, kopierer synkroniseringsmekanismerne kortlægningsresultaterne til de reducerende noder, umiddelbart efter at de er afsluttet, så at behandling kan begynde med det samme. Alle værdier fra samme nøgle sendes til samme reducer, hvilket igen sikrer højere ydelse og bedre effektivitet.
Reduktionsudgange skrives direkte til filsystemet, så det skal konstrueres og indstilles til de bedste resultater.
Stort datafilsystem
Din MapReduce-implementering understøttes af et distribueret filsystem. Den største forskel mellem lokale og distribuerede filsystemer er kapacitet. For at håndtere de enorme mængder information i en stor datafil, skal filsystemer spredes på tværs af flere maskiner eller noder i et netværk.
MapReduce implementeringer er afhængige af en master-slave distributionsform, hvor hovednoden lagrer alle metadata, adgangsrettigheder, kortlægning og placering af filer og blokke osv. Slaverne er knuder, hvor de faktiske data er gemt. Alle anmodninger går til mesteren og håndteres derefter af den relevante slave node.Som du overvejer filsystemets design, bør du overveje følgende:
-
Hold det varmt: Som du måske regner med, kan master node blive overarbejde, fordi alt begynder der. Hvis masternoden fejler, er hele filsystemet utilgængeligt, indtil masteren er gendannet. En meget vigtig optimering er at skabe en "varm standby" masterknude, der kan komme i brug, hvis der opstår et problem med online master.
-
Jo større jo bedre: Filstørrelse er også en vigtig overvejelse. Masser af små filer (mindre end 100 MB) bør undgås. Distribuerede filsystemer, der understøtter MapReduce-motorer, virker bedst, når de er befolket med et beskedent antal store filer.
-
Den lange visning: Fordi arbejdsbelastninger forvaltes i batcher, er meget vedholdende netværksbåndbredde vigtigere end hurtige udførelsestider for mappere eller reduktionsanordninger. Den optimale tilgang er, at koden strømmer masser af data, når den læser og igen, når det er tid til at skrive til filsystemet.
-
Hold det sikkert: Men ikke overdrevent det. Tilføjelse af sikkerhedslag på det distribuerede filsystem vil nedbryde dets ydeevne. Filtilladelserne er der for at beskytte mod utilsigtede konsekvenser, ikke skadelig adfærd. Den bedste fremgangsmåde er at sikre, at kun autoriserede brugere har adgang til datacentermiljøet og for at holde det distribuerede filsystem beskyttet udefra.