Innholdsfortegnelse:
Video: Lindbak - Slik optimaliserer du arbeidsplassen ergonomisk 2025
Bortsett fra optimalisering av den faktiske applikasjonskoden med MapReduce for store dataprosjekter, kan du bruke noen optimaliseringsteknikker for å forbedre påliteligheten og ytelsen. De faller i tre kategorier: maskinvare / nettverkstopologi, synkronisering og filsystem.
Stor datastyring / nettverkstopologi
Uavhengig av applikasjon, vil den raskeste maskinvaren og nettverkene trolig gi de raskeste kjøretidene for programvaren din. En klar fordel ved MapReduce er muligheten til å kjøre på billige klynger av råvarehardware og standardnettverk. Hvis du ikke tar hensyn til hvor serverne dine er fysisk organisert, vil du ikke få den beste ytelsen og høy grad av feiltoleranse som er nødvendig for å støtte store dataoppgaver.
Varemerker er ofte lagret i stativer i datasenteret. Nærheten til maskinvaren i racket gir en ytelsesfordel i motsetning til å flytte data og / eller kode fra rack til rack. Under implementeringen kan du konfigurere MapReduce-motoren for å være oppmerksom på og dra nytte av denne nærheten.
Holde dataene og koden sammen er en av de beste optimaliseringene for MapReduce-ytelsen. I hovedsak, jo nærmere maskinvarebehandlingselementene er til hverandre, jo mindre ventetid må du håndtere.
Stor datasynkronisering
Fordi det er ineffektivt å holde alle resultatene av kartleggingen i noden, kopierer synkroniseringsmekanismene kartleggingsresultatene til de reduserende nodene umiddelbart etter at de har fullført, slik at behandling kan begynne med en gang. Alle verdier fra samme nøkkel sendes til samme reduksjonsenhet, og sikrer igjen høyere ytelse og bedre effektivitet.
Reduksjonsutgangene skrives direkte til filsystemet, så det må utformes og justeres for best resultat.
Stort datafilsystem
Implementeringen av MapReduce støttes av et distribuert filsystem. Den største forskjellen mellom lokale og distribuerte filsystemer er kapasitet. For å håndtere store mengder informasjon i en stor datafjærlighet må filsystemer spres over flere maskiner eller noder i et nettverk.
MapReduce implementeringer er avhengig av en master-slave distribusjonsform, hvor hovednoden lagrer alle metadata, tilgangsrettigheter, kartlegging og plassering av filer og blokker, og så videre. Slavene er noder der de faktiske dataene er lagret. Alle forespørsler går til mesteren og håndteres av riktig slaveknutepunkt.Når du tenker på utformingen av filsystemet, bør du vurdere følgende:
-
Hold det varmt: Som du kanskje forventer, kan hovednoden bli overarbeidet fordi alt begynner der. I tillegg, hvis hovednoden feiler, er hele filsystemet utilgjengelig til masteren er gjenopprettet. En svært viktig optimalisering er å skape en "varm standby" masterknute som kan komme i bruk hvis det oppstår et problem med nettverksmesteren.
-
Jo større jo bedre: Filstørrelsen er også viktig. Mange små filer (mindre enn 100 MB) bør unngås. Distribuerte filsystemer som støtter MapReduce-motorer fungerer best når de er fylt med et beskjeden antall store filer.
-
Den lange utsikten: Fordi arbeidsbelastningene håndteres i batcher, er det svært viktig å opprettholde nettverksbåndbredde enn hurtige utførelsestider for mappers eller reduksjonsmaskiner. Den optimale tilnærmingen er at koden skal streame masse data når den leser og igjen når det er på tide å skrive til filsystemet.
-
Hold det sikkert: Men ikke altfor så. Hvis du legger til lag med sikkerhet på det distribuerte filsystemet, vil det redusere ytelsen. Filtillatelsene er der for å beskytte mot utilsiktede konsekvenser, ikke skadelig oppførsel. Den beste tilnærmingen er å sikre at kun autoriserte brukere har tilgang til datasentermiljøet og å beholde det distribuerte filsystemet beskyttet fra utsiden.
