Apache Spark vs Apache Storm

apache spark vs apache storm

Potřeba streamování dat v reálném čase exponenciálně roste v důsledku nárůstu dat v reálném čase. Vzhledem k tomu, že ve světě velkých dat vedou streamovací technologie, může být pro uživatele obtížné vybrat vhodnou platformu pro streamování dat v reálném čase. Dvě z nejoblíbenějších technologií reálného času, jejichž výběr by se mohl zvážit, jsou Apache Spark a Apache Storm.

Jedním z hlavních klíčových rozdílů mezi frameworky Spark a Storm je, že Spark provádí Data-Parallel výpočty, zatímco Storm zabírá Task-Parallel výpočty

Apache Spark

Apache Spark je univerzální, světelně rychlý, clusterový výpočetní technologický framework, který se používá pro rychlé výpočty při zpracování rozsáhlých dat. Zvládá dávkové analýzy i zpracování dat v reálném čase.

Apache Storm

Apache Storm je open-source, škálovatelný výpočetní systém pro proudové zpracování dat v reálném čase, odolný proti chybám. Jedná se o framework pro distribuované zpracování dat v reálném čase, který se zaměřuje na proudové zpracování nebo zpracování událostí. Lze jej používat s libovolným programovacím jazykem a lze jej integrovat pomocí libovolné frontové nebo databázové technologie.

Rozdíl mezi Sparkem a Stormem

  • Model zpracování: Apache spark poskytuje dávkové zpracování, zatímco storm poskytuje mikrodávkové zpracování
  • Programovací jazyk:
  • Zdroje proudu: Apache spark podporuje méně jazyků, jako je Java, Scala, zatímco storm na druhé straně podporuje více jazyků, jako je Scala, Java, Clojure:
  • Zprávy: Apache používá HDFS, zatímco Apache Storm používá spout: Apache apark používá Akka, Netty, zatímco Apache storm používá ZeroMQ, Netty
  • Správa zdrojů:
  • Latence: Pro Apache spark jsou zodpovědné Yarn a Meson, zatímco pro Apache storm Yarn a Mesos.
  • Latence: Pro Apache spark jsou zodpovědné Yarn a Meson, zatímco pro Apache storm Yarn a Mesos: V porovnání s Apache Spark je latence vyšší, zatímco Apache storm poskytuje lepší nízkou latenci s menšími omezeními
  • Primitiva proudu: Apache spark používá DStream, zatímco Apache Storm používá Tuple, Partition
  • Náklady na vývoj:
  • Perzistence: Apache spark používá stejný kód pro dávkové i proudové zpracování, zatímco v Apache storm stejný kód použít nelze
  • : Apache spark používá per RDD, zatímco Apache storm používá MapState
  • Odolnost proti chybám: V Apache spark řeší restartování pracovníků prostřednictvím správce zdrojů, kterým může být YARN, Mesos nebo jeho samostatný správce, zatímco v Apache storm v případě selhání procesu jej automaticky restartuje nadřízený proces, protože správa stavu je řešena prostřednictvím zookeeperu
  • Provisioning: Apache spark podporuje základní monitorování pomocí Ganglia, zatímco Apache storm používá Apache Ambari
  • Propustnost:
  • Správa stavu: Apache spark obsluhuje 100 tisíc záznamů na uzel za sekundu, zatímco Apache storm obsluhuje 10 tisíc záznamů na uzel za sekundu
  • : Změnu a udržování stavu v Apache Spark lze aktualizovat pomocí UpdateStateByKey, ale v externím systému nelze použít žádnou zásuvnou strategii pro implementaci stavu. Zatímco Storm neposkytuje žádný rámec pro ukládání jakéhokoli intervenčního výstupu šroubu jako stavu. Proto si každá aplikace musí vytvořit stav sama pro sebe, kdykoli je to potřeba.
  • Specialita: Apache spark používá unifikované zpracování (dávkové, SQL atd.), zatímco Apache storm používá distribuované RPC

Apache Storm a Apache Spark jsou skvělá řešení, která řeší problém s příjmem a transformací datových toků.

Přečtěte si více… http://entradasoft.com/blogs/apache-spark-vs-apache-storm

Více…