<!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.4 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">
        <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
          <span class="sr-only">Toggle navigation</span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
        </button>
        <a class="navbar-brand" href="http://gearpump.io">Gearpump
          <span class="label label-primary" style="font-size: .6em">0.7.4</span>
        </a>
      </div>
      <div id="navbar" 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-ui-authentication.html">UI Authentication</a></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">YARN Security Guide</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>
