Sponsored Links
-->

Tuesday, December 5, 2017

Connecting devices to the Azure IOT Hub - ppt download
src: slideplayer.com

Apache Storm is a distributed stream processing computation framework written predominantly in the Clojure programming language. Originally created by Nathan Marz and team at BackType, the project was open sourced after being acquired by Twitter. It uses custom created "spouts" and "bolts" to define information sources and manipulations to allow batch, distributed processing of streaming data. The initial release was on 17 September 2011.

A Storm application is designed as a "topology" in the shape of a directed acyclic graph (DAG) with spouts and bolts acting as the graph vertices. Edges on the graph are named streams and direct data from one node to another. Together, the topology acts as a data transformation pipeline. At a superficial level the general topology structure is similar to a MapReduce job, with the main difference being that data is processed in real time as opposed to in individual batches. Additionally, Storm topologies run indefinitely until killed, while a MapReduce job DAG must eventually end.

Storm became an Apache Top-Level Project in September 2014 and was previously in incubation since September 2013.


Video Storm (event processor)



Development

Apache Storm is developed under the Apache License, making it available to most companies to use. Git is used for version control and Atlassian JIRA for issue tracking, under the Apache Incubator program.


Maps Storm (event processor)



Apache Storm Architecture

The Apache Storm cluster comprises following critical components:

  • Nodes- There are two types of nodes, i.e., Master Node and Worker Node. The Master Node executes a daemon Nimbus which assigns tasks to machines and monitors their performances. On the other hand, the Worker Node runs the daemon called Supervisor which assigns the tasks to other worker node and operates them as per the need. As Storm cannot monitor the state and health of cluster, it deploys ZooKeeper to solve this issue which connects Nimbus with the Supervisors.
  • Components- Storm has three critical components, viz., Topology, Stream, and Spout. Topology is a network made of Stream and Spout. Stream is an unbounded pipeline of tuples and Spout is the source of the data streams which converts the data into the tuple of streams and sends to the bolts to be processed.

Apache Beam: The Case for Unifying Streaming APIs
src: res.infoq.com


Peer platforms

Storm is but one of dozens of stream processing engines, for a more complete list see Stream processing. Twitter announced Heron on June 2, 2015 which is API compatible with Storm. There are other comparable streaming data engines such as Spark Streaming and Flink.


CEDIA 2016: Storm Audio Features New Immersive Sound Processor ...
src: i.ytimg.com


See also

  • C++ AMP
  • Data parallelism
  • Lambda architecture
  • Message passing
  • OpenMP
  • OpenCL
  • OpenHMPP
  • Parallel computing
  • TPL
  • Thread (computing)

Apache Beam: The Case for Unifying Streaming APIs
src: res.infoq.com


References


NiFi Site-to-Site Direct Streaming to Storm - Hortonworks
src: community.hortonworks.com


External links

  • Project Homepage
  • Storm's issue tracker
  • Storm Code Repository on Github
  • Storm is used to improve Twitter Search
  • Nathan Marz's Presentation on Storm: Distributed and Fault-Tolerant Real-time Computation
  • Storm Mailing List Archives
  • Petrel, a tool for creating Storm applications in Python
  • FsStorm, a lib for authoring Storm components and topologies in F#

Source of article : Wikipedia