Video: Genetic Engineering Will Change Everything Forever – CRISPR 2024
MapReduce blir alltmer användbar för stora data. I början av 2000-talet tittade vissa ingenjörer på Google in i framtiden och bestämde att medan deras nuvarande lösningar för applikationer som webbkryptering, frågfrekvens och så vidare var tillräckliga för de flesta befintliga krav, var de otillräckliga för den komplexitet de förväntade sig som webbskalad till fler och fler användare.
Dessa ingenjörer bestämde att om arbete kunde distribueras över billiga datorer och sedan anslutas i nätverket i form av ett "kluster" kunde de lösa problemet. Distribution ensam var inte ett tillräckligt svar. Denna fördelning av arbete måste utföras parallellt av följande tre anledningar:
-
Behandlingen måste kunna expandera och kontrakt automatiskt.
-
Behandlingen måste kunna fortsätta oberoende av fel i nätverket eller de enskilda systemen.
-
Utvecklare som utnyttjar detta tillvägagångssätt måste kunna skapa tjänster som är lätta att utnyttja av andra utvecklare. Därför måste detta tillvägagångssätt vara oberoende av var data och beräkningar har genomförts.
MapReduce designades som en generell programmeringsmodell. Några av de initiala implementeringarna tillhandahöll alla viktiga krav för parallellt utförande, feltolerans, lastbalansering och dataprofilering. Ingenjörerna som ansvarar för projektet heter initiativet MapReduce eftersom det kombinerar två funktioner från befintliga funktionella datorspråk: karta och minska .
Google-ingenjörer utformade MapReduce för att lösa ett specifikt praktiskt problem. Därför utformades den som en programmeringsmodell i kombination med genomförandet av den modellen - i huvudsak en referensimplementering.
Referensimplementationen användes för att visa konceptets praktiska och effektivitet och för att säkerställa att denna modell skulle vidtas allmänt av datorindustrin. Under åren har andra implementeringar av MapReduce skapats och finns tillgängliga som både öppen källkod och kommersiella produkter.