Programmering

Fem ting, du har brug for at vide om Hadoop v. Apache Spark

Lyt ind i enhver samtale om big data, og du vil sandsynligvis høre omtale af Hadoop eller Apache Spark. Her er et kort kig på, hvad de gør, og hvordan de sammenligner.

1: De gør forskellige ting. Hadoop og Apache Spark er begge big-data-rammer, men de tjener ikke rigtig de samme formål. Hadoop er i det væsentlige en distribueret datainfrastruktur: Den distribuerer massiv datasamling på tværs af flere noder i en klynge af handelsservere, hvilket betyder, at du ikke behøver at købe og vedligeholde dyr brugerdefineret hardware. Det indekserer og holder styr på disse data, hvilket muliggør behandling af store data og analyser langt mere effektivt, end det var muligt tidligere. Spark er derimod et databehandlingsværktøj, der fungerer på de distribuerede datasamlinger; det gør ikke distribueret lager.

2: Du kan bruge den ene uden den anden. Hadoop inkluderer ikke kun en lagringskomponent, kendt som Hadoop Distribueret filsystem, men også en behandlingskomponent kaldet MapReduce, så du ikke har brug for Spark for at få din behandling færdig. Omvendt kan du også bruge Spark uden Hadoop. Spark kommer dog ikke med sit eget filhåndteringssystem, så det skal integreres med et - hvis ikke HDFS, så er det en anden skybaseret dataplatform. Spark blev designet til Hadoop, men så mange er enige om, at de er bedre sammen.

3: Gnist er hurtigere. Spark er generelt meget hurtigere end MapReduce på grund af den måde, det behandler data på. Mens MapReduce fungerer i trin, fungerer Spark på hele datasættet i én omgang. "MapReduce-arbejdsgangen ser sådan ud: læs data fra klyngen, udfør en operation, skriv resultater til klyngen, læs opdaterede data fra klyngen, udfør næste operation, skriv næste resultater til klyngen osv.", Forklarede Kirk Borne, primær data videnskabsmand hos Booz Allen Hamilton. På den anden side fuldfører Spark de fulde dataanalyser i hukommelsen og i næsten realtid: "Læs data fra klyngen, udfør alle de nødvendige analytiske operationer, skriv resultater til klyngen, færdig," sagde Borne. Gnist kan være så meget som 10 gange hurtigere end MapReduce til batchbehandling og op til 100 gange hurtigere til in-memory-analyse, sagde han.

4: Du har muligvis ikke brug for Sparks hastighed. MapReduce's behandlingsstil kan være fint, hvis dine datafunktioner og rapporteringskrav for det meste er statiske, og du kan vente på batch-mode-behandling. Men hvis du har brug for at foretage analyse på streaming af data, som fra sensorer på en fabriksgulv, eller har applikationer, der kræver flere operationer, vil du sandsynligvis gå med Spark. De fleste maskinindlæringsalgoritmer kræver f.eks. Flere operationer. Almindelige applikationer til Spark inkluderer markedsføringskampagner i realtid, online produktanbefalinger, cybersikkerhedsanalyse og maskinlogovervågning.

5: Fejlgendring: anderledes, men stadig god. Hadoop er naturligvis modstandsdygtig over for systemfejl eller fejl, da data skrives til disken efter hver operation, men Spark har lignende indbygget fleksibilitet i kraft af det faktum, at dens dataobjekter er gemt i noget, der kaldes elastisk distribuerede datasæt fordelt på tværs af dataklyngen. "Disse dataobjekter kan gemmes i hukommelsen eller på diske, og RDD giver fuld gendannelse fra fejl eller fejl," påpegede Borne.