Inhoudsopgave:
Video: How to Install Linux Mint 19 Cinnamon on VirtualBox 2024
Afgezien van het optimaliseren van de eigenlijke applicatiecode met MapReduce voor big data-projecten, kunt u wat gebruiken optimalisatietechnieken om de betrouwbaarheid en prestaties te verbeteren. Ze vallen in drie categorieën: hardware / netwerktopologie, synchronisatie en bestandssysteem.
Big data-hardware / netwerktopologie
Onafhankelijk van de toepassing zullen de snelste hardware en netwerken waarschijnlijk de snelste draaitijden voor uw software opleveren. Een duidelijk voordeel van MapReduce is de mogelijkheid om te draaien op goedkope clusters van commodity-hardware en standaardnetwerken. Als u niet let op waar uw servers fysiek zijn georganiseerd, krijgt u niet de beste prestaties en hoge mate van fouttolerantie die nodig is om big data-taken te ondersteunen.
Commodity-hardware wordt vaak opgeslagen in racks in het datacenter. De nabijheid van de hardware in het rack biedt een prestatievoordeel in tegenstelling tot bewegende gegevens en / of code van rack tot rack. Tijdens de implementatie kunt u uw MapReduce-engine configureren om bewust te zijn van deze nabijheid en deze te benutten.
Het bij elkaar houden van de gegevens en de code is een van de beste optimalisaties voor MapReduce-prestaties. In wezen geldt hoe dichter de hardware-verwerkingselementen bij elkaar zijn, hoe minder vertraging u zult moeten verwerken.
Synchronisatie van grote gegevens
Omdat het inefficiënt is om alle resultaten van uw toewijzing binnen het knooppunt te bewaren, kopiëren de synchronisatiemechanismen de toewijzingsresultaten direct na het voltooien van de toewijzingsresultaten naar de reducerende knooppunten, zodat de de verwerking kan meteen beginnen. Alle waarden van dezelfde sleutel worden naar dezelfde reducer gestuurd, wat wederom garant staat voor hogere prestaties en betere efficiëntie.
De reductie-uitgangen worden rechtstreeks naar het bestandssysteem geschreven, dus het moet voor de beste resultaten worden ontworpen en afgestemd.
Big data-bestandssysteem
Uw MapReduce-implementatie wordt ondersteund door een gedistribueerd bestandssysteem. Het grote verschil tussen lokale en gedistribueerde bestandssystemen is capaciteit. Om de enorme hoeveelheden informatie in een grote gegevenswereld te verwerken, moeten bestandssystemen worden verspreid over meerdere machines of knooppunten in een netwerk.
MapReduce-implementaties zijn afhankelijk van een masterslaafverdelingsstijl, waarbij het hoofdknooppunt alle metagegevens, toegangsrechten, toewijzing en locatie van bestanden en blokken, enzovoort, opslaat. De slaves zijn knooppunten waar de feitelijke gegevens worden opgeslagen. Alle verzoeken gaan naar de master en worden vervolgens afgehandeld door de juiste slave-node.Denk bij het ontwerpen van het bestandssysteem aan het volgende:
-
Houd het warm: Zoals je zou verwachten, kan het masterknooppunt overwerkt raken omdat alles daar begint. Bovendien, als het hoofdknooppunt faalt, is het volledige bestandssysteem ontoegankelijk totdat de master is hersteld. Een zeer belangrijke optimalisatie is het creëren van een "warme standby" -knooppunt dat in dienst kan worden genomen als zich een probleem voordoet met de online-master.
-
Hoe groter hoe beter: Bestandsgrootte is ook een belangrijke overweging. Veel kleine bestanden (minder dan 100 MB) moeten worden vermeden. Gedistribueerde bestandssystemen die MapReduce-engines ondersteunen, werken het beste wanneer ze worden gevuld met een bescheiden aantal grote bestanden.
-
De lange weergave: Omdat workloads in batches worden beheerd, is een sterk aanhoudende netwerkbandbreedte belangrijker dan snelle uitvoeringstijden van de mappers of verloopstukken. De optimale aanpak is dat de code veel gegevens streamt wanneer deze wordt gelezen en opnieuw wanneer het tijd is om naar het bestandssysteem te schrijven.
-
Houd het veilig: Maar niet overdreven. Het toevoegen van beveiligingslagen aan het gedistribueerde bestandssysteem zal zijn prestaties verminderen. De bestandsrechten zijn er om te waken tegen onbedoelde gevolgen, niet aan kwaadaardig gedrag. De beste aanpak is om ervoor te zorgen dat alleen geautoriseerde gebruikers toegang hebben tot de datacenteromgeving en dat het gedistribueerde bestandssysteem van buitenaf wordt beschermd.