Heron is designed to be fully backward compatible with existing Apache
Storm projects, which means that you can
migrate an existing Storm topology to Heron by making
just a few adjustments to the topology’s pom.xml
Maven configuration
file.
Step 1 — Download Heron API binaries with an installation script
Go to the releases page for Heron and download the appropriate installation script for your platform. The name of the script has this form:
heron-api-install-0.14.0-PLATFORM.sh
The script for Mac OS X (darwin
), for example, would be named
heron-api-install-0.14.0-darwin.sh
.
Once the script is downloaded, run it while setting the --user
and
--maven
flags:
The Heron API will now be installed in your local Maven repository:
$ ls ~/.m2/repository/twitter/heron heron-api heron-stormStep 2 — Add Heron dependencies to pom.xml
Copy the pom.xml
segments below and paste
them into your existing Storm pom.xml
file in the dependencies
block.
Step 3 — Remove Storm dependencies from pom.xml
Delete the Storm dependency, which looks like this:
Step 4 (if needed) — Remove the Clojure plugin from pom.xml
Delete the Clojure plugin, which should look like this:
Step 5 — Run Maven commands
Run the following Maven lifecycle commands:
$ mvn clean $ mvn compile $ mvn packageNote: Storm Distribute RPC is deprecated in Heron.
Step 5 (optional) — Launch your upgraded Heron topology
You can launch the compiled Maven project on your local
cluster using heron submit
.
First, modify your project’s base directory {basedir}
and
{PATH-TO-PROJECT}.jar
, which is located in ${basedir}/target
by Maven
convention. Then modify the
TOPOLOGY-FILE-NAME
and TOPOLOGY-CLASS-NAME
for your project:
Here’s an example submit command using the example topology from the Quick Start Guide guide:
$ heron submit local \ ~/.heron/examples/heron-examples.jar \ # The path of the topology's jar file com.twitter.heron.examples.ExclamationTopology \ # The topology's Java class ExclamationTopology # The name of the topologyNext Steps
- Deploy topologies in clustered, scheduler-driven environments (such as on Aurora and locally)
- Develop topologies for Heron