<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Setting up Heron with Aurora Cluster Locally on Linux · Apache Heron</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--"/><meta name="docsearch:version" content="0.20.0-incubating"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Setting up Heron with Aurora Cluster Locally on Linux · Apache Heron"/><meta property="og:type" content="website"/><meta property="og:url" content="https://heron.apache.org/"/><meta property="og:description" content="&lt;!--"/><meta property="og:image" content="https://heron.apache.org/img/undraw_online.svg"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://heron.apache.org/img/undraw_tweetstorm.svg"/><link rel="shortcut icon" href="/img/favicon-32x32.png"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/default.min.css"/><link rel="alternate" type="application/atom+xml" href="https://heron.apache.org/blog/atom.xml" title="Apache Heron Blog ATOM Feed"/><link rel="alternate" type="application/rss+xml" href="https://heron.apache.org/blog/feed.xml" title="Apache Heron Blog RSS Feed"/><script>
              (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
              (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
              m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
              })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

              ga('create', 'UA-198017384-1', 'auto');
              ga('send', 'pageview');
            </script><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="/js/custom.js"></script><script type="text/javascript" src="/js/fix-location.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/HeronTextLogo-small.png" alt="Apache Heron"/><h2 class="headerTitleWithLogo">Apache Heron</h2></a><a href="/versions"><h3>0.20.0-incubating</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-internal"><li class=""><a href="/api/java" target="_self">Javadocs</a></li><li class=""><a href="/api/python" target="_self">Pydocs</a></li><li class="siteNavGroupActive"><a href="/docs/0.20.0-incubating/getting-started-local-single-node" target="_self">Docs</a></li><li class=""><a href="/download" target="_self">Downloads</a></li><li class=""><a href="#community" target="_self">Community</a></li><li class=""><a href="/blog/" target="_self">Blog</a></li><li class=""><a href="#apache" target="_self">Apache</a></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line1"></div><div class="line2"></div><div class="line3"></div></div></div><h2><i>›</i><span>Schedulers</span></h2><div class="tocToggler" id="tocToggler"><i class="icon-toc"></i></div></div><div class="navGroups"><div class="navGroup"><h3 class="navGroupCategoryTitle">Getting Started</h3><ul class=""><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/getting-started-local-single-node">Local (Single Node)</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/getting-started-migrate-storm-topologies">Migrate Storm Topologies</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/getting-started-troubleshooting-guide">Troubleshooting Guide</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">Deployment</h3><ul class=""><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/deployment-overview">Deployment Overiew</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/deployment-configuration">Configuration</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/deployment-api-server">The Heron API Server</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">Topology Development APIs</h3><ul class=""><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/topology-development-streamlet-api">The Heron Streamlet API for Java</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/topology-development-eco-api">The ECO API for Java</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/topology-development-topology-api-java">The Heron Topology API for Java</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/topology-development-topology-api-python">The Heron Topology API for Python</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/topology-development-streamlet-scala">The Heron Streamlet API for Scala</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">Client API Docs</h3><ul class=""><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/client-api-docs-overview">Client API Docs</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">Guides</h3><ul class=""><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/guides-effectively-once-java-topologies">Effectively Once Java Topologies</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/guides-data-model">Heron Data Model</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/guides-tuple-serialization">Tuple Serialization</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/guides-ui-guide">Heron UI Guide</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/guides-topology-tuning">Topology Tuning Guide</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/guides-packing-algorithms">Packing Algorithms</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/guides-simulator-mode">Simulator Mode</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/guides-troubeshooting-guide">Topology Troubleshooting Guide</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">Heron Concepts</h3><ul class=""><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/heron-design-goals">Heron Design Goals</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/heron-topology-concepts">Heron Topologies</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/heron-streamlet-concepts">Heron Streamlets</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/heron-architecture">Heron Architecture</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/heron-delivery-semantics">Heron Delivery Semantics</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">State Managers</h3><ul class=""><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/state-managers-zookeeper">Zookeeper</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/state-managers-local-fs">Local File System</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">Uploaders</h3><ul class=""><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/uploaders-local-fs">Local File System</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/uploaders-hdfs">HDFS</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/uploaders-http">HTTP</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/uploaders-amazon-s3">Amazon S3</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/uploaders-scp">Secure Copy (SCP)</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">Schedulers</h3><ul class=""><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/schedulers-k8s-by-hand">Kubernetes by hand</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/schedulers-k8s-with-helm">Kubernetes with Helm</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/schedulers-aurora-cluster">Aurora Cluster</a></li><li class="navListItem navListItemActive"><a class="navItem" href="/docs/0.20.0-incubating/schedulers-aurora-local">Aurora Locally</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/schedulers-local">Local Cluster</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/schedulers-nomad">Nomad</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/schedulers-mesos-local-mac">Mesos Cluster Locally</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/schedulers-slurm">Slurm Cluster</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/schedulers-yarn">YARN Cluster</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">Cluster Configuration</h3><ul class=""><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/cluster-config-overview">Cluster Config Overview</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/cluster-config-system-level">System Level Configuration</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/cluster-config-instance">Heron Instance</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/cluster-config-metrics">Metrics Manager</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/cluster-config-stream">Stream Manager</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/cluster-config-tmanager">Topology Manager</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">Observability</h3><ul class=""><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/observability-prometheus">Prometheus</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/observability-graphite">Graphite</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/observability-scribe">Scribe</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">User Manuals</h3><ul class=""><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/user-manuals-heron-cli">Heron Client</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/user-manuals-heron-explorer">Heron Explorer</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/user-manuals-tracker-rest">Heron Tracker REST API</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/user-manuals-heron-tracker-runbook">Heron Tracker Runbook</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/user-manuals-heron-ui-runbook">Heron UI Runbook</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/user-manuals-heron-shell">Heron Shell</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">Compiling</h3><ul class=""><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/compiling-overview">Compiling Overview</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/compiling-linux">Compiling on Linux</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/compiling-osx">Compiling on OS X</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/compiling-docker">Compiling With Docker</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/compiling-running-tests">Running Tests</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/compiling-code-organization">Code Organization</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">Extending Heron</h3><ul class=""><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/extending-heron-scheduler">Custom Scheduler</a></li><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/extending-heron-metric-sink">Custom Metrics Sink</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">Heron Resources</h3><ul class=""><li class="navListItem"><a class="navItem" href="/docs/0.20.0-incubating/heron-resources-resources">Heron Resources</a></li></ul></div></div></section></div><script>
            var coll = document.getElementsByClassName('collapsible');
            var checkActiveCategory = true;
            for (var i = 0; i < coll.length; i++) {
              var links = coll[i].nextElementSibling.getElementsByTagName('*');
              if (checkActiveCategory){
                for (var j = 0; j < links.length; j++) {
                  if (links[j].classList.contains('navListItemActive')){
                    coll[i].nextElementSibling.classList.toggle('hide');
                    coll[i].childNodes[1].classList.toggle('rotate');
                    checkActiveCategory = false;
                    break;
                  }
                }
              }

              coll[i].addEventListener('click', function() {
                var arrow = this.childNodes[1];
                arrow.classList.toggle('rotate');
                var content = this.nextElementSibling;
                content.classList.toggle('hide');
              });
            }

            document.addEventListener('DOMContentLoaded', function() {
              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
              createToggler('#tocToggler', 'body', 'tocActive');

              var headings = document.querySelector('.toc-headings');
              headings && headings.addEventListener('click', function(event) {
                var el = event.target;
                while(el !== headings){
                  if (el.tagName === 'A') {
                    document.body.classList.remove('tocActive');
                    break;
                  } else{
                    el = el.parentNode;
                  }
                }
              }, false);

              function createToggler(togglerSelector, targetSelector, className) {
                var toggler = document.querySelector(togglerSelector);
                var target = document.querySelector(targetSelector);

                if (!toggler) {
                  return;
                }

                toggler.onclick = function(event) {
                  event.preventDefault();

                  target.classList.toggle(className);
                };
              }
            });
        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle">Setting up Heron with Aurora Cluster Locally on Linux</h1></header><article><div><span><!--
    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at
      http://www.apache.org/licenses/LICENSE-2.0
    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.
-->
<p>It is possible to setup Heron with a locally running Apache Aurora cluster.
This is a step by step guide on how to configure and setup all the necessary
components.</p>
<h2><a class="anchor" aria-hidden="true" id="setting-up-apache-aurora-cluster-locally"></a><a href="#setting-up-apache-aurora-cluster-locally" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Setting Up Apache Aurora Cluster locally</h2>
<p>You first need to setup Apache Aurora locally. More detailed description of the
following steps can be found in <a href="http://aurora.apache.org/documentation/latest/getting-started/vagrant/">A local Cluster with Vagrant</a></p>
<h3><a class="anchor" aria-hidden="true" id="step-1-install-virtualbox-and-vagrant"></a><a href="#step-1-install-virtualbox-and-vagrant" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Step 1: Install VirtualBox and Vagrant</h3>
<p>Download and install VirtualBox and Vagrant on your machine. If vagrant is successfully
installed in your machine the following command should list several common commands
for this tool</p>
<pre><code class="hljs css language-bash">$ vagrant
</code></pre>
<h3><a class="anchor" aria-hidden="true" id="step-2-clone-the-aurora-repository"></a><a href="#step-2-clone-the-aurora-repository" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Step 2: Clone the Aurora repository</h3>
<p>You can get the source repository for Aurora with the following command</p>
<pre><code class="hljs css language-bash">$ dgit <span class="hljs-built_in">clone</span> git://git.apache.org/aurora.git
</code></pre>
<p>Once the clone is complete cd into the aurora folder</p>
<pre><code class="hljs css language-bash">$ <span class="hljs-built_in">cd</span> aurora
</code></pre>
<h3><a class="anchor" aria-hidden="true" id="step-3-starting-local-aurora-cluster"></a><a href="#step-3-starting-local-aurora-cluster" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Step 3: Starting Local Aurora Cluster</h3>
<p>To start the local cluster all you have to do is execute the following command. It will install all the needed dependencies like Apache Mesos and Zookeeper in the VM.</p>
<pre><code class="hljs css language-bash">$ vagrant up
</code></pre>
<p>Additionally to get rid of some of the warning messages that you get during up command execute the following command</p>
<pre><code class="hljs css language-bash">$ vagrant plugin install vagrant-vbguest
</code></pre>
<p>You can verify that the Aurora cluster is properly running by opening the following links in your web-browser</p>
<ul>
<li>Scheduler - <a href="http://192.168.33.7:8081">http://192.168.33.7:8081</a></li>
<li>Observer - <a href="http://192.168.33.7:1338">http://192.168.33.7:1338</a></li>
<li>Mesos Master - <a href="http://192.168.33.7:5050">http://192.168.33.7:5050</a></li>
<li>Mesos Agent - <a href="http://192.168.33.7:5051">http://192.168.33.7:5051</a></li>
</ul>
<p>If you go into <a href="http://192.168.33.7:8081/scheduler">http://192.168.33.7:8081/scheduler</a> you can notice that the name of the default cluster that is setup in aurora is
named <code>devcluster</code> this will be important to note when submitting typologies from heron.</p>
<p><img src="/docs/assets/aurora-local-cluster-start.png" alt="Heron topology"></p>
<h2><a class="anchor" aria-hidden="true" id="installing-heron-within-the-cluster-vm"></a><a href="#installing-heron-within-the-cluster-vm" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Installing Heron within the Cluster VM</h2>
<p>Now that the Aurora cluster is setup you need to install heron within the cluster VM in order to be able to get the Heron
deployment working. Since this is a fresh VM instance you will have to install the basic software such as &quot;unzip&quot; and set
the JAVA_HOME path as an environmental variable ( Just need to add this to .bashrc file). After you have the basic stuff
working follow the following steps to install Heron in the VM. You can ssh into the VM with the following command</p>
<pre><code class="hljs css language-bash">$ vagrant ssh
</code></pre>
<h3><a class="anchor" aria-hidden="true" id="step-1a-download-installation-script-files"></a><a href="#step-1a-download-installation-script-files" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Step 1.a : Download installation script files</h3>
<p>You can download the script files that match your Linux distribution from
<a href="https://github.com/apache/incubator-heron/releases/tag/">https://github.com/apache/incubator-heron/releases/tag/</a>0.20.0-incubating</p>
<p>For example for the 0.20.0-incubating release the files you need to download For Ubuntu will be the following.</p>
<ul>
<li><code>heron-install-0.20.0-incubating-ubuntu.sh</code></li>
</ul>
<p>Optionally - You want need the following for the steps in the blog post</p>
<ul>
<li><code>heron-api-install-0.20.0-incubating-ubuntu.sh</code></li>
<li><code>heron-core-0.20.0-incubating-ubuntu.tar.gz</code></li>
</ul>
<h3><a class="anchor" aria-hidden="true" id="step-1b-execute-the-client-and-tools-shell-scripts"></a><a href="#step-1b-execute-the-client-and-tools-shell-scripts" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Step 1.b: Execute the client and tools shell scripts</h3>
<pre><code class="hljs css language-bash">$ chmod +x heron-install-VERSION-PLATFORM.sh
$ ./heron-install-VERSION-PLATFORM.sh --user
Heron client installer
----------------------

Uncompressing......
Heron is now installed!

Make sure you have <span class="hljs-string">"/home/vagrant/bin"</span> <span class="hljs-keyword">in</span> your path.
</code></pre>
<p>After this you need to add the path &quot;/home/vagrant/bin&quot;. You can just execute the following command
or add it to the end of  .bashrc file ( which is more convenient ).</p>
<pre><code class="hljs css language-bash">$ <span class="hljs-built_in">export</span> PATH=<span class="hljs-variable">$PATH</span>:/home/vagrant/bin
</code></pre>
<p>Install the following packages to make sure that you have all the needed dependencies in the VM.
You might have to do sudo apt-get update before you execute the following.</p>
<pre><code class="hljs css language-bash">$ sudo apt-get install git build-essential automake cmake libtool zip libunwind-setjmp0-dev zlib1g-dev unzip pkg-config -y
</code></pre>
<h2><a class="anchor" aria-hidden="true" id="configuring-state-manager-apache-zookeeper"></a><a href="#configuring-state-manager-apache-zookeeper" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Configuring State Manager ( Apache Zookeeper )</h2>
<p>Since Heron only uses Apache Zookeeper for coordination the load on the Zookeeper
node is minimum. Because of this it is sufficient to use a single Zookeeper node or
if you have an Zookeeper instance running for some other task you can simply use that.
Since Apache Aurora already uses an Zookeeper instance you can directly use that instance
to execute State Manager tasks of Heron. First you need to configure Heron to work with
the Zookeeper instance. You can find meanings of each attribute in <a href="state-managers-zookeeper">Setting Up ZooKeeper
State Manager</a>. Configurations for State manager are
located in the directory <code>/home/vagrant/.heron/conf/aurora</code>.</p>
<p>Open the file <code>statemgr.yaml</code> using vim ( or some other text editor you prefer )
and add/edit the file to include the following.</p>
<pre><code class="hljs css language-yaml"><span class="hljs-comment"># local state manager class for managing state in a persistent fashion</span>
<span class="hljs-attr">heron.class.state.manager:</span> <span class="hljs-string">org.apache.heron.statemgr.zookeeper.curator.CuratorStateManager</span>

<span class="hljs-comment"># local state manager connection string</span>
<span class="hljs-attr">heron.statemgr.connection.string:</span>  <span class="hljs-string">"127.0.0.1:2181"</span>

<span class="hljs-comment"># path of the root address to store the state in a local file system</span>
<span class="hljs-attr">heron.statemgr.root.path:</span> <span class="hljs-string">"/heronroot"</span>

<span class="hljs-comment"># create the zookeeper nodes, if they do not exist</span>
<span class="hljs-attr">heron.statemgr.zookeeper.is.initialize.tree:</span> <span class="hljs-literal">True</span>

<span class="hljs-comment"># timeout in ms to wait before considering zookeeper session is dead</span>
<span class="hljs-attr">heron.statemgr.zookeeper.session.timeout.ms:</span> <span class="hljs-number">30000</span>

<span class="hljs-comment"># timeout in ms to wait before considering zookeeper connection is dead</span>
<span class="hljs-attr">heron.statemgr.zookeeper.connection.timeout.ms:</span> <span class="hljs-number">30000</span>

<span class="hljs-comment"># timeout in ms to wait before considering zookeeper connection is dead</span>
<span class="hljs-attr">heron.statemgr.zookeeper.retry.count:</span> <span class="hljs-number">10</span>

<span class="hljs-comment"># duration of time to wait until the next retry</span>
<span class="hljs-attr">heron.statemgr.zookeeper.retry.interval.ms:</span> <span class="hljs-number">10000</span>
</code></pre>
<h2><a class="anchor" aria-hidden="true" id="creating-paths-in-zookeeper"></a><a href="#creating-paths-in-zookeeper" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Creating Paths in Zookeeper</h2>
<p>Next you need to create some paths within Zookeeper since some of the paths
are not created by Heron automatically. So you need to create them manually.
Since Aurora installation already installed Zookeeper, you can use the Zookeeper
cli to create the manual paths.</p>
<pre><code class="hljs css language-bash">$ sudo ./usr/share/zookeeper/bin/zkCli.sh
</code></pre>
<p>This will connect to the Zookeeper instance running locally. Then execute the
following commands from within the client to create paths <code>/heronroot/topologies</code>
and <code>/heron/topologies</code>. Later in &quot;Associating new Aurora cluster into Heron UI&quot;
you will see that you only need to create <code>/heronroot/topologies</code> but for now lets
create both to make sure you don't get any errors when you run things.</p>
<pre><code class="hljs css language-bash">create /heronroot null
create /heronroot/topologies null
</code></pre>
<pre><code class="hljs css language-bash">create /heron null
create /heron/topologies null
</code></pre>
<h2><a class="anchor" aria-hidden="true" id="configuring-scheduler-apache-aurora"></a><a href="#configuring-scheduler-apache-aurora" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Configuring Scheduler ( Apache Aurora )</h2>
<p>Next you need to configure Apache Aurora to be used as the Scheduler for our Heron
local cluster. In order to do this you need to edit the <code>scheduler.yaml</code> file that is
also located in <code>/home/vagrant/.heron/conf/aurora</code>. Add/Edit the file to include the
following. More information regarding parameters can be found in <a href="schedulers-aurora-cluster">Aurora Cluster</a></p>
<pre><code class="hljs css language-yaml"><span class="hljs-comment"># scheduler class for distributing the topology for execution</span>
<span class="hljs-attr">heron.class.scheduler:</span> <span class="hljs-string">org.apache.heron.scheduler.aurora.AuroraScheduler</span>

<span class="hljs-comment"># launcher class for submitting and launching the topology</span>
<span class="hljs-attr">heron.class.launcher:</span> <span class="hljs-string">org.apache.heron.scheduler.aurora.AuroraLauncher</span>

<span class="hljs-comment"># location of the core package</span>
<span class="hljs-attr">heron.package.core.uri:</span> <span class="hljs-string">file:///home/vagrant/.heron/dist/heron-core.tar.gz</span>

<span class="hljs-comment"># location of java - pick it up from shell environment</span>
<span class="hljs-attr">heron.directory.sandbox.java.home:</span> <span class="hljs-string">/usr/lib/jvm/java-1.8.0-openjdk-amd64/</span>

<span class="hljs-comment"># Invoke the IScheduler as a library directly</span>
<span class="hljs-attr">heron.scheduler.is.service:</span> <span class="hljs-literal">False</span>
</code></pre>
<p>Additionally edit the <code>client.yaml</code> file and change the core uri to make it consistant.</p>
<pre><code class="hljs css language-yaml"><span class="hljs-comment"># location of the core package</span>
<span class="hljs-attr">heron.package.core.uri:</span> <span class="hljs-string">file:///home/vagrant/.heron/dist/heron-core.tar.gz</span>
</code></pre>
<h3><a class="anchor" aria-hidden="true" id="important-step-change-folder-name-aurora-to-devcluster"></a><a href="#important-step-change-folder-name-aurora-to-devcluster" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Important Step: Change folder name <code>aurora</code> to <code>devcluster</code></h3>
<p>Next you need to change the folder name of <code>/home/vagrant/.heron/conf/aurora</code> to
<code>/home/vagrant/.heron/conf/devcluster</code>. This is because the name of your aurora
cluster is <code>devcluster</code> as you noted in a previous step. You can do this with the
following commands</p>
<pre><code class="hljs css language-bash">$ <span class="hljs-built_in">cd</span> /home/vagrant/.heron/conf/
$ mv aurora devcluster
</code></pre>
<h2><a class="anchor" aria-hidden="true" id="submitting-example-topology-to-aurora-cluster"></a><a href="#submitting-example-topology-to-aurora-cluster" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Submitting Example Topology to Aurora cluster</h2>
<p>Now you can submit a topology to the aurora cluster. this can be done with the following command.</p>
<pre><code class="hljs css language-bash">$ heron submit devcluster/heronuser/devel --config-path ~/.heron/conf/ ~/.heron/examples/heron-api-examples.jar org.apache.heron.examples.api.ExclamationTopology ExclamationTopology
</code></pre>
<p>Now you should be able to see the topology in the Aurora UI ( <a href="http://192.168.33.7:8081/scheduler/heronuser">http://192.168.33.7:8081/scheduler/heronuser</a> ) .</p>
<p><img src="/docs/assets/aurora-local-topology-submitted.png" alt="Heron topology"></p>
<h3><a class="anchor" aria-hidden="true" id="understanding-the-parameters"></a><a href="#understanding-the-parameters" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Understanding the parameters</h3>
<p>below is a brief explanation on some of the important parameters that are used in this command. the first
parameter <code>devcluster/heronuser/devel</code> defines cluster, role and env ( env can have values <code>prod | devel | test | staging</code> ).
The cluster is the name of the aurora cluster which is <code>devcluster</code> in our case. You can give something like your
name for the role name and for env you need to choose from one of the env values.</p>
<p><code>--config-path</code> points to the config folder. the program will automatically look for a folder with the cluster name.
This is why you had to change the name of the aurora conf folder to devcluster.</p>
<p>Now that everything is working you need to perform one last step to be able to see the typologies that you can see in Aurora UI in Heron UI.</p>
<h2><a class="anchor" aria-hidden="true" id="associating-new-aurora-cluster-into-heron-ui"></a><a href="#associating-new-aurora-cluster-into-heron-ui" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Associating new Aurora cluster into Heron UI</h2>
<p>Heron UI uses information that is gets from the heron tracker when displaying the information in the heron UI interface.
So in-order to allow the Heron UI to show Aurora cluster information you need to modify configuration of the Heron tracker
so that it can identify the Aurora Cluster.</p>
<p>Heron Tracker configurations are located at <code>/home/vagrant/.herontools/conf</code> the configuration file is named <code>heron_tracker.yaml</code>.
By default you should see the following in the file</p>
<pre><code class="hljs css language-yaml"><span class="hljs-attr">statemgrs:</span>
  <span class="hljs-bullet">-</span>
    <span class="hljs-attr">type:</span> <span class="hljs-string">"file"</span>
    <span class="hljs-attr">name:</span> <span class="hljs-string">"local"</span>
    <span class="hljs-attr">rootpath:</span> <span class="hljs-string">"~/.herondata/repository/state/local"</span>
    <span class="hljs-attr">tunnelhost:</span> <span class="hljs-string">"localhost"</span>
  <span class="hljs-bullet">-</span>
    <span class="hljs-attr">type:</span> <span class="hljs-string">"zookeeper"</span>
    <span class="hljs-attr">name:</span> <span class="hljs-string">"localzk"</span>
    <span class="hljs-attr">hostport:</span> <span class="hljs-string">"localhost:2181"</span>
    <span class="hljs-attr">rootpath:</span> <span class="hljs-string">"/heron"</span>
    <span class="hljs-attr">tunnelhost:</span> <span class="hljs-string">"localhost"</span>
</code></pre>
<p>You can see that there already two entries. Before, you had to create paths in Zookeeper for <code>/heron/topologies</code> this is
because the entry named <code>localzk</code> in this file. If you remove this you will not need to create that path in Zookeeper.
Now all you have to is to add a new entry for the aurora cluster into this file ( lets comment out <code>localzk</code> ).
Then the file would look like below.</p>
<pre><code class="hljs css language-yaml"><span class="hljs-attr">statemgrs:</span>
  <span class="hljs-bullet">-</span>
    <span class="hljs-attr">type:</span> <span class="hljs-string">"file"</span>
    <span class="hljs-attr">name:</span> <span class="hljs-string">"local"</span>
    <span class="hljs-attr">rootpath:</span> <span class="hljs-string">"~/.herondata/repository/state/local"</span>
    <span class="hljs-attr">tunnelhost:</span> <span class="hljs-string">"localhost"</span>
  <span class="hljs-comment">#-</span>
   <span class="hljs-comment">#type: "zookeeper"</span>
   <span class="hljs-comment"># name: "localzk"</span>
   <span class="hljs-comment"># hostport: "localhost:2181"</span>
   <span class="hljs-comment"># rootpath: "/heron"</span>
   <span class="hljs-comment"># tunnelhost: "localhost"</span>
  <span class="hljs-bullet">-</span>
    <span class="hljs-attr">type:</span> <span class="hljs-string">"zookeeper"</span>
    <span class="hljs-attr">name:</span> <span class="hljs-string">"devcluster"</span>
    <span class="hljs-attr">hostport:</span> <span class="hljs-string">"localhost:2181"</span>
    <span class="hljs-attr">rootpath:</span> <span class="hljs-string">"/heronroot"</span>
    <span class="hljs-attr">tunnelhost:</span> <span class="hljs-string">"localhost"</span>
</code></pre>
<p>Now you can start Heron tracker and then Heron UI, Now you will be able to see the aurora cluster from the
Heron UI ( <a href="http://192.168.33.7:8889/topologies">http://192.168.33.7:8889/topologies</a> ) as below</p>
<pre><code class="hljs css language-bash">$ heron-tracker
$ heron-ui
</code></pre>
<p><img src="/docs/assets/heron-ui-topology-submitted.png" alt="Heron topology"></p>
</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/0.20.0-incubating/schedulers-aurora-cluster"><span class="arrow-prev">← </span><span>Aurora Cluster</span></a><a class="docs-next button" href="/docs/0.20.0-incubating/schedulers-local"><span>Local Cluster</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#setting-up-apache-aurora-cluster-locally">Setting Up Apache Aurora Cluster locally</a><ul class="toc-headings"><li><a href="#step-1-install-virtualbox-and-vagrant">Step 1: Install VirtualBox and Vagrant</a></li><li><a href="#step-2-clone-the-aurora-repository">Step 2: Clone the Aurora repository</a></li><li><a href="#step-3-starting-local-aurora-cluster">Step 3: Starting Local Aurora Cluster</a></li></ul></li><li><a href="#installing-heron-within-the-cluster-vm">Installing Heron within the Cluster VM</a><ul class="toc-headings"><li><a href="#step-1a-download-installation-script-files">Step 1.a : Download installation script files</a></li><li><a href="#step-1b-execute-the-client-and-tools-shell-scripts">Step 1.b: Execute the client and tools shell scripts</a></li></ul></li><li><a href="#configuring-state-manager-apache-zookeeper">Configuring State Manager ( Apache Zookeeper )</a></li><li><a href="#creating-paths-in-zookeeper">Creating Paths in Zookeeper</a></li><li><a href="#configuring-scheduler-apache-aurora">Configuring Scheduler ( Apache Aurora )</a><ul class="toc-headings"><li><a href="#important-step-change-folder-name-aurora-to-devcluster">Important Step: Change folder name <code>aurora</code> to <code>devcluster</code></a></li></ul></li><li><a href="#submitting-example-topology-to-aurora-cluster">Submitting Example Topology to Aurora cluster</a><ul class="toc-headings"><li><a href="#understanding-the-parameters">Understanding the parameters</a></li></ul></li><li><a href="#associating-new-aurora-cluster-into-heron-ui">Associating new Aurora cluster into Heron UI</a></li></ul></nav></div><footer class="nav-footer" id="footer"><div class="apache-disclaimer">Apache Heron is an effort undergoing incubation at <a target="_blank" href="https://apache.org/">The Apache Software Foundation (ASF)</a> sponsored by the Apache Incubator PMC. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.<br/><br/>Apache®, the names of Apache projects, and the feather logo are either <a rel="external" href="https://www.apache.org/foundation/marks/list/">registered trademarks or trademarks</a> of the Apache Software Foundation in the United States and/or other countries.<br/><br/><div class="copyright-box">Copyright © 2023 the Apache Software Foundation, Apache Heron, Heron, 
  Apache, the Apache feather Logo, and the Apache Heron project logo are either registered 
  trademarks or trademarks of the Apache Software Foundation.</div></div><div class="apache-links"><a class="item" rel="external" href="https://incubator.apache.org/">Apache Incubator</a><div><a class="item" rel="external" href="https://www.apache.org/">About the ASF</a></div><div><a class="item" rel="external" href="https://www.apache.org/events/current-event">Events</a></div><div><a class="item" rel="external" href="https://www.apache.org/foundation/thanks.html">Thanks</a></div><div><a class="item" rel="external" href="https://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></div><div><a class="item" rel="external" href="https://www.apache.org/security/">Security</a></div><div><a class="item" rel="external" href="https://www.apache.org/licenses/">License</a></div></div></footer></div><script>window.twttr=(function(d,s, id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src='https://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js, fjs);t._e = [];t.ready = function(f) {t._e.push(f);};return t;}(document, 'script', 'twitter-wjs'));</script></body></html>