Apache Spark vs. Apache Storm
Tarpeet reaaliaikaiselle datan suoratoistolle kasvavat räjähdysmäisesti reaaliaikaisen datan lisääntymisen vuoksi. Koska suoratoistotekniikat johtavat Big Data -maailmaa, käyttäjille voi olla vaikeaa valita sopiva reaaliaikainen suoratoistoalusta. Kaksi suosituinta reaaliaikaista teknologiaa, joiden valintaa voisi harkita, ovat Apache Spark ja Apache Storm.
Yksi tärkeimmistä keskeisistä eroista Spark- ja Storm-kehysten välillä on se, että Spark suorittaa data-rinnakkaislaskentaa, kun taas Storm harjoittaa tehtävä-rinnakkaislaskentaa
Apache Spark
Apache Spark on yleiskäyttöinen, valaistusnopea klusteri-laskentateknologiakehys, jota käytetään nopeaan laskentaan suuren mittakaavan datan käsittelyssä. Sillä voidaan hallita sekä erä- että reaaliaikaisia analyysi- ja tietojenkäsittelytyökuormia.
Apache Storm
Apache Storm on avoimen lähdekoodin, skaalautuva vikasietoinen ja reaaliaikainen stream-prosessoinnin laskentajärjestelmä. Se on reaaliaikaiseen hajautettuun tietojenkäsittelyyn tarkoitettu kehys, joka keskittyy virtakäsittelyyn tai tapahtumankäsittelyyn. Sitä voidaan käyttää millä tahansa ohjelmointikielellä, ja siihen voidaan integroida mikä tahansa jonotus- tai tietokantatekniikka.
Differences Between Spark and Storm
- Processing Model: Apache spark tarjoaa eräkäsittelyä, kun taas Storm tarjoaa mikroeräkäsittelyä
- Ohjelmointikieli: Apache spark tukee vähemmän kieliä, kuten Java, Scala, kun taas Storm toisaalta tukee useita kieliä, kuten Scala, Java, Clojure.
- Stream Sources: Apache käytti HDFS:ää, kun taas Apache Storm käyttää spoutia.
- Viestinvälitys: Apache apark käyttää Akka, Netty kun taas Apache storm käyttää ZeroMQ, Netty
- Resurssien hallinta: Apache sparkista vastaavat Yarn ja Meson, kun taas Apache stormista vastaavat Yarn ja Mesos.
- Viive: Apache Storm tarjoaa paremman alhaisen latenssin pienemmillä rajoituksilla
- Stream Primitives: Apache spark käyttää DStreamia, kun taas Apache Storm käyttää Tuplea, Partitionia
- Kehityskustannukset: Apache spark käyttää samaa koodia erä- ja virtakäsittelyyn, kun taas Apache Stormissa samaa koodia ei voida käyttää.
- Pysyvyys: Apache spark käyttää per RDD kun taas Apache storm käyttää MapState
- Vikasietoisuus: Apache sparkissa se hoitaa työntekijöiden uudelleenkäynnistyksen resurssienhallinnan kautta, joka voi olla YARN, Mesos tai sen itsenäinen johtaja, kun taas Apache stormissa jos prosessi epäonnistuu, supervisor-prosessi käynnistää sen automaattisesti uudelleen, koska tilanhallinta hoidetaan zookeeperin kautta
- Provisioning: Apache spark tukee perusvalvontaa Ganglian avulla, kun taas Apache storm käyttää Apache Ambaria
- Läpäisykyky: Apache spark palvelee 100k tietueita solmua kohti sekunnissa, kun taas Apache storm palvelee 10k tietueita solmua kohti sekunnissa
- Tilanhallinta: Muuttuva ja ylläpidettävä tila Apache Sparkissa voidaan päivittää UpdateStateByKey:n kautta, mutta ulkoisessa järjestelmässä ei voida soveltaa pluggable-strategiaa tilan toteuttamiseen. Kun taas Storm ei tarjoa mitään kehystä minkään väliin tulevan pultin ulostulon tallentamiseen tilana. Näin ollen jokaisen sovelluksen on luotava itselleen tila aina tarvittaessa.
- Erikoisuus: Apache Spark käyttää yhtenäistä käsittelyä (eräkäsittely, SQL jne.), kun taas Apache Storm käyttää hajautettua RPC:tä
Apache Storm ja Apache Spark ovat loistavia ratkaisuja, jotka ratkaisevat streaming-ingestion ja -muuntamisen ongelman.
Lue lisää… http://entradasoft.com/blogs/apache-spark-vs-apache-storm