3
3
Hortonworks (HDP 2.1.3) Apache Storm is a free and open source distributed
4
realtime computation system. Storm makes it easy to reliably process unbounded
5
streams of data, doing for realtime processing what Hadoop did for batch processing
7
Storm has many use cases: realtime analytics, online machine learning, continuous
4
real-time computation system. Storm makes it easy to reliably process unbounded
5
streams of data, doing for real-time processing what Hadoop did for batch processing
6
Storm has many use cases: real-time analytics, on-line machine learning, continuous
8
7
computation, distributed RPC, ETL, and more. Storm is fast: a benchmark clocked
9
8
it at over a million tuples processed per second per node. It is scalable,
10
9
fault-tolerant, guarantees your data will be processed, and is easy to set up
13
This charm will build a storm cluster consistant of:
14
1) Nimbus master node with following daemons will configured and loaded:
19
2) Storm worker node(s) with following daemons will configured and loaded:
24
start a 3 node Hortonworks zookeeper quorum:
25
juju deploy hdp-zookeeper hdp-zookeeper
26
juju add-unit -n 2 hdp-zookeeper
28
NOTE: Zookeeper must be loaded and active, to verify:
29
$ echo ruok | nc {hdp-zookeeper/0 IP address} 2181
30
imok # I'm ok must be the reply
31
$ echo stat | nc {hdp-zookeeper/0 IP address} 2181
32
Node count: 4 # check for node count
34
juju deploy hdp-storm nimbus-server
35
juju deploy hdp-storm storm-worker
36
juju add-relation nimbus-server:zookeeper hdp-zookeeper:zookeeper
37
juju add-relation storm-worker:zookeeper hdp-zookeeper:zookeeper
38
juju add-relation nimbus-server:nimbus storm-worker:slave
40
To varify a successful deployment:
41
http://{nimbus-server ip address}:8080
45
Example, adding 5 more worker nodes
46
juju add-unit -n 5 storm-worker
48
To varify a successful scale:
49
http://{nimbus-server ip address}:8080
11
This charm will build a storm cluster consistent of:
12
1. Nimbus master node with following daemons will configured and loaded
19
1. Storm worker node(s) with following daemons will configured and loaded:
26
**start a 3 node Hortonworks zookeeper quorum:**
28
juju deploy hdp-zookeeper hdp-zookeeper
29
juju add-unit -n 2 hdp-zookeeper
31
NOTE: Zookeeper must be loaded and active, to verify:
33
$echo ruok | nc {hdp-zookeeper/0 IP address} 2181
35
imok # I'm ok must be the reply
37
$ echo stat | nc {hdp-zookeeper/0 IP address} 2181
39
Node count: 4 # check for node count
41
**start Apache Storm:**
43
juju deploy hdp-storm nimbus-server
44
juju deploy hdp-storm storm-worker
45
juju add-relation nimbus-server:zookeeper hdp-zookeeper:zookeeper
46
juju add-relation storm-worker:zookeeper hdp-zookeeper:zookeeper
47
juju add-relation nimbus-server:nimbus storm-worker:slave
49
**To verify a successful deployment:**
51
http://{nimbus-server ip address}:8080
52
54
Sample use-case - Deploying and Managing Apache Storm Topologies:
53
55
Use the command-line interface to deploy a Storm topology after packaging it in
54
56
a jar. For example, use the following command to deploy WordCount Topology from
55
57
the storm-starter. WordCount Spout randomly generates data
56
streams that get processed by wordCount Bolts.
58
1) juju ssh nimbus-server/0
59
2) storm jar /usr/lib/storm/contrib/storm-starter/storm-starter-0.9.1.2.1.3.0-563-jar-with-dependencies.jar storm.starter.WordCountTopology WordCount
60
Note: #2 will deploy the topology (Storm application) into cluster
61
3) verify "Topology summary" : http://{nimbus-server ip address}:8080
62
4) under "Topology summary", click on "WordCount"
63
5) notice Spouts & Bolts tasks
58
streams that get processed by wordCount Bolts.
60
- $juju ssh nimbus-server/0
61
- $storm jar /usr/lib/storm/contrib/storm-starter/storm-starter-0.9.1.2.1.3.0-563-jar-with-dependencies.ja storm.starter.WordCountTopology WordCount
62
- Note: #2 will deploy the topology (Storm application) into cluster
63
- Verify "Topology summary" : http://{nimbus-server ip address}:8080
64
- Under "Topology summary", click on "WordCount"
65
- Monitor Spouts & Bolts tasks
65
68
Example, adding 5 more worker nodes
66
1) juju add-unit -n 5 storm-worker
67
To verify a successful scale:
68
2) http://{nimbus-server ip address}:8080
69
3) under "Topology summary", click on "WordCount"
70
4) Click on "Spout" link in "Spouts (All time)" section
71
5) Note "Host" list under "Executors (All time)" section
72
6) Go back to "Topology summary"
73
7) Click on "Rebalance" in "Topology actions" section
74
8) Click on "Spout" link in "Spouts (All time)" section
75
9) refresh, notice rebalancing of job as more storm-worker threads become available
76
## Known Limitations and Issues
70
juju add-unit -n 5 storm-worker
73
To verify a successful scale:
75
- http://{nimbus-server ip address}:8080
76
- Under "Topology summary", click on "WordCount"
77
- Click on "Spout" link in "Spouts (All time)" section
78
- Note "Host" list under "Executors (All time)" section
79
- Go back to "Topology summary"
80
- Click on "Rebalance" in "Topology actions" section
81
- Click on "Spout" link in "Spouts (All time)" section
82
- Refresh, notice re-balancing of job as more storm-worker threads become available
80
84
# Contact Information
81
amir sanjar <amir.sanjar@canonical.com>
83
## Upstream Project Name
85
- Upstream website: http://hortonworks.com/
86
- Upstream bug tracker https://storm.incubator.apache.org/
85
Amir Sanjar <amir.sanjar@canonical.com>
87
## Apache & Hortonworks Storm
89
- [Hortonworks website](http://hortonworks.com)
90
- [Hortonworks Storm documentation](http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.1.3/bk_installing_manually_book/content/ch_rpm_storm.html)
91
- [Apache Storm upstream bug tracker](https://storm.incubator.apache.org)
92
- [Apache Storm documentation](https://storm.incubator.apache.org/documentation/Home.html)