blob: 9b1725a0f7b5babaa40985a0e0562c24194aca43 [file] [log] [blame]
<!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 - Apache Kudu 1.14.0 Release Notes</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>Apache Kudu 1.14.0 Release Notes</h1>
<div class="sect1">
<h2 id="rn_1.14.0_upgrade_notes"><a class="link" href="#rn_1.14.0_upgrade_notes">Upgrade Notes</a></h2>
<div class="sectionbody">
</div>
</div>
<div class="sect1">
<h2 id="rn_1.14.0_obsoletions"><a class="link" href="#rn_1.14.0_obsoletions">Obsoletions</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Support for CentOS 6/RHEL 6, Ubuntu 14, Ubuntu 16, and Debian 8 platforms has been dropped
given they are at or near end-of-life. We will no longer validate these platforms as a
part of the release process, though patches will still be accepted going forward.</p>
</li>
<li>
<p>Developer support for OS X 10.10 Yosemite, OS X 10.11 El Capitan, and OS X 10.12 Sierra
has been dropped. We will no longer validate these versions as a part of the release
process, though patches will still be accepted going forward.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.14.0_deprecations"><a class="link" href="#rn_1.14.0_deprecations">Deprecations</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Support for Python 2.x and Python 3.4 and earlier is deprecated and may be
removed in the next minor release.</p>
</li>
<li>
<p>The <code>kudu-mapreduce</code> integration has been deprecated and may be removed in the
next minor release. Similar functionality and capabilities now exist via the
Apache Spark, Apache Hive, Apache Impala, and Apache NiFi integrations.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.14.0_new_features"><a class="link" href="#rn_1.14.0_new_features">New features</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Full support for <code>INSERT_IGNORE</code>, <code>UPDATE_IGNORE</code>, and <code>DELETE_IGNORE</code> operations
was added. The <code>INSERT_IGNORE</code> operation will insert a row if one matching the key
does not exist and ignore the operation if one already exists. The <code>UPDATE_IGNORE</code>
operation will update the row if one matching the key exists and ignore the operation
if one does not exist. The <code>DELETE_IGNORE</code> operation will delete the row if one matching
the key exists and ignore the operation if one does not exist. These operations are
particularly useful in situations where retries or duplicate operations could occur and
you do not want to handle the errors that could result manually or you do not want to cause
unnecessary writes and compaction work as a result of using the <code>UPSERT</code> operation.
The Java client can check if the cluster it is communicating with supports these operations
by calling the <code>supportsIgnoreOperations()</code> method on the KuduClient. See
<a href="https://issues.apache.org/jira/browse/KUDU-1563">KUDU-1563</a> for more details.</p>
</li>
<li>
<p>Spark 3 compatible JARs compiled for Scala 2.12 are now published for the Kudu Spark integration.
See <a href="https://issues.apache.org/jira/browse/KUDU-3202">KUDU-3202</a> for more details.</p>
</li>
<li>
<p>Every Kudu cluster now has an automatically generated cluster Id that can be used to uniquely
identify a cluster. The cluster Id is shown in the masters web-UI, the <code>kudu master list</code> tool,
and in master server logs. See <a href="https://issues.apache.org/jira/browse/KUDU-2574">KUDU-2574</a>
for more details.</p>
</li>
<li>
<p>It is now possible to enforce that OpenSSL is initialized in FIPS approved mode in the servers
and the C++ client by setting the KUDU_REQUIRE_FIPS_MODE environment variable to “1”, “yes” or
“true”. See <a href="https://issues.apache.org/jira/browse/KUDU-3210">KUDU-3210</a> for more details.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.14.0_improvements"><a class="link" href="#rn_1.14.0_improvements">Optimizations and improvements</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Downloading the WAL data and data blocks when copying tablets to another tablet server is now
parallelized, resulting in much faster tablet copy operations. These operations occur when
recovering from a down tablet server or when running the cluster rebalancer. See
<a href="https://issues.apache.org/jira/browse/KUDU-1728">KUDU-1728</a> and
<a href="https://issues.apache.org/jira/browse/KUDU-3214">KUDU-3214</a> for more details.</p>
</li>
<li>
<p>The HMS integration now supports multiple Kudu clusters associated with a single HMS
including Kudu clusters that do not have HMS synchronization enabled. This is possible,
because the Kudu master will now leverage the cluster Id to ignore notifications from
tables in a different cluster. Additionally, the HMS plugin will check if the Kudu cluster
associated with a table has HMS synchronization enabled.
See <a href="https://issues.apache.org/jira/browse/KUDU-3192">KUDU-3192</a> and
<a href="https://issues.apache.org/jira/browse/KUDU-3187">KUDU-3187</a> for more details.</p>
</li>
<li>
<p>The HMS integration now supports gzipped HMS notifications. This is important in order to
support Hive 4 where the default encoder was changed to be the GzipJSONMessageEncoder. See
<a href="https://issues.apache.org/jira/browse/KUDU-3201">KUDU-3201</a> for more details.</p>
</li>
<li>
<p>Kudu will now fail tablet replicas that have been corrupted due to KUDU-2233 instead of
crashing the tablet server. If a healthy majority still exists, a new replica will be created
and the failed replica will be evicted and deleted. See
<a href="https://issues.apache.org/jira/browse/KUDU-3191">KUDU-3191</a> and
<a href="https://issues.apache.org/jira/browse/KUDU-2233">KUDU-2233</a> for more details.</p>
</li>
<li>
<p>DeltaMemStores will now be flushed as long as any DMS in a tablet is older than the point
defined by <code>--flush_threshold_secs</code>, rather than flushing once every <code>--flush_threshold_secs</code>
period. This can reduce memory pressure under update- or delete-heavy workloads, and lower tablet
server restart times following such workloads. See
<a href="https://issues.apache.org/jira/browse/KUDU-3195">KUDU-3195</a> for more details.</p>
</li>
<li>
<p>The <code>kudu perf loadgen</code> CLI tool now supports <code>UPSERT</code> for storing the generated data into
the table. To switch to <code>UPSERT</code> for row operations (instead of default <code>INSERT</code>), add the
<code>--use_upsert</code> command-line flag.</p>
</li>
<li>
<p>Users can now specify the level of parallelization when copying a tablet using the
<code>kudu local_replica copy_from_remote</code> CLI tool by passing the
<code>--tablet_copy_download_threads_nums_per_session</code> argument.</p>
</li>
<li>
<p>The Kudu Masters now discriminate between overlapped and exact duplicate key ranges when adding
new partitions, returning <code>Status::AlreadyPresent()</code> for exact range duplicates and
<code>Status::InvalidArgument()</code> for otherwise overlapped ones. In prior releases, the master
returned <code>Status::InvalidArgument()</code> both in case of duplicate and otherwise overlapped ranges.</p>
</li>
<li>
<p>The handling of an empty list of master addresses in Kudu C++ client has improved. In prior
releases, <code>KuduClientBuilder::Build()</code> would hang in <code>ConnectToCluster()</code> if no master addresses
were provided. Now, <code>KuduClientBuilder::Build()</code> instantly returns <code>Status::InvalidArgument()</code>
in such a case.</p>
</li>
<li>
<p>The connection negotiation timeout for Kudu C client is now programmatically configurable.
To customize the connection negotiation timeout, use the newly introduced
`KuduClientBuilder::connection_negotiation_timeout()` method in the Kudu C client API.</p>
</li>
<li>
<p>All RPC-related <code>kudu</code> CLI tools now have <code>--negotiation_timeout_ms</code> command line flag to
control the client-side connection negotiation timeout. The default value for the new flag is
set to 3000 milliseconds for backward compatibility. Keep in mind that the total RPC timeout
includes the connection negotiation time, so in general it makes sense to bump <code>--timeout_ms</code>
along with <code>--negotiation_timeout_ms</code> by the same delta.</p>
</li>
<li>
<p>Kudu now reports on slow SASL calls (i.e. calls taking more than 250 milliseconds to complete)
when connecting to a server. This is to help diagnose issues like described in
<a href="https://issues.apache.org/jira/browse/KUDU-3217">KUDU-3217</a>.</p>
</li>
<li>
<p>MaintenanceManager now has a new histogram-based <code>maintenance_op_find_best_candidate_duration</code>
metric to capture the stats on how long it takes (in microseconds) to find the best maintenance
operation among available candidates. The newly introduced metric can help in diagnosing
conditions where MaintenanceManager seems lagging behind the rate of write operations in a busy
Kudu cluster with many replicas per tablet server.</p>
</li>
<li>
<p>The KuduScanToken Java API has been extended with a <code>deserializeIntoScannerBuilder()</code> method that
can be used to further customize generated tokens.</p>
</li>
<li>
<p>Logging of the error message produced when applying an op while a Java KuduSession is closed
has been throttled. See
<a href="https://issues.apache.org/jira/browse/KUDU-3012">KUDU-3012</a> for more details.</p>
</li>
<li>
<p>Added a new <code>uptime</code> metric for a Kudu server. The metric&#8217;s value is reported as the length of
the time interval passed from the start of the server, in microseconds. Knowing the server&#8217;s
uptime, it&#8217;s easier to interpret and compare metrics reported by different Kudu servers.</p>
</li>
<li>
<p>Documentation for Kudu’s metrics are now automatically generated for each release and can be seen
<a href="https://kudu.apache.org/docs/metrics_reference.html">here</a>.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.14.0_fixed_issues"><a class="link" href="#rn_1.14.0_fixed_issues">Fixed Issues</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Fixed lock contention between MaintenanceManager op registration and the scheduling of new
maintenance ops. On particularly dense tablet servers, this contention was previously shown to
significantly slow down startup times. See
<a href="https://issues.apache.org/jira/browse/KUDU-3149">KUDU-3149</a> for more details.</p>
</li>
<li>
<p>Fixed lock contention between MaintenanceManager’s threads performing already scheduled
operations and the scheduler thread itself. This benefits clusters with heavy ingest/update
workloads that have many replicas per tablet server. See
<a href="https://issues.apache.org/jira/browse/KUDU-1954">KUDU-1954</a> for more details.</p>
</li>
<li>
<p>Fixed a bug in the merge iterator that could result in a crash. This could surface as a crash
when performing ordered or differential scans, particularly when the underlying data contained
deletes and reinserts. See
<a href="https://issues.apache.org/jira/browse/KUDU-3108">KUDU-3108</a> for more details.</p>
</li>
<li>
<p>Fixed a heap-use-after-free bug in Kudu C++ client that might manifest itself when altering a
table to update the partitioning schema. See
<a href="https://issues.apache.org/jira/browse/KUDU-3238">KUDU-3238</a> for more details.</p>
</li>
<li>
<p>Fixed a bug where building scan tokens would result in a NullPointerException if a tablet not
found error occurred before generating the token. See
<a href="https://issues.apache.org/jira/browse/KUDU-3205">KUDU-3205</a> for more details.</p>
</li>
<li>
<p>Fixed a bug where a delete operation would fail if the row being deleted contained exactly
64 columns and all values were set on the row. See
<a href="https://issues.apache.org/jira/browse/KUDU-3198">KUDU-3198</a> for more details.</p>
</li>
<li>
<p>Fixed a bug where Slf4j classes were shaded into the Spark integration JARs. See
<a href="https://issues.apache.org/jira/browse/KUDU-3157">KUDU-3157</a> for more details.</p>
</li>
<li>
<p>Fixed a bug where the 'kudu hms fix' tool mistakenly reports non-matching master addresses
when the addresses are in-fact canonically the same. See
<a href="https://issues.apache.org/jira/browse/KUDU-2884">KUDU-2884</a> for more details.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.14.0_wire_compatibility"><a class="link" href="#rn_1.14.0_wire_compatibility">Wire Protocol compatibility</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Kudu 1.14.0 is wire-compatible with previous versions of Kudu:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Kudu 1.14 clients may connect to servers running Kudu 1.0 or later. If the client uses
features that are not available on the target server, an error will be returned.</p>
</li>
<li>
<p>Rolling upgrade between Kudu 1.13 and Kudu 1.14 servers is believed to be possible
though has not been sufficiently tested. Users are encouraged to shut down all nodes
in the cluster, upgrade the software, and then restart the daemons on the new version.</p>
</li>
<li>
<p>Kudu 1.0 clients may connect to servers running Kudu 1.14 with the exception of the
below-mentioned restrictions regarding secure clusters.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The authentication features introduced in Kudu 1.3 place the following limitations
on wire compatibility between Kudu 1.14 and versions earlier than 1.3:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>If a Kudu 1.14 cluster is configured with authentication or encryption set to "required",
clients older than Kudu 1.3 will be unable to connect.</p>
</li>
<li>
<p>If a Kudu 1.14 cluster is configured with authentication and encryption set to "optional"
or "disabled", older clients will still be able to connect.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.14.0_incompatible_changes"><a class="link" href="#rn_1.14.0_incompatible_changes">Incompatible Changes in Kudu 1.14.0</a></h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="rn_1.14.0_client_compatibility"><a class="link" href="#rn_1.14.0_client_compatibility">Client Library Compatibility</a></h3>
<div class="ulist">
<ul>
<li>
<p>The Kudu 1.14 Java client library is API- and ABI-compatible with Kudu 1.13. Applications
written against Kudu 1.13 will compile and run against the Kudu 1.14 client library and
vice-versa.</p>
</li>
<li>
<p>The Kudu 1.14 C&#43;&#43; client is API- and ABI-forward-compatible with Kudu 1.13.
Applications written and compiled against the Kudu 1.13 client library will run without
modification against the Kudu 1.14 client library. Applications written and compiled
against the Kudu 1.14 client library will run without modification against the Kudu 1.13
client library.</p>
</li>
<li>
<p>The Kudu 1.14 Python client is API-compatible with Kudu 1.13. Applications
written against Kudu 1.13 will continue to run against the Kudu 1.14 client
and vice-versa.</p>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.14.0_known_issues"><a class="link" href="#rn_1.14.0_known_issues">Known Issues and Limitations</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Please refer to the <a href="known_issues.html">Known Issues and Limitations</a> section of the
documentation.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.14.0_contributors"><a class="link" href="#rn_1.14.0_contributors">Contributors</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Kudu 1.14.0 includes contributions from 12 people, including 1 first-time
contributors:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>liguohao</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Thank you for your contributions!</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="resources_and_next_steps"><a class="link" href="#resources_and_next_steps">Resources</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p><a href="http://kudu.apache.org">Kudu Website</a></p>
</li>
<li>
<p><a href="http://github.com/apache/kudu">Kudu GitHub Repository</a></p>
</li>
<li>
<p><a href="index.html">Kudu Documentation</a></p>
</li>
<li>
<p><a href="prior_release_notes.html">Release notes for older releases</a></p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_installation_options"><a class="link" href="#_installation_options">Installation Options</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>For full installation details, see <a href="installation.html">Kudu Installation</a>.</p>
</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">Kudu Quickstart</a></p>
</li>
<li>
<p><a href="installation.html">Installing Kudu</a></p>
</li>
<li>
<p><a href="configuration.html">Configuring 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>
<span class="active-toc">Kudu Release Notes</span>
<ul class="sectlevel1">
<li><a href="#rn_1.14.0_upgrade_notes">Upgrade Notes</a></li>
<li><a href="#rn_1.14.0_obsoletions">Obsoletions</a></li>
<li><a href="#rn_1.14.0_deprecations">Deprecations</a></li>
<li><a href="#rn_1.14.0_new_features">New features</a></li>
<li><a href="#rn_1.14.0_improvements">Optimizations and improvements</a></li>
<li><a href="#rn_1.14.0_fixed_issues">Fixed Issues</a></li>
<li><a href="#rn_1.14.0_wire_compatibility">Wire Protocol compatibility</a></li>
<li><a href="#rn_1.14.0_incompatible_changes">Incompatible Changes in Kudu 1.14.0</a>
<ul class="sectlevel2">
<li><a href="#rn_1.14.0_client_compatibility">Client Library Compatibility</a></li>
</ul>
</li>
<li><a href="#rn_1.14.0_known_issues">Known Issues and Limitations</a></li>
<li><a href="#rn_1.14.0_contributors">Contributors</a></li>
<li><a href="#resources_and_next_steps">Resources</a></li>
<li><a href="#_installation_options">Installation Options</a></li>
<li><a href="#_next_steps">Next Steps</a></li>
</ul>
</li>
<li>
<a href="quickstart.html">Quickstart Guide</a>
</li>
<li>
<a href="installation.html">Installation Guide</a>
</li>
<li>
<a href="configuration.html">Configuring Kudu</a>
</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 &copy; 2023 The Apache Software Foundation. Last updated 2021-01-28 08:16:24 -0800
</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>