Apache Spark vs Apache Storm

apache spark vs apache storm

Behovet av dataströmning i realtid ökar exponentiellt på grund av ökningen av data i realtid. Med strömmande teknik som leder Big Data-världen kan det vara svårt för användarna att välja lämplig plattform för streaming i realtid. Två av de mest populära realtidsteknikerna som man kan överväga att välja är Apache Spark och Apache Storm.

En av de viktigaste skillnaderna mellan ramverken Spark och Storm är att Spark utför data-parallella beräkningar, medan Storm utför uppgifts-parallella beräkningar.

Apache Spark

Apache Spark är ett allmängiltigt, ljusstarkt ramverk för klusterdatorer, som används för snabba beräkningar vid storskalig databehandling. Det kan hantera både batch- och realtidsanalyser och arbetsbelastningar för databehandling.

Apache Storm

Apache Storm är ett skalbart, feltolerant och realtidsströmbehandlingsberäkningssystem med öppen källkod. Det är ett ramverk för distribuerad databehandling i realtid som fokuserar på strömbearbetning eller händelsebearbetning. Det kan användas med vilket programmeringsspråk som helst och kan integreras med hjälp av vilken kö- eller databasteknik som helst.

Skillnader mellan Spark och Storm

  • Behandlingsmodell: Apache spark tillhandahåller batchbehandling medan storm tillhandahåller micro batchbehandling
  • Programmeringsspråk: Apache spark stöder mindre språk som Java, Scala medan storm å andra sidan stöder flera språk som Scala, Java, Clojure.
  • Strömkällor: Apache spark stöder flera språk som Scala, Java, Clojure.
  • Strömkällor: Apache spark stöder flera språk som Scala, Java, Clojure: Apache använde HDFS medan Apache Storm använder spout.
  • Meddelandehantering: Apache använder HDFS medan Apache Storm använder spout.
  • Meddelandehantering: Apache använder HDFS: Apache apark använder Akka, Netty medan Apache storm använder ZeroMQ, Netty
  • Resurshantering: Apache apark använder Akka, Netty medan Apache storm använder ZeroMQ, Netty
  • Resurshantering: För Apache spark ansvarar Yarn och Meson medan för Apache storm ansvarar Yarn och Mesos.
  • Latency: Apache Storm ger bättre låg latenstid med mindre begränsningar
  • Stream Primitives: Högre latenstid jämfört med Apache Spark medan Apache Storm ger bättre låg latenstid med mindre begränsningar
  • Stream Primitives: Strömningsprimitiv: Apache Spark använder DStream medan Apache Storm använder Tuple, Partition
  • Utvecklingskostnader: Apache spark använder samma kod för batch- och strömbehandling medan Apache Storm inte kan använda samma kod.
  • Persistens: Apache spark använder samma kod för batch- och strömbehandling medan Apache Storm inte kan använda samma kod.
  • Persistens: Apache spark använder per RDD medan Apache storm använder MapState
  • Feltolerans: Apache spark använder per RDD medan Apache storm använder MapState
  • Feltolerans: I Apache spark hanteras omstart av arbetare via resurshanteraren som kan vara YARN, Mesos eller dess fristående manager medan i Apache storm om processen misslyckas kommer den övervakande processen att starta om den automatiskt eftersom tillståndshanteringen hanteras via zookeeper
  • Tillhandahållande: Om processen misslyckas kommer den övervakande processen att starta om den automatiskt eftersom tillståndshanteringen hanteras via zookeeper
  • : Apache spark stöder grundläggande övervakning med Ganglia medan Apache storm använder Apache Ambari
  • Genomströmning: Apache spark serverar 100 000 poster per nod och sekund medan Apache storm serverar 10 000 poster per nod och sekund.
  • Tillståndshantering: Apache spark hanterar tillståndshantering: Det går att ändra och bibehålla tillståndet i Apache Spark via UpdateStateByKey, men det går inte att tillämpa någon pluggbar strategi i det externa systemet för genomförande av tillståndet. Storm tillhandahåller däremot ingen ram för lagring av en eventuell mellanliggande bultutgång som ett tillstånd. Därför måste varje program skapa ett tillstånd för sig själv närhelst det behövs.
  • Specialitet: Apache Spark använder enhetlig behandling (batch, SQL etc.) medan Apache Storm använder distribuerad RPC

Apache Storm och Apache Spark är bra lösningar som löser problemet med streaming-intag och transformation.

Läs mer… http://entradasoft.com/blogs/apache-spark-vs-apache-storm