| --- |
| title: Configuring Apache Kudu |
| layout: default |
| active_nav: docs |
| last_updated: 'Last updated 2017-12-01 23:44:25 PST' |
| --- |
| <!-- |
| |
| Licensed 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. |
| --> |
| |
| |
| <div class="container"> |
| <div class="row"> |
| <div class="col-md-9"> |
| |
| <h1>Configuring Apache Kudu</h1> |
| <div id="preamble"> |
| <div class="sectionbody"> |
| <div class="admonitionblock note"> |
| <table> |
| <tr> |
| <td class="icon"> |
| <i class="fa icon-note" title="Note"></i> |
| </td> |
| <td class="content"> |
| Kudu is easier to configure with <a href="http://www.cloudera.com/content/www/en-us/products/cloudera-manager.html">Cloudera Manager</a> |
| than in a standalone installation. See Cloudera’s |
| <a href="http://www.cloudera.com/documentation/kudu/latest/topics/kudu_installation.html">Kudu documentation</a> |
| for more details about using Kudu with Cloudera Manager. |
| </td> |
| </tr> |
| </table> |
| </div> |
| </div> |
| </div> |
| <div class="sect1"> |
| <h2 id="_configure_kudu"><a class="link" href="#_configure_kudu">Configure Kudu</a></h2> |
| <div class="sectionbody"> |
| <div class="sect2"> |
| <h3 id="_configuration_basics"><a class="link" href="#_configuration_basics">Configuration Basics</a></h3> |
| <div class="paragraph"> |
| <p>To configure the behavior of each Kudu process, you can pass command-line flags when |
| you start it, or read those options from configuration files by passing them using |
| one or more <code>--flagfile=<file></code> options. You can even include the |
| <code>--flagfile</code> option within your configuration file to include other files. Learn more about gflags |
| by reading <a href="https://gflags.github.io/gflags/">its documentation</a>.</p> |
| </div> |
| <div class="paragraph"> |
| <p>You can place options for masters and tablet servers into the same configuration |
| file, and each will ignore options that do not apply.</p> |
| </div> |
| <div class="paragraph"> |
| <p>Flags can be prefixed with either one or two <code>-</code> characters. This |
| documentation standardizes on two: <code>--example_flag</code>.</p> |
| </div> |
| </div> |
| <div class="sect2"> |
| <h3 id="_discovering_configuration_options"><a class="link" href="#_discovering_configuration_options">Discovering Configuration Options</a></h3> |
| <div class="paragraph"> |
| <p>Only the most common configuration options are documented here. For a more exhaustive |
| list of configuration options, see the <a href="configuration_reference.html">Configuration Reference</a>.</p> |
| </div> |
| <div class="paragraph"> |
| <p>To see all configuration flags for a given executable, run it with the <code>--help</code> option. |
| Take care when configuring undocumented flags, as not every possible |
| configuration has been tested, and undocumented options are not guaranteed to be |
| maintained in future releases.</p> |
| </div> |
| </div> |
| <div class="sect2"> |
| <h3 id="directory_configuration"><a class="link" href="#directory_configuration">Directory Configurations</a></h3> |
| <div class="paragraph"> |
| <p>Every Kudu node requires the specification of directory flags. The |
| <code>--fs_wal_dir</code> configuration indicates where Kudu will place its write-ahead |
| logs. It is recommended, although not necessary, that this directory is placed |
| on a high-performance drive (one with high bandwidth and low latency, e.g. a |
| solid-state drive). The <code>--fs_data_dirs</code> configuration indicates where Kudu |
| will write its data blocks. This is a comma-separated list of directories; if |
| multiple are specified, data will be striped across the directories. Kudu will |
| also place metadata for each tablet in the first specified directory. If not |
| specified, data blocks will be placed in the directory specified by |
| <code>--fs_wal_dir</code>. Additionally, <code>--fs_wal_dir</code> may be the same as <em>one of</em> the |
| directories listed in <code>--fs_data_dirs</code>, but must not be a sub-directory of any |
| of them.</p> |
| </div> |
| <div class="admonitionblock warning"> |
| <table> |
| <tr> |
| <td class="icon"> |
| <i class="fa icon-warning" title="Warning"></i> |
| </td> |
| <td class="content"> |
| Once these flags are set, they are difficult to change, often requiring |
| the entire node to be rebuilt. For more details, see the |
| <a href="administration.html#change_dir_config">Kudu Administration docs</a>. |
| </td> |
| </tr> |
| </table> |
| </div> |
| </div> |
| <div class="sect2"> |
| <h3 id="_configuring_the_kudu_master"><a class="link" href="#_configuring_the_kudu_master">Configuring the Kudu Master</a></h3> |
| <div class="paragraph"> |
| <p>To see all available configuration options for the <code>kudu-master</code> executable, run it |
| with the <code>--help</code> option:</p> |
| </div> |
| <div class="listingblock"> |
| <div class="content"> |
| <pre>$ kudu-master --help</pre> |
| </div> |
| </div> |
| <table class="tableblock frame-all grid-all spread"> |
| <caption class="title">Table 1. Supported Configuration Flags for Kudu Masters</caption> |
| <colgroup> |
| <col style="width: 25%;"> |
| <col style="width: 25%;"> |
| <col style="width: 25%;"> |
| <col style="width: 25%;"> |
| </colgroup> |
| <thead> |
| <tr> |
| <th class="tableblock halign-left valign-top">Flag</th> |
| <th class="tableblock halign-left valign-top">Valid Options</th> |
| <th class="tableblock halign-left valign-top">Default</th> |
| <th class="tableblock halign-left valign-top">Description</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>--master_addresses</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>localhost</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Comma-separated list of all the RPC |
| addresses for Master consensus-configuration. If not specified, assumes a standalone Master.</p></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>--fs_data_dirs</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> |
| <td class="tableblock halign-left valign-top"></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">List of directories where the Master will place its data blocks.</p></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>--fs_wal_dir</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> |
| <td class="tableblock halign-left valign-top"></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">The directory where the Master will place its write-ahead logs.</p></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>--log_dir</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>/tmp</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">The directory to store Master log files.</p></td> |
| </tr> |
| </tbody> |
| </table> |
| <div class="paragraph"> |
| <p>For the full list of flags for masters, see the |
| <a href="configuration_reference.html#master_configuration_reference">Kudu Master Configuration Reference</a>.</p> |
| </div> |
| </div> |
| <div class="sect2"> |
| <h3 id="_configuring_tablet_servers"><a class="link" href="#_configuring_tablet_servers">Configuring Tablet Servers</a></h3> |
| <div class="paragraph"> |
| <p>To see all available configuration options for the <code>kudu-tserver</code> executable, |
| run it with the <code>--help</code> option:</p> |
| </div> |
| <div class="listingblock"> |
| <div class="content"> |
| <pre>$ kudu-tserver --help</pre> |
| </div> |
| </div> |
| <table class="tableblock frame-all grid-all spread"> |
| <caption class="title">Table 2. Supported Configuration Flags for Kudu Tablet Servers</caption> |
| <colgroup> |
| <col style="width: 25%;"> |
| <col style="width: 25%;"> |
| <col style="width: 25%;"> |
| <col style="width: 25%;"> |
| </colgroup> |
| <thead> |
| <tr> |
| <th class="tableblock halign-left valign-top">Flag</th> |
| <th class="tableblock halign-left valign-top">Valid Options</th> |
| <th class="tableblock halign-left valign-top">Default</th> |
| <th class="tableblock halign-left valign-top">Description</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">--fs_data_dirs</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> |
| <td class="tableblock halign-left valign-top"></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">List of directories where the Tablet Server will place its data blocks.</p></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">--fs_wal_dir</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> |
| <td class="tableblock halign-left valign-top"></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">The directory where the Tablet Server will place its write-ahead logs.</p></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">--log_dir</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">/tmp</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">The directory to store Tablet Server log files</p></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">--tserver_master_addrs</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>127.0.0.1:7051</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Comma separated |
| addresses of the masters which the tablet server should connect to. The masters |
| do not read this flag.</p></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">--block_cache_capacity_mb</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">integer</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">512</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Maximum amount of memory allocated to the Kudu Tablet Server’s block cache.</p></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">--memory_limit_hard_bytes</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">integer</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">4294967296</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Maximum amount of memory a Tablet Server can consume before it starts rejecting all incoming writes.</p></td> |
| </tr> |
| </tbody> |
| </table> |
| <div class="paragraph"> |
| <p>For the full list of flags for tablet servers, see the |
| <a href="configuration_reference.html#tablet_server_configuration_reference">Kudu Tablet Server Configuration Reference</a>.</p> |
| </div> |
| </div> |
| </div> |
| </div> |
| <div class="sect1"> |
| <h2 id="_next_steps"><a class="link" href="#_next_steps">Next Steps</a></h2> |
| <div class="sectionbody"> |
| <div class="ulist"> |
| <ul> |
| <li> |
| <p><a href="quickstart.html">Get Started With Kudu</a></p> |
| </li> |
| <li> |
| <p><a href="developing.html">Developing Applications With Kudu</a></p> |
| </li> |
| </ul> |
| </div> |
| </div> |
| </div> |
| </div> |
| <div class="col-md-3"> |
| |
| <div id="toc" data-spy="affix" data-offset-top="70"> |
| <ul> |
| |
| <li> |
| |
| <a href="index.html">Introducing Kudu</a> |
| </li> |
| <li> |
| |
| <a href="release_notes.html">Kudu Release Notes</a> |
| </li> |
| <li> |
| |
| <a href="quickstart.html">Getting Started with Kudu</a> |
| </li> |
| <li> |
| |
| <a href="installation.html">Installation Guide</a> |
| </li> |
| <li> |
| <span class="active-toc">Configuring Kudu</span> |
| <ul class="sectlevel1"> |
| <li><a href="#_configure_kudu">Configure Kudu</a> |
| <ul class="sectlevel2"> |
| <li><a href="#_configuration_basics">Configuration Basics</a></li> |
| <li><a href="#_discovering_configuration_options">Discovering Configuration Options</a></li> |
| <li><a href="#directory_configuration">Directory Configurations</a></li> |
| <li><a href="#_configuring_the_kudu_master">Configuring the Kudu Master</a></li> |
| <li><a href="#_configuring_tablet_servers">Configuring Tablet Servers</a></li> |
| </ul> |
| </li> |
| <li><a href="#_next_steps">Next Steps</a></li> |
| </ul> |
| </li> |
| <li> |
| |
| <a href="kudu_impala_integration.html">Using Impala with Kudu</a> |
| </li> |
| <li> |
| |
| <a href="administration.html">Administering Kudu</a> |
| </li> |
| <li> |
| |
| <a href="troubleshooting.html">Troubleshooting Kudu</a> |
| </li> |
| <li> |
| |
| <a href="developing.html">Developing Applications with Kudu</a> |
| </li> |
| <li> |
| |
| <a href="schema_design.html">Kudu Schema Design</a> |
| </li> |
| <li> |
| |
| <a href="security.html">Kudu Security</a> |
| </li> |
| <li> |
| |
| <a href="transaction_semantics.html">Kudu Transaction Semantics</a> |
| </li> |
| <li> |
| |
| <a href="background_tasks.html">Background Maintenance Tasks</a> |
| </li> |
| <li> |
| |
| <a href="configuration_reference.html">Kudu Configuration Reference</a> |
| </li> |
| <li> |
| |
| <a href="command_line_tools_reference.html">Kudu Command Line Tools Reference</a> |
| </li> |
| <li> |
| |
| <a href="known_issues.html">Known Issues and Limitations</a> |
| </li> |
| <li> |
| |
| <a href="contributing.html">Contributing to Kudu</a> |
| </li> |
| <li> |
| |
| <a href="export_control.html">Export Control Notice</a> |
| </li> |
| </ul> |
| </div> |
| </div> |
| </div> |
| </div> |