what is the difference between spark, flink and storm. how to choose one of them or a particular use case ? can anyone give use case this components of hadoop.
Spark Vs Storm can be decided based on amount of branching you have in your pipeline. Storm can handle complex branching whereas it's very difficult to do so with Spark. Branching means if you have events/messages divided into streams of different types based on some criteria. This is made possible by the fact that Storm operates on a per event basis whereas Spark operates on batches. So if have branching or reason to operate on a per event basis Storm should be your choice.
If you have a linear pipeline, something like validate->transform->ingest then you can perform Apples to Apples comparison as in you can compare the micro-batching performance of Spark Vs. Storm Vs. Flink.
Additionally, decision should also consider
Storm operates on 1 tuple / event/ message at a time; Spark operates on batches of messages. Event is whatever the message in your use case is. Events can represent log messages, messages in Kafka etc.