parent
528b1f4920
commit
238af3b30d
|
|
@ -10,31 +10,31 @@ Apache Storm is a distributed computation framework written predominantly in the
|
||||||
|
|
||||||
## Running topologies in local mode
|
## Running topologies in local mode
|
||||||
|
|
||||||
Assuming you have `storm-starter-topologies-1.0.0.jar` in the current directory.
|
Assuming you have `topology.jar` in the current directory.
|
||||||
|
|
||||||
$ docker run -it -v $(pwd)/storm-starter-topologies-1.0.0.jar:/topology.jar storm:1.0 storm jar /topology.jar org.apache.storm.starter.ExclamationTopology
|
$ docker run -it -v $(pwd)/topology.jar:/topology.jar storm storm jar /topology.jar org.apache.storm.starter.ExclamationTopology
|
||||||
|
|
||||||
## Setting up a minimal Storm cluster
|
## Setting up a minimal Storm cluster
|
||||||
|
|
||||||
1. [Apache Zookeeper](https://zookeeper.apache.org/) is a must for running a Storm cluster. Start it first. Since the Zookeeper "fails fast" it's better to always restart it.
|
1. [Apache Zookeeper](https://zookeeper.apache.org/) is a must for running a Storm cluster. Start it first. Since the Zookeeper "fails fast" it's better to always restart it.
|
||||||
|
|
||||||
$ docker run -d --restart always --name some-zookeeper zookeeper:3.4
|
$ docker run -d --restart always --name some-zookeeper zookeeper
|
||||||
|
|
||||||
2. The Nimbus daemon has to be connected with the Zookeeper. It's also a "fail fast" system.
|
2. The Nimbus daemon has to be connected with the Zookeeper. It's also a "fail fast" system.
|
||||||
|
|
||||||
$ docker run -d --restart always --name some-nimbus --link some-zookeeper:zookeeper storm:1.0 storm nimbus
|
$ docker run -d --restart always --name some-nimbus --link some-zookeeper:zookeeper storm storm nimbus
|
||||||
|
|
||||||
3. Finally start a single Supervisor node. It will talk to the Nimbus and Zookeeper.
|
3. Finally start a single Supervisor node. It will talk to the Nimbus and Zookeeper.
|
||||||
|
|
||||||
$ docker run -d --restart always --name supervisor --link some-zookeeper:zookeeper --link some-nimbus:nimbus storm:1.0 storm supervisor
|
$ docker run -d --restart always --name supervisor --link some-zookeeper:zookeeper --link some-nimbus:nimbus storm storm supervisor
|
||||||
|
|
||||||
4. Now you can submit a topology to our cluster.
|
4. Now you can submit a topology to our cluster.
|
||||||
|
|
||||||
$ docker run --link some-nimbus:nimbus -it --rm -v $(pwd)/storm-starter-topologies-1.0.0.jar:/topology.jar storm:1.0 storm jar /topology.jar org.apache.storm.starter.WordCountTopology topology
|
$ docker run --link some-nimbus:nimbus -it --rm -v $(pwd)/topology.jar:/topology.jar storm storm jar /topology.jar org.apache.storm.starter.WordCountTopology topology
|
||||||
|
|
||||||
5. Optionally, you can start the Storm UI.
|
5. Optionally, you can start the Storm UI.
|
||||||
|
|
||||||
$ docker run -d -p 8080:8080 --restart always --name ui --link some-nimbus:nimbus storm:1.0 storm ui
|
$ docker run -d -p 8080:8080 --restart always --name ui --link some-nimbus:nimbus storm storm ui
|
||||||
|
|
||||||
## %%COMPOSE%%
|
## %%COMPOSE%%
|
||||||
|
|
||||||
|
|
@ -42,24 +42,24 @@ Run `docker-compose up` and wait for it to initialize completely. The Nimbus wil
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
This image uses [default configuration](https://github.com/apache/storm/blob/v1.0.0/conf/defaults.yaml) of the Apache Storm. There are two main ways to change it.
|
This image uses [default configuration](https://github.com/apache/storm/blob/v1.1.0/conf/defaults.yaml) of the Apache Storm. There are two main ways to change it.
|
||||||
|
|
||||||
1. Using command line arguments.
|
1. Using command line arguments.
|
||||||
|
|
||||||
$ docker run -d --restart always --name nimbus storm:1.0 storm nimbus -c storm.zookeeper.servers='["zookeeper"]'
|
$ docker run -d --restart always --name nimbus storm storm nimbus -c storm.zookeeper.servers='["zookeeper"]'
|
||||||
|
|
||||||
2. Assuming you have `storm.yaml` in the current directory you can mount it as a volume.
|
2. Assuming you have `storm.yaml` in the current directory you can mount it as a volume.
|
||||||
|
|
||||||
$ docker run -it -v $(pwd)/storm.yaml:/conf/storm.yaml storm:1.0 storm nimbus
|
$ docker run -it -v $(pwd)/storm.yaml:/conf/storm.yaml storm storm nimbus
|
||||||
|
|
||||||
## Logging
|
## Logging
|
||||||
|
|
||||||
This image uses [default logging configuration](https://github.com/apache/storm/tree/v1.0.0/log4j2). All logs go to the `/logs` directory by default.
|
This image uses [default logging configuration](https://github.com/apache/storm/tree/v1.1.0/log4j2). All logs go to the `/logs` directory by default.
|
||||||
|
|
||||||
## Data persistence
|
## Data persistence
|
||||||
|
|
||||||
No data are persisted by default. For convenience there are `/data` and `/logs` directories in the image owned by `storm` user. Use them accordingly to persist data and logs using volumes.
|
No data are persisted by default. For convenience there are `/data` and `/logs` directories in the image owned by `storm` user. Use them accordingly to persist data and logs using volumes.
|
||||||
|
|
||||||
$ docker run -it -v /logs -v /data storm:1.0 storm nimbus
|
$ docker run -it -v /logs -v /data storm storm nimbus
|
||||||
|
|
||||||
*Please be noticed that using paths other than those predefined is likely to cause permission denied errors. It's because for [security reasons](https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/#user) the Storm is running under the non-root `storm` user.*
|
*Please be noticed that using paths other than those predefined is likely to cause permission denied errors. It's because for [security reasons](https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/#user) the Storm is running under the non-root `storm` user.*
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,12 @@
|
||||||
version: '2'
|
version: '2'
|
||||||
services:
|
services:
|
||||||
zookeeper:
|
zookeeper:
|
||||||
image: zookeeper:3.4
|
image: zookeeper
|
||||||
container_name: zookeeper
|
container_name: zookeeper
|
||||||
restart: always
|
restart: always
|
||||||
|
|
||||||
nimbus:
|
nimbus:
|
||||||
image: storm:1.0
|
image: storm
|
||||||
container_name: nimbus
|
container_name: nimbus
|
||||||
command: storm nimbus
|
command: storm nimbus
|
||||||
depends_on:
|
depends_on:
|
||||||
|
|
@ -18,7 +18,7 @@ services:
|
||||||
- 6627:6627
|
- 6627:6627
|
||||||
|
|
||||||
supervisor:
|
supervisor:
|
||||||
image: storm:1.0
|
image: storm
|
||||||
container_name: supervisor
|
container_name: supervisor
|
||||||
command: storm supervisor
|
command: storm supervisor
|
||||||
depends_on:
|
depends_on:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue