| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="utf-8" /> |
| <meta http-equiv="X-UA-Compatible" content="IE=edge" /> |
| <meta name="viewport" content="width=device-width, initial-scale=1" /> |
| <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags --> |
| <meta name="description" content="A new open source Apache Hadoop ecosystem project, Apache Kudu completes Hadoop's storage layer to enable fast analytics on fast data" /> |
| <meta name="author" content="Cloudera" /> |
| <title>Apache Kudu - Configuring Apache Kudu</title> |
| <!-- Bootstrap core CSS --> |
| <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" |
| integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" |
| crossorigin="anonymous"> |
| |
| <!-- Custom styles for this template --> |
| <link href="/css/kudu.css" rel="stylesheet"/> |
| <link href="/css/asciidoc.css" rel="stylesheet"/> |
| <link rel="shortcut icon" href="/img/logo-favicon.ico" /> |
| <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.1/css/font-awesome.min.css" /> |
| |
| |
| |
| <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> |
| <!--[if lt IE 9]> |
| <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> |
| <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> |
| <![endif]--> |
| </head> |
| <body> |
| <div class="kudu-site container-fluid"> |
| <!-- Static navbar --> |
| <nav class="navbar navbar-default"> |
| <div class="container-fluid"> |
| <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="logo" href="/"><img |
| src="//d3dr9sfxru4sde.cloudfront.net/i/k/apachekudu_logo_0716_80px.png" |
| srcset="//d3dr9sfxru4sde.cloudfront.net/i/k/apachekudu_logo_0716_80px.png 1x, //d3dr9sfxru4sde.cloudfront.net/i/k/apachekudu_logo_0716_160px.png 2x" |
| alt="Apache Kudu"/></a> |
| |
| </div> |
| <div id="navbar" class="collapse navbar-collapse"> |
| <ul class="nav navbar-nav navbar-right"> |
| <li > |
| <a href="/">Home</a> |
| </li> |
| <li > |
| <a href="/overview.html">Overview</a> |
| </li> |
| <li class="active"> |
| <a href="/docs/">Documentation</a> |
| </li> |
| <li > |
| <a href="/releases/">Releases</a> |
| </li> |
| <li > |
| <a href="/blog/">Blog</a> |
| </li> |
| <!-- NOTE: this dropdown menu does not appear on Mobile, so don't add anything here |
| that doesn't also appear elsewhere on the site. --> |
| <li class="dropdown"> |
| <a href="/community.html" role="button" aria-haspopup="true" aria-expanded="false">Community <span class="caret"></span></a> |
| <ul class="dropdown-menu"> |
| <li class="dropdown-header">GET IN TOUCH</li> |
| <li><a class="icon email" href="/community.html">Mailing Lists</a></li> |
| <li><a class="icon slack" href="https://join.slack.com/t/getkudu/shared_invite/zt-244b4zvki-hB1q9IbAk6CqHNMZHvUALA">Slack Channel</a></li> |
| <li role="separator" class="divider"></li> |
| <li><a href="/community.html#meetups-user-groups-and-conference-presentations">Events and Meetups</a></li> |
| <li><a href="/committers.html">Project Committers</a></li> |
| <li><a href="/ecosystem.html">Ecosystem</a></li> |
| <!--<li><a href="/roadmap.html">Roadmap</a></li>--> |
| <li><a href="/community.html#contributions">How to Contribute</a></li> |
| <li role="separator" class="divider"></li> |
| <li class="dropdown-header">DEVELOPER RESOURCES</li> |
| <li><a class="icon github" href="https://github.com/apache/incubator-kudu">GitHub</a></li> |
| <li><a class="icon gerrit" href="http://gerrit.cloudera.org:8080/#/q/status:open+project:kudu">Gerrit Code Review</a></li> |
| <li><a class="icon jira" href="https://issues.apache.org/jira/browse/KUDU">JIRA Issue Tracker</a></li> |
| <li role="separator" class="divider"></li> |
| <li class="dropdown-header">SOCIAL MEDIA</li> |
| <li><a class="icon twitter" href="https://twitter.com/ApacheKudu">Twitter</a></li> |
| <li><a href="https://www.reddit.com/r/kudu/">Reddit</a></li> |
| <li role="separator" class="divider"></li> |
| <li class="dropdown-header">APACHE SOFTWARE FOUNDATION</li> |
| <li><a href="https://www.apache.org/security/" target="_blank">Security</a></li> |
| <li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank">Sponsorship</a></li> |
| <li><a href="https://www.apache.org/foundation/thanks.html" target="_blank">Thanks</a></li> |
| <li><a href="https://www.apache.org/licenses/" target="_blank">License</a></li> |
| </ul> |
| </li> |
| <li > |
| <a href="/faq.html">FAQ</a> |
| </li> |
| </ul><!-- /.nav --> |
| </div><!-- /#navbar --> |
| </div><!-- /.container-fluid --> |
| </nav> |
| |
| <!-- |
| |
| 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"> |
| This document applies to Apache Kudu version 1.16.0. Please consult the |
| <a href="http://kudu.apache.org/releases/">documentation of the appropriate release</a> that’s applicable |
| to the version of the Kudu cluster. |
| </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="clock_and_time_source"><a class="link" href="#clock_and_time_source">Configuring Clock and Time Source</a></h3> |
| <div class="paragraph"> |
| <p>Kudu relies on timestamps generated by its clock implementation for the MVCC |
| and for providing consistency guarantees when processing write and read |
| requests. Aside from the test-only mock clock, Kudu has two different clock |
| implementations: one is based on logical time and the other is based on |
| so-called hybrid time. The former is a plain Lamport clock, the latter |
| is a combination of the node’s system clock and a Lamport clock. Below, |
| the former is referred to as <code>LogicalClock</code> and the latter as <code>HybridClock</code>.</p> |
| </div> |
| <div class="paragraph"> |
| <p>Using the <code>HybridClock</code> implementation is a must for any production-grade, POC, |
| and other regular Kudu deployments: that’s why <code>--use_hybrid_clock</code> is set |
| <code>true</code> by default. Setting the flag to <code>false</code> makes Kudu servers use the |
| <code>LogicalClock</code> implementation: running with such a clock implementation is |
| acceptable only in the context of running specifically crafted test scenarios |
| in Kudu development environment.</p> |
| </div> |
| <div class="admonitionblock warning"> |
| <table> |
| <tr> |
| <td class="icon"> |
| <i class="fa icon-warning" title="Warning"></i> |
| </td> |
| <td class="content"> |
| Setting <code>--use_hybrid_clock=false</code> is strongly discouraged in any |
| production-grade deployment since that could introduce out-of-control latency |
| and not-quite-expected behavior, especially when working with multiple tables |
| in a multi-node Kudu cluster. |
| </td> |
| </tr> |
| </table> |
| </div> |
| <div class="paragraph"> |
| <p>To provide better accuracy for multi-node cluster deployments where each node |
| maintains its own system clock, the <code>HybridClock</code> implementation requires each |
| node’s system clock to be synchronized by NTP.</p> |
| </div> |
| <div class="admonitionblock note"> |
| <table> |
| <tr> |
| <td class="icon"> |
| <i class="fa icon-note" title="Note"></i> |
| </td> |
| <td class="content"> |
| Setting <code>--time_source=system_unsync</code> removes the requirement for the |
| node’s system clock to be synchronized by NTP — this allows users to run test |
| clusters on a single node where there is only one clock used by all Kudu |
| servers. Setting <code>--time_source=system_unsync</code> is strongly discouraged in any |
| multi-node Kudu cluster, unless system clocks of all Kudu nodes are guaranteed |
| to always be synchronized with each other. |
| </td> |
| </tr> |
| </table> |
| </div> |
| <div class="paragraph"> |
| <p>For Kudu masters and tablet servers, there are two options to make the |
| <code>HybridClock</code> implementation use a clock synchronized by NTP:</p> |
| </div> |
| <div class="ulist"> |
| <ul> |
| <li> |
| <p>Ensure that the system clock of the Kudu node is synchronized with reference |
| servers using an NTP daemon running on the node. Usually, the NTP daemon is |
| a part of the node’s OS distribution. As of Kudu 1.12.0 and newer, both |
| <code>ntpd</code> and <code>chronyd</code> are supported. Prior Kudu versions were tested only |
| with <code>ntpd</code>, but might work just fine with <code>chronyd</code> as well if <code>chronyd</code> is |
| configured as recommended by the |
| <a href="troubleshooting.html#chronyd">chronyd configuration tips for Kudu</a>.</p> |
| </li> |
| <li> |
| <p>Make Kudu servers maintain their own local clock, synchronizing it with |
| reference NTP servers. For that, Kudu servers use their built-in NTP client. |
| This option is available in Kudu 1.11.0 and newer versions.</p> |
| </li> |
| </ul> |
| </div> |
| <div class="paragraph"> |
| <p>The latter option is provided as a last resort for deployments where properly |
| configuring NTP daemons at every node of a Kudu cluster is not feasible for |
| some reason and to simplify Kudu deployments in public cloud environments such |
| as EC2 and GCP. For on-prem deployments, it’s still recommended to use the |
| former option since the current implementation of the Kudu built-in NTP client |
| might not be as robust as the battle-tested <code>ntpd</code> and <code>chronyd</code> system |
| NTP daemons.</p> |
| </div> |
| <div class="paragraph"> |
| <p>To switch between these two options above, use the <code>--time_source</code> flag:</p> |
| </div> |
| <div class="ulist"> |
| <ul> |
| <li> |
| <p>Setting <code>--time_source=system</code> makes the <code>HybridClock</code> rely on the node’s |
| system clock.</p> |
| </li> |
| <li> |
| <p>Setting <code>--time_source=builtin</code> turns on the built-in NTP client in |
| Kudu masters and tablet servers. Use the <code>--builtin_ntp_servers</code> flag to |
| customize the set of reference NTP servers for the built-in NTP client: the |
| value is expected to be a comma-separated list.</p> |
| </li> |
| </ul> |
| </div> |
| <div class="admonitionblock note"> |
| <table> |
| <tr> |
| <td class="icon"> |
| <i class="fa icon-note" title="Note"></i> |
| </td> |
| <td class="content"> |
| The default setting for the <code>--builtin_ntp_servers</code> flag might require |
| access to the NTP servers hosted by the |
| <a href="https://www.ntppool.org/">NTP Pool Project</a>. |
| </td> |
| </tr> |
| </table> |
| </div> |
| <div class="paragraph"> |
| <p>If deploying a Kudu cluster in AWS/EC2 or GCE/GCP public clouds, it might make |
| sense to set <code>--time_source=auto</code> for all Kudu masters and tablet servers in |
| the cluster. In this context, setting <code>--time_source=auto</code> leads to the |
| following:</p> |
| </div> |
| <div class="ulist"> |
| <ul> |
| <li> |
| <p>Upon every start, a Kudu server runs the auto-detection procedure to |
| determine the type of the cloud environment it runs at.</p> |
| </li> |
| <li> |
| <p>If the procedure of the cloud type auto-detection completes successfully, |
| the Kudu server starts using its built-in NTP client to synchronize with the |
| NTP server provided by the cloud environment (see the appropriate |
| documentation for |
| <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/set-time.html">EC2</a> |
| and <a href="https://cloud.google.com/compute/docs/instances/configure-ntp">GCP</a> |
| correspondingly).</p> |
| </li> |
| </ul> |
| </div> |
| <div class="admonitionblock note"> |
| <table> |
| <tr> |
| <td class="icon"> |
| <i class="fa icon-note" title="Note"></i> |
| </td> |
| <td class="content"> |
| Running a Kudu server with <code>--time_source=auto</code> in cloud environments |
| other than EC2 and GCP, or when the cloud type auto-detection fails, makes |
| the Kudu server fall back to using the built-in NTP client with the list |
| of NTP servers as specified by the <code>--builtin_ntp_servers</code> flag, unless it’s |
| empty or otherwise unparsable. When <code>--builtin_ntp_servers</code> is set to an empty |
| list and the cloud type auto-detection fails, the Kudu server runs as if it |
| were configured with the <code>system</code> time source if the OS/platform supports the |
| <code>get_ntptime()</code> API. Finally, the catch-all case is <code>system_unsync</code> for the |
| time source. As already mentioned, the <code>system_unsync</code> time source is targeted |
| for development-only platforms or single-node-runs-it-all proof-of-concept |
| Kudu clusters. |
| </td> |
| </tr> |
| </table> |
| </div> |
| <div class="paragraph"> |
| <p>The <code>kudu cluster ksck</code> CLI utility reports the configured and the effective |
| time source for every Kudu master and tablet server in a cluster. The list of |
| the NTP servers for the built-in client is reported as well when the effective |
| time source is <code>builtin</code>. The utility is also able to show the difference in |
| settings of the related time source flags and warn operators if a discrepancy |
| is detected. In addition, the information on the configured and effective time |
| source is reported by the embedded Web server in the <code>Time Source</code> panel at |
| the <code>/config</code> page.</p> |
| </div> |
| <div class="admonitionblock note"> |
| <table> |
| <tr> |
| <td class="icon"> |
| <i class="fa icon-note" title="Note"></i> |
| </td> |
| <td class="content"> |
| Changing the value of the <code>--time_source</code> flag implies restarting a Kudu |
| server. Keep the time source the same for all master and tablet servers in |
| a Kudu cluster. If using the built-in NTP Kudu client, make sure to use |
| the same list of reference NTP servers for every Kudu server in a cluster. |
| </td> |
| </tr> |
| </table> |
| </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. The <code>--fs_metadata_dir</code> configuration indicates where Kudu will place |
| metadata for each tablet. It is recommended, although not necessary, that these |
| directories be placed on a high-performance drives with high bandwidth and low |
| latency, e.g. solid-state drives. If <code>--fs_metadata_dir</code> is not specified, |
| metadata will be placed in the directory specified by <code>--fs_wal_dir</code>. Since |
| a Kudu node cannot tolerate the loss of its WAL or metadata directories, it |
| may be wise to mirror the drives containing these directories in order to |
| make recovering from a drive failure easier; however, mirroring may increase |
| the latency of Kudu writes.</p> |
| </div> |
| <div class="paragraph"> |
| <p>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 values are |
| specified, data will be striped across the directories. If not specified, data |
| blocks will be placed in the directory specified by <code>--fs_wal_dir</code>. Note that |
| while a single data directory backed by a RAID-0 array will outperform a single |
| data directory backed by a single storage device, it is better to let Kudu |
| manage its own striping over multiple devices rather than delegating the |
| striping to a RAID-0 array.</p> |
| </div> |
| <div class="paragraph"> |
| <p>Additionally, <code>--fs_wal_dir</code> and <code>--fs_metadata_dir</code> may be the same as <em>one |
| of</em> the directories listed in <code>--fs_data_dirs</code>, but must not be sub-directories |
| 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"> |
| Each directory specified by a configuration flag on a given machine |
| should be used by at most one Kudu process. If multiple Kudu processes on the |
| same machine are configured to use the same directory, Kudu may refuse to start |
| up. |
| </td> |
| </tr> |
| </table> |
| </div> |
| <div class="admonitionblock warning"> |
| <table> |
| <tr> |
| <td class="icon"> |
| <i class="fa icon-warning" title="Warning"></i> |
| </td> |
| <td class="content"> |
| Once <code>--fs_data_dirs</code> is set, extra tooling is required to change it. |
| For more details, see the <a href="administration.html#change_dir_config">Kudu |
| Administration docs</a>. |
| </td> |
| </tr> |
| </table> |
| </div> |
| <div class="admonitionblock note"> |
| <table> |
| <tr> |
| <td class="icon"> |
| <i class="fa icon-note" title="Note"></i> |
| </td> |
| <td class="content"> |
| The <code>--fs_wal_dir</code> and <code>--fs_metadata_dir</code> configurations can be changed, |
| provided the contents of the directories are also moved to match the flags. |
| </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 stretch"> |
| <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_metadata_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 tablet metadata.</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#kudu-master_supported">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 stretch"> |
| <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_metadata_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 tablet metadata.</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#kudu-tserver_supported">Kudu Tablet Server Configuration Reference</a>.</p> |
| </div> |
| </div> |
| </div> |
| </div> |
| <div class="sect1"> |
| <h2 id="_configure_kudu_tables"><a class="link" href="#_configure_kudu_tables">Configure Kudu Tables</a></h2> |
| <div class="sectionbody"> |
| <div class="paragraph"> |
| <p>Kudu allows certain configurations to be set per table. To configure the behavior of a Kudu table, |
| you can set these configurations at table creation, or alter them via the Kudu API or Kudu command |
| line tool.</p> |
| </div> |
| <table class="tableblock frame-all grid-all stretch"> |
| <caption class="title">Table 3. Supported Configurable Properties for Kudu Tables</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">Configuration</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">kudu.table.history_max_age_sec</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">integer</p></td> |
| <td class="tableblock halign-left valign-top"></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Number of seconds to retain history for tablets in this table.</p></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">kudu.table.maintenance_priority</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">0</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Priority level of a table for maintenance.</p></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">kudu.table.disable_compaction</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">false, true</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Whether to disable data compaction maintenance tasks for all tablets of this table.</p></td> |
| </tr> |
| </tbody> |
| </table> |
| </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">Quickstart Guide</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="#clock_and_time_source">Configuring Clock and Time Source</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="#_configure_kudu_tables">Configure Kudu Tables</a></li> |
| <li><a href="#_next_steps">Next Steps</a></li> |
| </ul> |
| </li> |
| <li> |
| |
| <a href="hive_metastore.html">Using the Hive Metastore with Kudu</a> |
| </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="scaling_guide.html">Kudu Scaling Guide</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="metrics_reference.html">Kudu Metrics 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> |
| <footer class="footer"> |
| <div class="row"> |
| <div class="col-md-9"> |
| <p class="small"> |
| Copyright © 2023 The Apache Software Foundation. Last updated 2022-02-10 19:45:07 +0100 |
| </p> |
| <p class="small"> |
| Apache Kudu, Kudu, Apache, the Apache feather logo, and the Apache Kudu |
| project logo are either registered trademarks or trademarks of The |
| Apache Software Foundation in the United States and other countries. |
| </p> |
| </div> |
| <div class="col-md-3"> |
| <a class="pull-right" href="https://www.apache.org/events/current-event.html"> |
| <img src="https://www.apache.org/events/current-event-234x60.png"/> |
| </a> |
| </div> |
| </div> |
| </footer> |
| </div> |
| <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> |
| <script> |
| // Try to detect touch-screen devices. Note: Many laptops have touch screens. |
| $(document).ready(function() { |
| if ("ontouchstart" in document.documentElement) { |
| $(document.documentElement).addClass("touch"); |
| } else { |
| $(document.documentElement).addClass("no-touch"); |
| } |
| }); |
| </script> |
| <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" |
| integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" |
| crossorigin="anonymous"></script> |
| <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','//www.google-analytics.com/analytics.js','ga'); |
| |
| ga('create', 'UA-68448017-1', 'auto'); |
| ga('send', 'pageview'); |
| </script> |
| <script src="https://cdnjs.cloudflare.com/ajax/libs/anchor-js/3.1.0/anchor.js"></script> |
| <script> |
| anchors.options = { |
| placement: 'right', |
| visible: 'touch', |
| }; |
| anchors.add(); |
| </script> |
| </body> |
| </html> |
| |