Storm storm and spark streaming are all Distributed Open source framework for streaming processing. The difference is as follows:
1. Processing delay and throughput
Storm deals with one event per pass, and the spark streaming is handling the flow of events within a window of time, and storm processing an event can reach a delay of seconds, while spark streaming has a delay of several seconds. As a result, Spark streaming is longer than Storm's, but throughput is larger than storm.
2, fault-tolerant, data assurance
Spark Streaming provides better support for State computing in terms of fault tolerance. in Storm , any single record must be traceable to the system, so Storm only guarantees that all records will be processed at least once, but duplicate records are allowed to recover from the error. This means that the mutable state may have been incorrectly updated two times.
3. Supported APIs
Storm (developed by the closure language) supports Java programming, and Spark supports Scala programming, as well as Java development.
Summary: If you need a delay in seconds, Storm is a good choice and there is no data loss. Spark Streaming is better if you need a stateful calculation and are fully guaranteed that each event is processed only once. Spark Streaming programming logic can also be easier because it resembles a batch program (HADOOP), especially if you are using batches (albeit very small).
See also:
Http://www.uml.org.cn/sjjm/201408282.asp
The difference between Spark srreaming and Storm