Databases Reference
In-Depth Information
nodes run a daemon called Supervisor , which executes a portion of a topology. A top-
ology in Storm runs across many worker nodes on different machines.
Since Storm keeps all cluster states either in Zookeeper or on local disk, the daemons
are stateless and can fail or restart without affecting the health of the system (see
Figure 1-2 ).
Figure 1-2. Components of a Storm cluster
Underneath, Storm makes use of zeromq (0mq, zeromq ) , an advanced, embeddable
networking library that provides wonderful features that make Storm possible. Let's
list some characteristics of zeromq:
• Socket library that acts as a concurrency framework
• Faster than TCP, for clustered products and supercomputing
• Carries messages across inproc, IPC, TCP, and multicast
• Asynch I/O for scalable multicore message-passing apps
• Connect N-to-N via fanout, pubsub, pipeline, request-reply
Storm uses only push/pull sockets.
The Properties of Storm
Within all these design concepts and decisions, there are some really nice properties
that make Storm unique.
Simple to program
If you've ever tried doing real-time processing from scratch, you'll understand how
painful it can become. With Storm, complexity is dramatically reduced.
Support for multiple programming languages
It's easier to develop in a JVM-based language, but Storm supports any language
as long as you use or implement a small intermediary library.
Fault-tolerant
The Storm cluster takes care of workers going down, reassigning tasks when
necessary.
 
Search WWH ::




Custom Search