Spark is referred to as the distributed processing for all whilst Storm is generally referred to as Hadoop of real time processing. Storm and Spark are designed such that they can operate in a Hadoop cluster and access Hadoop storage. The key difference between Spark and Storm is that Storm performs task parallel computations whereas Spark performs data parallel computations. Both Storm and Spark are open source, distributed, fault tolerant and scalable real time computing systems for executing stream processing code through parallel tasks distributed across a Hadoop cluster of computing systems with fail over functionalities.
Apache Spark focuses on speeding the processing of batch analysis jobs, graph processing, iterative machine learning jobs and interactive query through its in-memory distributed data analytics platform. Spark uses Resilient Distributed data sets for queuing parallel operators for computation which are immutable, which provides Spark with a distinct kind of fault tolerance depending on lineage information. Spark can be of great choice if the Big Data application requires processing a Hadoop MapReduce Job faster.
Storm focuses on complex event processing by implementing a fault tolerant method to pipeline different computations on an event as and when they flow into the system. Storm can be of great choice where the application requires unstructured data to be transformed into a desired format as it flows into the system.
Apache Spark is being used is production at Amazon, eBay, Alibaba, Shopify and Storm is used by various companies like Twitter, The Weather Channel, Yahoo, Yelp, Flipboard.
For the complete list of big data companies and their salaries- CLICK HERE
The below table summarizes the key differences between the two-
Read More on - Spark vs Storm