Programmering

Fem ting du trenger å vite om Hadoop v. Apache Spark

Hør på alle samtaler om big data, og du vil sannsynligvis høre omtale av Hadoop eller Apache Spark. Her er en kort titt på hva de gjør og hvordan de sammenligner.

1: De gjør forskjellige ting. Hadoop og Apache Spark er begge store datarammer, men de tjener egentlig ikke de samme formålene. Hadoop er egentlig en distribuert datainfrastruktur: Den distribuerer enorme datasamlinger på tvers av flere noder i en klynge av vareservere, noe som betyr at du ikke trenger å kjøpe og vedlikeholde dyr tilpasset maskinvare. Den indekserer og holder rede på disse dataene, noe som muliggjør behandling av store data og analyse langt mer effektivt enn det som var mulig tidligere. Spark, derimot, er et databehandlingsverktøy som opererer på de distribuerte datasamlingene; det gjør ikke distribuert lagring.

2: Du kan bruke den ene uten den andre. Hadoop inkluderer ikke bare en lagringskomponent, kjent som Hadoop Distribuert Filsystem, men også en behandlingskomponent kalt MapReduce, slik at du ikke trenger Spark for å få behandlingen gjort. Omvendt kan du også bruke Spark uten Hadoop. Spark kommer imidlertid ikke med sitt eget filhåndteringssystem, så det må integreres med ett - hvis ikke HDFS, så en annen skybasert dataplattform. Spark ble designet for Hadoop, men så mange er enige om at de er bedre sammen.

3: Gnisten er raskere. Spark er vanligvis mye raskere enn MapReduce på grunn av måten den behandler data på. Mens MapReduce opererer i trinn, opererer Spark hele datasettet i ett slag. "MapReduce-arbeidsflyten ser slik ut: les data fra klyngen, utfør en operasjon, skriv resultater til klyngen, les oppdaterte data fra klyngen, utfør neste operasjon, skriv neste resultater til klyngen, etc.," forklarte Kirk Borne, viktigste datavitenskapsmann i Booz Allen Hamilton. Spark fullfører derimot hele dataanalyseoperasjonen i minnet og i nærmest sanntid: "Les data fra klyngen, utfør alle nødvendige analytiske operasjoner, skriv resultater til klyngen, ferdig," sa Borne. Gnist kan være så mye som 10 ganger raskere enn MapReduce for batchbehandling og opptil 100 ganger raskere for analyse i minnet, sa han.

4: Du trenger kanskje ikke Sparks hastighet. MapReduce's behandlingsstil kan være helt bra hvis dataoperasjonene og rapporteringskravene for det meste er statiske, og du kan vente på behandling i batch-modus. Men hvis du trenger å gjøre analyse på strømmedata, for eksempel fra sensorer på fabrikkgulvet, eller har applikasjoner som krever flere operasjoner, vil du sannsynligvis gå med Spark. De fleste maskinlæringsalgoritmer krever for eksempel flere operasjoner. Vanlige applikasjoner for Spark inkluderer markedsføringskampanjer i sanntid, online produktanbefalinger, cybersecurity-analyse og maskinloggovervåking.

5: Feilgjenoppretting: annerledes, men fortsatt bra. Hadoop er naturlig motstandsdyktig mot systemfeil eller feil siden data skrives til disken etter hver operasjon, men Spark har lignende innebygd elastisitet i kraft av at dataobjektene lagres i noe som kalles elastisk distribuerte datasett distribuert over dataklyngen. "Disse dataobjektene kan lagres i minnet eller på disker, og RDD gir full gjenoppretting fra feil eller feil," påpekte Borne.

$config[zx-auto] not found$config[zx-overlay] not found