Apache Spark vs. Apache Storm

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