Creating your first topology
Now, we'll create a Storm topology that breaks sentences into words and then counts the number of occurrences of each word. Implementing this topology in Storm requires the following components:
Sentence spout (
randomsentence.py
): A topology always begins with a spout; that's how data gets into Storm. The sentence spout will emit an infinite stream of sentences.Splitter bolt (
splitsentence.py
): This receives sentences and splits them into words.Word count bolt (
wordcount.py
): This receives words and counts the occurrences. For each word processed, output the word along with the number of occurrences.
The following figure shows how data flows through the topology:
Now that we've seen the basic data flow, let's implement the topology and see how it works.
Sentence spout
In this section, we implement a spout that generates random sentences. Enter this code in a file called randomsentence.py
:
import time import random from petrel import storm from petrel...