blob: caabb0344c3e8f21623d8768d477c262c6bebbca [file] [log] [blame]
<!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.1 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.1</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-docker.html">Docker</a><li>
<li><a href="deployment-local.html">Local</a><li>
<li><a href="deployment-standalone.html">Standalone</a></li>
<li><a href="deployment-yarn.html">YARN</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:
<code>bash
master {
}
gearpump{
}
</code></p>
<p>Worker reads configuration from section worker and gearpump:
<code>bash
worker {
}
gearpump{
}
</code></p>
<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 gear.conf, and application.conf from classpath, while application.conf has higher prioprty.
The default classpath contains:
1. conf/
2. current working directory.</p>
<p>For example, you can put a application.conf on your working directory, 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 gear.conf, and log4j.properties.</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 log4j.rootLevel in log4j.properties, and master.akka.loglevel in gear.conf</p>
<h3 id="to-change-the-log-level-for-application-job">To change the log level for application job</h3>
<p>Please change log4j.rootLevel in log4j.properties, and akka.loglevel in gear.conf or application.conf.</p>
<h2 id="gearpump-default-configuration">Gearpump Default Configuration</h2>
<p>This is the default configuration for gear.conf.</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: bin/master -ip node1 -port 3000, on node2: bin/master -ip node2 -port 3000, on node3: bin/master -ip node3 -port 3000, then you need to set the cluster.masters = [&#8220;node1:3000&#8221;,&#8221;node2:3000&#8221;,&#8221;node3:3000&#8221;]</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 metric out of ${sample.rate}. 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 value 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</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 at. This path follows the hadoop path schema, For HDFS, use hdfs://host:port/path/; if you want to store on master nodes, then use local directory. jarstore.rootpath = &#8220;jarstore/&#8221; will points to relative directory where master is started. jarstore.rootpath = &#8220;/jarstore/&#8221; will points 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">127.0.0.1</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">&#160;</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">&#160;</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">&#160;</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. User are allowed to use a different serialization framework, like Protobuf. See io.gearpump.serializer.FastKryoSerializationFramework 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>