| --- |
| date: 2016-02-28T13:10:21-08:00 |
| title: Getting Started - Local (Single Node) |
| --- |
| |
| Run topologies locally using pre-compiled Heron binaries (Mac OSX, Ubuntu >= 14.04, Centos7) |
| |
| ### Step 1 - Download pre-compiled Heron binaries with install scripts |
| |
| Navigate to [Twitter Heron Releases](https://github.com/twitter/heron/releases) and |
| download the following self extracting binary install scripts for your platform. |
| |
| * heron-client-install |
| * heron-tools-install |
| |
| For example, if you want to download for Mac OSX (darwin), the |
| corresponding binaries will be |
| |
| * heron-client-install-\<version\>-darwin.sh |
| * heron-tools-install-\<version\>-darwin.sh |
| |
| where \<version\> is the desired heron version. |
| |
| Run the download self installing binary for heron client as follows |
| ```bash |
| $ chmod +x heron-client-install-0.13.2-darwin.sh |
| $ ./heron-client-install-0.13.2-darwin.sh --user |
| Uncompressing...... |
| Heron is now installed! |
| Make sure you have "/Users/$USER/bin" in your path. |
| ``` |
| |
| Run the download self installing binary for heron tools as follows |
| ```bash |
| $ chmod +x heron-tools-install-0.13.2-darwin.sh |
| $ ./heron-tools-install-0.13.2-darwin.sh --user |
| Uncompressing...... |
| Heron Tools is now installed! |
| Make sure you have "/Users/$USER/bin" in your path. |
| ``` |
| |
| ### Step 2 - Launch an example topology |
| |
| Launch an example [topology](../concepts/topologies) on **local cluster** using submit: |
| |
| ```bash |
| $ heron submit local ~/.heron/examples/heron-examples.jar com.twitter.heron.examples.ExclamationTopology ExclamationTopology |
| ``` |
| |
| ### Step 3 - Start Heron Tracker |
| |
| Open a new terminal window and launch [heron-tracker](../operators/heron-tracker): |
| ```bash |
| $ heron-tracker |
| ... Running on port: 8888 |
| ... Using config file: /Users/USERNAME/.herontools/conf/localfilestateconf.yaml |
| ``` |
| In local browser, Heron tracker can be reached at http://localhost:8888 |
| |
| |
| ### Step 4 - Start Heron UI |
| |
| Open a new terminal window and launch UI: |
| ```bash |
| $ heron-ui |
| ... Running on port: 8889 |
| ... Using tracker url: http://localhost:8888 |
| ``` |
| In local browser, Heron UI is available at http://localhost:8889 |
| |
| ### Step 5 - Explore activate, deactivate, and kill topology commands |
| |
| ```bash |
| $ heron activate local ExclamationTopology |
| $ heron deactivate local ExclamationTopology |
| $ heron kill local ExclamationTopology |
| ``` |
| Explore the [Heron CLI](../operators/heron-cli) |
| and the [topology lifecycle](../concepts/topologies#topology-lifecycle). To list the available CLI commands: |
| ```bash |
| usage: heron <command> <options> ... |
| |
| Available commands: |
| activate Activate a topology |
| deactivate Deactivate a topology |
| help Prints help for commands |
| kill Kill a topology |
| restart Restart a topology |
| submit Submit a topology |
| version Print version of heron-cli |
| |
| For detailed documentation, go to http://heronstreaming.io |
| ``` |
| |
| To invoke the help for submitting a topology: |
| ```bash |
| $ heron help submit |
| usage: heron submit [options] cluster/[role]/[environ] topology-file-name topology-class-name [topology-args] |
| |
| Required arguments: |
| cluster/[role]/[env] Cluster, role, and environ to run topology |
| topology-file-name Topology jar/tar/zip file |
| topology-class-name Topology class name |
| |
| Optional arguments: |
| --config-path (a string; path to cluster config; default: "/Users/USERNAME/.heron/conf/<cluster>") |
| --config-property (a string; a config property; default: []) |
| --deploy-deactivated (a boolean; default: "false") |
| --verbose (a boolean; default: "false") |
| ``` |
| |
| ### Step 6 - Explore other example topologies |
| |
| The source code for the example topologies can be found at |
| [heron/examples/src/java/com/twitter/heron/examples](https://github.com/twitter/heron/tree/master/heron/examples/src/java/com/twitter/heron/examples). |
| |
| ```AckingTopology.java``` - a topology with acking enabled. |
| |
| ```ComponentJVMOptionsTopology.java``` - a topology that supplies JVM options for each component. |
| |
| ```CustomGroupingTopology.java``` - a topology that implements custom grouping. |
| |
| ```ExclamationTopology.java``` - a spout emits random words to a bolt that adds an explanation mark. |
| |
| ```MultiSpoutExclamationTopology.java``` - a topology with multiple spouts. |
| |
| ```MultiStageAckingTopology.java``` - a three stage topology. A spout emits to bolt that feeds to another bolt. |
| |
| ```TaskHookTopology.java``` - a topology that uses a task hook to subscribe for event notifications. |
| |
| ### Next Steps |
| [Upgrade Storm topologies](../upgrade-storm-to-heron) with simple POM.xml changes |
| |
| [Deploy topologies](../operators/deployment) in clustered, scheduler-driven environments (Aurora, Mesos, Local) |
| |
| [Develop topologies](../concepts/architecture) for the Heron Architecture |
| |