<!DOCTYPE html>
<!--[if lt IE 7]>      <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]>         <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]>         <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1"/>
  <title>Gearpump Configuration - Gearpump 0.7.3 Documentation</title>
  
   <meta name="description" content="Gearpump Configuration">
  

  

  <link rel="stylesheet" href="css/bootstrap-3.3.5.min.css">
  <style>
    body {
      padding-top: 60px;
      padding-bottom: 40px;
    }
  </style>
  <link rel="stylesheet" href="css/main.css">
  <link rel="stylesheet" href="css/pygments-default.css">
  <script src="js/vendor/modernizr-2.6.1-respond-1.1.0.min.js"></script>
</head>
<body>
  <!--[if lt IE 7]>
    <p class="chromeframe">You are using an outdated browser. <a href="http://browsehappy.com/">Upgrade your browser today</a> or <a href="http://www.google.com/chromeframe/?redirect=true">install Google Chrome Frame</a> to better experience this site.</p>
  <![endif]-->

  <div class="navbar navbar-inverse navbar-fixed-top" id="topbar">
    <div class="container">
      <div class="navbar-header">
        <a class="navbar-brand" href="http://gearpump.io">Gearpump
          <span class="label label-primary" style="font-size: .6em">0.7.3</span>
        </a>
      </div>
      <div class="collapse navbar-collapse">
        <ul class="nav navbar-nav">
          <li><a href="index.html">Overview</a></li>

          <li class="dropdown">
            <a href="#" class="dropdown-toggle" data-toggle="dropdown">Introduction<b class="caret"></b></a>
            <ul class="dropdown-menu">
              <li><a href="submit-your-1st-application.html">Submit Your 1st Application</a></li>
              <li><a href="commandline.html">Client Command Line</a></li>
              <li class="divider"></li>
              <li><a href="basic-concepts.html">Basic Concepts</a></li>
              <li><a href="features.html">Technical Highlights</a></li>
              <li><a href="message-delivery.html">Reliable Message Delivery</a></li>
              <li><a href="performance-report.html">Performance</a></li>
              <li><a href="gearpump-internals.html">Gearpump Internals</a></li>
            </ul>
          </li>

          <li class="dropdown">
            <a href="#" class="dropdown-toggle" data-toggle="dropdown">Deploying<b class="caret"></b></a>
            <ul class="dropdown-menu">
              <li class="dropdown-header">Deployment</li>
              <li><a href="deployment-local.html">Local Mode</a><li>
              <li><a href="deployment-standalone.html">Standalone Mode</a></li>
              <li><a href="deployment-yarn.html">YARN Mode</a></li>
              <li><a href="deployment-docker.html">Docker Mode</a><li>
              <li class="divider"></li>
              <li><a href="deployment-ha.html">High Availability</a></li>
              <li><a href="deployment-msg-delivery.html">Reliable Message Delivery</a></li>
              <li><a href="deployment-configuration.html">Configuration</a></li>
              <li class="divider"></li>
              <li><a href="deployment-security.html">Security</a></li>
            </ul>
          </li>

          <li class="dropdown">
            <a href="#" class="dropdown-toggle" data-toggle="dropdown">Programming Guide<b class="caret"></b></a>
            <ul class="dropdown-menu">
              <li><a href="dev-write-1st-app.html">Write Your 1st App</a></li>
              <li><a href="dev-custom-serializer.html">Customized Message Passing</a></li>
              <li class="divider"></li>
              <li><a href="api/scala/index.html">Scala API</a></li>
              <li><a href="api/java/index.html">Java API</a></li>
              <li><a href="dev-rest-api.html">RESTful API</a></li>
              <li class="divider"></li>
              <li><a href="dev-connectors.html">Gearpump Connectors</a></li>
              <li class="divider"></li>
              <li><a href="dev-storm.html">Storm Compatibility</a></li>
              <!--
              <li><a href="dev-samoa.html">Samoa Compatibility</a></li>
              <li class="divider"></li>
              <li><a href="dev-iot.html">Gearpump with IoT</a></li>
              -->
            </ul>
          </li>

          <li class="dropdown">
            <a href="#" class="dropdown-toggle" data-toggle="dropdown">More<b class="caret"></b></a>
            <ul class="dropdown-menu">
              <li><a href="how-to-contribute.html">How to Contribute</a></li>
              <li><a href="coding-style.html">Coding Style</a></li>
              <li class="divider"></li>
              <li><a href="faq.html">FAQ</a><li>
              <li><a href="about.html">About</a></li>
            </ul>
          </li>
        </ul>
      </div>
    </div>
  </div>

  <div class="container" id="content">
   
    <h1 class="title">Gearpump Configuration</h1>
   

   <h2 id="master-and-worker-configuration">Master and Worker configuration</h2>

<p>Master and Worker daemons will only read configuration from conf/gear.conf.</p>

<p>Master reads configuration from section master and gearpump:</p>

<div class="highlight"><pre><code class="language-bash">master <span class="o">{</span>
<span class="o">}</span>
gearpump<span class="o">{</span>
<span class="o">}</span></code></pre></div>

<p>Worker reads configuration from section worker and gearpump:</p>

<div class="highlight"><pre><code class="language-bash">worker <span class="o">{</span>
<span class="o">}</span>
gearpump<span class="o">{</span>
<span class="o">}</span></code></pre></div>

<h2 id="configuration-for-user-submitted-application-job">Configuration for user submitted application job</h2>

<p>For user application job, it will read configuration file <code>gear.conf</code> and <code>application.conf</code> from classpath, while <code>application.conf</code> has higher prioprty. 
The default classpath contains:</p>

<ol>
  <li><code>conf/</code></li>
  <li>current working directory.</li>
</ol>

<p>For example, you can put a <code>application.conf</code> on your working directory, and then it will be effective when you submit a new job application.</p>

<h2 id="logging">Logging</h2>

<p>To change the log level, you need to change both <code>gear.conf</code>, and <code>log4j.properties</code>.</p>

<h3 id="to-change-the-log-level-for-master-and-worker-daemon">To change the log level for master and worker daemon</h3>

<p>Please change <code>log4j.rootLevel</code> in <code>log4j.properties</code>, and <code>master.akka.loglevel</code> in <code>gear.conf</code>.</p>

<h3 id="to-change-the-log-level-for-application-job">To change the log level for application job</h3>

<p>Please change <code>log4j.rootLevel</code> in <code>log4j.properties</code>, and <code>akka.loglevel</code> in <code>gear.conf</code> or <code>application.conf</code>.</p>

<h2 id="gearpump-default-configuration">Gearpump Default Configuration</h2>

<p>This is the default configuration for <code>gear.conf</code>.</p>

<table>
  <thead>
    <tr>
      <th style="text-align: left">config item</th>
      <th style="text-align: left">default value</th>
      <th style="text-align: left">description</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: left">gearpump.hostname</td>
      <td style="text-align: left">&#8220;127.0.0.1&#8221;</td>
      <td style="text-align: left">hostname of current machine. If you are using local mode, then set this to 127.0.0.1. If you are using cluster mode, make sure this hostname can be accessed by other machines.</td>
    </tr>
    <tr>
      <td style="text-align: left">gearpump.cluster.masters</td>
      <td style="text-align: left">[&#8220;127.0.0.1:3000&#8221;]</td>
      <td style="text-align: left">Config to set the master nodes of the cluster. If there are multiple master in the list, then the master nodes runs in HA mode. For example, you may start three master, on node1: <code>bin/master -ip node1 -port 3000</code>, on node2: <code>bin/master -ip node2 -port 3000</code>, on node3: <code>bin/master -ip node3 -port 3000</code>, then you need to set  <code>gearpump.cluster.masters = ["node1:3000","node2:3000","node3:3000"]</code></td>
    </tr>
    <tr>
      <td style="text-align: left">gearpump.task-dispatcher</td>
      <td style="text-align: left">&#8220;gearpump.shared-thread-pool-dispatcher&#8221;</td>
      <td style="text-align: left">default dispatcher for task actor</td>
    </tr>
    <tr>
      <td style="text-align: left">gearpump.metrics.enabled</td>
      <td style="text-align: left">true</td>
      <td style="text-align: left">flag to enable the metrics system</td>
    </tr>
    <tr>
      <td style="text-align: left">gearpump.metrics.sample-rate</td>
      <td style="text-align: left">1</td>
      <td style="text-align: left">We will take one sample every <code>gearpump.metrics.sample-rate</code> data points. Note it may have impact that the statistics on UI portal is not accurate. Change it to 1 if you want accurate metrics in UI</td>
    </tr>
    <tr>
      <td style="text-align: left">gearpump.metrics.report-interval-ms</td>
      <td style="text-align: left">15000</td>
      <td style="text-align: left">we will report once every 15 seconds</td>
    </tr>
    <tr>
      <td style="text-align: left">gearpump.metrics.reporter</td>
      <td style="text-align: left">&#8220;akka&#8221;</td>
      <td style="text-align: left">available value: &#8220;graphite&#8221;, &#8220;akka&#8221;, &#8220;logfile&#8221; which write the metrics data to different places.</td>
    </tr>
    <tr>
      <td style="text-align: left">gearpump.retainHistoryData.hours</td>
      <td style="text-align: left">72</td>
      <td style="text-align: left">max hours of history data to retain, Note: Due to implementation limitation(we store all history in memory), please don&#8217;t set this to too big which may exhaust memory.</td>
    </tr>
    <tr>
      <td style="text-align: left">gearpump.retainHistoryData.intervalMs</td>
      <td style="text-align: left">3600000</td>
      <td style="text-align: left">time interval between two data points for history data (unit: ms). Usually this is set to a big value so that we only store coarse-grain data</td>
    </tr>
    <tr>
      <td style="text-align: left">gearpump.retainRecentData.seconds</td>
      <td style="text-align: left">300</td>
      <td style="text-align: left">max seconds of recent data to retain. This is for the fine-grain data</td>
    </tr>
    <tr>
      <td style="text-align: left">gearpump.retainRecentData.intervalMs</td>
      <td style="text-align: left">15000</td>
      <td style="text-align: left">time interval between two data points for recent data (unit: ms)</td>
    </tr>
    <tr>
      <td style="text-align: left">gearpump.log.daemon.dir</td>
      <td style="text-align: left">&#8220;logs&#8221;</td>
      <td style="text-align: left">The log directory for daemon processes(relative to current working directory)</td>
    </tr>
    <tr>
      <td style="text-align: left">gearpump.log.application.dir</td>
      <td style="text-align: left">&#8220;logs&#8221;</td>
      <td style="text-align: left">The log directory for applications(relative to current working directory)</td>
    </tr>
    <tr>
      <td style="text-align: left">gearpump.serializers</td>
      <td style="text-align: left">a map</td>
      <td style="text-align: left">custom serializer for streaming application, e.g. <code>"scala.Array" = ""</code></td>
    </tr>
    <tr>
      <td style="text-align: left">gearpump.worker.slots</td>
      <td style="text-align: left">1000</td>
      <td style="text-align: left">How many slots each worker contains</td>
    </tr>
    <tr>
      <td style="text-align: left">gearpump.appmaster.vmargs</td>
      <td style="text-align: left">&#8220;-server  -Xss1M -XX:+HeapDumpOnOutOfMemoryError -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=80 -XX:+UseParNewGC -XX:NewRatio=3 -Djava.rmi.server.hostname=localhost&#8221;</td>
      <td style="text-align: left">JVM arguments for AppMaster</td>
    </tr>
    <tr>
      <td style="text-align: left">gearpump.appmaster.extraClasspath</td>
      <td style="text-align: left">&#8221;&#8221;</td>
      <td style="text-align: left">JVM default class path for AppMaster</td>
    </tr>
    <tr>
      <td style="text-align: left">gearpump.executor.vmargs</td>
      <td style="text-align: left">&#8220;-server -Xss1M -XX:+HeapDumpOnOutOfMemoryError -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=80 -XX:+UseParNewGC -XX:NewRatio=3  -Djava.rmi.server.hostname=localhost&#8221;</td>
      <td style="text-align: left">JVM arguments for executor</td>
    </tr>
    <tr>
      <td style="text-align: left">gearpump.executor.extraClasspath</td>
      <td style="text-align: left">&#8221;&#8221;</td>
      <td style="text-align: left">JVM default class path for executor</td>
    </tr>
    <tr>
      <td style="text-align: left">gearpump.jarstore.rootpath</td>
      <td style="text-align: left">&#8220;jarstore/&#8221;</td>
      <td style="text-align: left">Define where the submitted jar file will be stored. This path follows the hadoop path schema. For HDFS, use <code>hdfs://host:port/path/</code>; if you want to store on master nodes, then use local directory. <code>jarstore.rootpath = "jarstore/"</code> will point to relative directory where master is started. <code>jarstore.rootpath = "/jarstore/"</code> will point to absolute directory on master server</td>
    </tr>
    <tr>
      <td style="text-align: left">gearpump.scheduling.scheduler-class</td>
      <td style="text-align: left">&#8220;io.gearpump.cluster.scheduler.PriorityScheduler&#8221;</td>
      <td style="text-align: left">Class to schedule the applications.</td>
    </tr>
    <tr>
      <td style="text-align: left">gearpump.services.host</td>
      <td style="text-align: left">&#8220;127.0.0.1&#8221;</td>
      <td style="text-align: left">dashboard UI host address</td>
    </tr>
    <tr>
      <td style="text-align: left">gearpump.services.port</td>
      <td style="text-align: left">8090</td>
      <td style="text-align: left">dashboard UI host port</td>
    </tr>
    <tr>
      <td style="text-align: left">gearpump.netty.buffer-size</td>
      <td style="text-align: left">5242880</td>
      <td style="text-align: left">netty connection buffer size</td>
    </tr>
    <tr>
      <td style="text-align: left">gearpump.netty.max-retries</td>
      <td style="text-align: left">30</td>
      <td style="text-align: left">maximum number of retries for a netty client to connect to remote host</td>
    </tr>
    <tr>
      <td style="text-align: left">gearpump.netty.base-sleep-ms</td>
      <td style="text-align: left">100</td>
      <td style="text-align: left">base sleep time for a netty client to retry a connection. Actual sleep time is a multiple of this value</td>
    </tr>
    <tr>
      <td style="text-align: left">gearpump.netty.max-sleep-ms</td>
      <td style="text-align: left">1000</td>
      <td style="text-align: left">maximum sleep time for a netty client to retry a connection</td>
    </tr>
    <tr>
      <td style="text-align: left">gearpump.netty.message-batch-size</td>
      <td style="text-align: left">262144</td>
      <td style="text-align: left">netty max batch size</td>
    </tr>
    <tr>
      <td style="text-align: left">gearpump.netty.flush-check-interval</td>
      <td style="text-align: left">10</td>
      <td style="text-align: left">max flush interval for the netty layer, in milliseconds</td>
    </tr>
    <tr>
      <td style="text-align: left">gearpump.netty.dispatcher</td>
      <td style="text-align: left">&#8220;gearpump.shared-thread-pool-dispatcher&#8221;</td>
      <td style="text-align: left">default dispatcher for netty client and server</td>
    </tr>
    <tr>
      <td style="text-align: left">gearpump.shared-thread-pool-dispatcher</td>
      <td style="text-align: left">default Dispatcher with &#8220;fork-join-executor&#8221;</td>
      <td style="text-align: left">default shared thread pool dispatcher</td>
    </tr>
    <tr>
      <td style="text-align: left">gearpump.single-thread-dispatcher</td>
      <td style="text-align: left">PinnedDispatcher</td>
      <td style="text-align: left">default single thread dispatcher</td>
    </tr>
    <tr>
      <td style="text-align: left">serialization-framework</td>
      <td style="text-align: left">&#8220;io.gearpump.serializer.FastKryoSerializationFramework&#8221;</td>
      <td style="text-align: left">Gearpump has built-in serialization framework using Kryo. Users are allowed to use a different serialization framework, like Protobuf. See <code>io.gearpump.serializer.FastKryoSerializationFramework</code> to find how a custom serialization framework can be defined</td>
    </tr>
  </tbody>
</table>


  </div> <!-- /container -->

  <script src="js/vendor/jquery-2.1.4.min.js"></script>
  <script src="js/vendor/bootstrap-3.3.5.min.js"></script>
  <script src="js/vendor/anchor-1.1.1.min.js"></script>
  <script src="js/main.js"></script>

  <!-- MathJax Section -->
  <script type="text/x-mathjax-config">
    MathJax.Hub.Config({
      TeX: { equationNumbers: { autoNumber: "AMS" } }
    });
  </script>
  <script>
    // Note that we load MathJax this way to work with local file (file://), HTTP and HTTPS.
    // We could use "//cdn.mathjax...", but that won't support "file://".
    (function(d, script) {
      script = d.createElement('script');
      script.type = 'text/javascript';
      script.async = true;
      script.onload = function(){
        MathJax.Hub.Config({
          tex2jax: {
            inlineMath: [ ["$", "$"], ["\\\\(","\\\\)"] ],
            displayMath: [ ["$$","$$"], ["\\[", "\\]"] ],
            processEscapes: true,
            skipTags: ['script', 'noscript', 'style', 'textarea', 'pre']
          }
        });
      };
      script.src = ('https:' == document.location.protocol ? 'https://' : 'http://') +
        'cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML';
      d.getElementsByTagName('head')[0].appendChild(script);
    }(document));
  </script>
</body>
</html>
