blob: e3d96665066aa75624a07edbe5e297f91b609660 [file] [log] [blame] [view]
---
title: Local Mode
layout: documentation
documentation: true
---
Local mode simulates a Storm cluster in process and is useful for developing and testing topologies. Running topologies in local mode is similar to running topologies [on a cluster](Running-topologies-on-a-production-cluster.html).
To create an in-process cluster, simply use the `LocalCluster` class. For example:
```java
import org.apache.storm.LocalCluster;
LocalCluster cluster = new LocalCluster();
```
You can then submit topologies using the `submitTopology` method on the `LocalCluster` object. Just like the corresponding method on [StormSubmitter](javadocs/org/apache/storm/StormSubmitter.html), `submitTopology` takes a name, a topology configuration, and the topology object. You can then kill a topology using the `killTopology` method which takes the topology name as an argument.
To shutdown a local cluster, simple call:
```java
cluster.shutdown();
```
### Common configurations for local mode
You can see a full list of configurations [here](javadocs/org/apache/storm/Config.html).
1. **Config.TOPOLOGY_MAX_TASK_PARALLELISM**: This config puts a ceiling on the number of threads spawned for a single component. Oftentimes production topologies have a lot of parallelism (hundreds of threads) which places unreasonable load when trying to test the topology in local mode. This config lets you easy control that parallelism.
2. **Config.TOPOLOGY_DEBUG**: When this is set to true, Storm will log a message every time a tuple is emitted from any spout or bolt. This is extremely useful for debugging.