blob: fe54f9e4091b87efcbab1ac23b8d78698f5c791d [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.8.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://getkudu-slack.herokuapp.com/">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.8.0 Release Notes</h1>
<div class="sect1">
<h2 id="rn_1.8.0_upgrade_notes"><a class="link" href="#rn_1.8.0_upgrade_notes">Upgrade Notes</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Upgrading directly from Kudu 1.7.0 is supported and no special upgrade steps are
required. A rolling upgrade may work, however it has not been tested. When upgrading
Kudu, it is recommended to first shut down all Kudu processes across the cluster, then
upgrade the software on all servers, then restart the Kudu processes on all servers in
the cluster.</p>
</li>
<li>
<p>Kudu Flume Sink released with Kudu 1.8.0 is compiled against Apache Flume 1.8 and might
not function with earlier versions of Flume. Note that Flume 1.8 requires Java 1.8 or
higher.</p>
</li>
<li>
<p>Hadoop 3.0+ requires Java 8 at runtime even though the Kudu Hadoop integration is Java 7
compatible. Hadoop 3.1 is the default dependency version as of Kudu 1.8.0, used by
certain features in the Java client.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.8.0_obsoletions"><a class="link" href="#rn_1.8.0_obsoletions">Obsoletions</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>The <code>-table_num_buckets</code> configuration option of the <code>kudu perf loadgen</code> tool is now
removed in favor of <code>-table_num_hash_partitions</code> and <code>-table_num_range_partitions</code>
(see <a href="https://issues.apache.org/jira/browse/KUDU-1861">KUDU-1861</a>).</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.8.0_deprecations"><a class="link" href="#rn_1.8.0_deprecations">Deprecations</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Support for Java 7 has been deprecated since Kudu 1.5.0 and may be removed in the next
major release.</p>
</li>
<li>
<p>The <code>producer.skipMissingColumn</code>, <code>producer.skipBadColumnValue</code>, and
<code>producer.warnUnmatchedRows</code> Kudu Flume sink configuration parameters have been
deprecated in favor of <code>producer.missingColumnPolicy</code>, <code>producer.badColumnValuePolicy</code>,
and <code>producer.unmatchedRowPolicy</code> respectively (see
<a href="https://issues.apache.org/jira/browse/KUDU-1882">KUDU-1882</a>).</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.8.0_new_features"><a class="link" href="#rn_1.8.0_new_features">New features</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Examples showcasing functionality in C++, Java, and Python, previously
hosted in a separate repository have been added. They can be found in the
<code><a href="https://github.com/apache/kudu/tree/master/examples">examples/</a></code>
top-level subdirectory.</p>
</li>
<li>
<p>Added <code>kudu diagnose parse_stacks</code>, a tool to parse sampled stack traces out of a
diagnostics log (see <a href="https://issues.apache.org/jira/browse/KUDU-2353">KUDU-2353</a>).</p>
</li>
<li>
<p>Added support for <code>IS NULL</code> and <code>IS NOT NULL</code> predicates to the Kudu Python client (see
<a href="https://issues.apache.org/jira/browse/KUDU-2399">KUDU-2399</a>).</p>
</li>
<li>
<p>Introduced <a href="administration.html#rebalancer_tool">manual data rebalancer</a> into the kudu
CLI tool. The rebalancer can be used to redistribute table replicas among tablet
servers. The rebalancer can be run via <code>kudu cluster rebalance</code> sub-command. Using the
new tool, it&#8217;s possible to rebalance Kudu clusters of version 1.4.0 and newer.</p>
</li>
<li>
<p>Added <code>kudu tserver get_flags</code> and <code>kudu master get_flags</code>, two tools that allow
superusers to retrieve all the values of command line flags from remote Kudu processes.
The <code>get_flags</code> tools support filtering the returned flags by tag, and by default will
return only flags that were explicitly set.</p>
</li>
<li>
<p>Added <code>kudu tablet unsafe_replace_tablet</code>, a tool to replace a tablet with a new one.
This tool is meant to be used to recover a table when one of its tablets has permanently
lost all replicas. The data in the tablet that is replaced is lost, so this tool should
only be used as a last resort (see
<a href="https://issues.apache.org/jira/browse/KUDU-2290">KUDU-2290</a>).</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.8.0_improvements"><a class="link" href="#rn_1.8.0_improvements">Optimizations and improvements</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>There is a new metric for each tablet replica tracking the number of election failures
since the last successful election attempt and the time since the last heartbeat from
the leader (see <a href="https://issues.apache.org/jira/browse/KUDU-2287">KUDU-2287</a>).</p>
</li>
<li>
<p>Kudu now supports building and running on Ubuntu 18.04 (“Bionic Beaver”) (see
<a href="https://issues.apache.org/jira/browse/KUDU-2427">KUDU-2427</a>).</p>
</li>
<li>
<p>Kudu now supports building and running against OpenSSL 1.1 (see
<a href="https://issues.apache.org/jira/browse/KUDU-1889">KUDU-1889</a>).</p>
</li>
<li>
<p>Added Kerberos support to the Kudu Flume sink (see
<a href="https://issues.apache.org/jira/browse/KUDU-2012">KUDU-2012</a>).</p>
</li>
<li>
<p>The Kudu Spark connector now supports Spark Streaming DataFrames (see
<a href="https://issues.apache.org/jira/browse/KUDU-2539">KUDU-2539</a>).</p>
</li>
<li>
<p>Added <code>-tables</code> filtering argument to <code>kudu table list</code> (see
<a href="https://issues.apache.org/jira/browse/KUDU-2529">KUDU-2529</a>).</p>
</li>
<li>
<p>Clients now support setting a limit on the number of returned rows in scans (see
<a href="https://issues.apache.org/jira/browse/KUDU-16">KUDU-16</a>).</p>
</li>
<li>
<p>Added Pandas support to the Python client (see
<a href="https://issues.apache.org/jira/browse/KUDU-1276">KUDU-1276</a>).</p>
</li>
<li>
<p>Enabled configuration of mutation buffer in the Python client (see
<a href="https://issues.apache.org/jira/browse/KUDU-2441">KUDU-2441</a>).</p>
</li>
<li>
<p>Added a <code>keepAlive</code> API call to the <code>KuduScanner</code> and <code>AsyncKuduScanner</code> in the Java
client. This API can be used to keep the scanners alive on the server when processing
of messages will take longer than the scanner TTL (see
<a href="https://issues.apache.org/jira/browse/KUDU-2095">KUDU-2095</a>).</p>
</li>
<li>
<p>The Kudu Spark integration now uses the keepAlive API when reading data. By default it
will call keepAlive on a scanner with a period of 15 seconds. This will ensure that
Spark jobs with large batch sizes or slow processing times do not fail with scanner not
found errors (see <a href="https://issues.apache.org/jira/browse/KUDU-2563">KUDU-2563</a>).</p>
</li>
<li>
<p>Number of reactor threads in the C++ client is now configurable (see
<a href="https://issues.apache.org/jira/browse/KUDU-2368">KUDU-2368</a>).</p>
</li>
<li>
<p>Added an optimization to reduce CPU consumption when performing hot metadata lookups in
the C++ client (see <a href="https://issues.apache.org/jira/browse/KUDU-1977">KUDU-1977</a>).</p>
</li>
<li>
<p>Added an optimization to avoid bottlenecks on <code>getpwuid_r()</code> in libnss during a Raft
leader election storm (see
<a href="https://issues.apache.org/jira/browse/KUDU-2395">KUDU-2395</a>).</p>
</li>
<li>
<p>Improved rowset tree pruning making scans with open-ended intervals on primary key (see
<a href="https://issues.apache.org/jira/browse/KUDU-2566">KUDU-2566</a>).</p>
</li>
<li>
<p>The <code>kudu perf loadgen</code> tool now supports generating range-partitioned tables. The
<code>-table_num_buckets</code> configuration is now removed in favor of
<code>-table_num_hash_partitions</code> and <code>-table_num_range_partitions</code> (see
<a href="https://issues.apache.org/jira/browse/KUDU-1861">KUDU-1861</a>).</p>
</li>
<li>
<p>CFile checksum failures will now cause the affected tablet replicas to be failed and
re-replicated elsewhere (see
<a href="https://issues.apache.org/jira/browse/KUDU-2469">KUDU-2469</a>).</p>
</li>
<li>
<p>Servers are now able to start up with data directories missing on disk (see
<a href="https://issues.apache.org/jira/browse/KUDU-2359">KUDU-2359</a>).</p>
</li>
<li>
<p>The <code>kudu perf loadgen</code> tool now creates tables with a period-separated database name,
for example <code>default.loadgen_auto_abc123</code>. This new behavior does not take effect if the
<code>--table</code> flag is provided. The database of the table can be changed using a new
<code>--auto_database</code> flag. This change is made in anticipation of an eventual Kudu/HMS
integration (see <a href="https://jira.apache.org/jira/browse/KUDU-2191">KUDU-2191</a>).</p>
</li>
<li>
<p>Introduced <code>FAILED_UNRECOVERABLE</code> replica health status. This is to mark replicas which
are not able to catch up with the leader due to GC-collected segments of WAL and other
unrecoverable cases like disk failure. With that, the replica management scheme becomes
hybrid: the system evicts replicas with <code>FAILED_UNRECOVERABLE</code> health status before
adding a replacement if it anticipates that it can commit the transaction, while in
other cases it first adds a non-voter replica and removes the failed one only after
promoting a newly added replica to voter role.</p>
</li>
<li>
<p>Two additional configuration parameters, <code>socketReadTimeoutMs</code> and <code>scanRequestTimeout</code>
have been added to the Spark connector to allow better tuning to avoid scan timeouts
under high load.</p>
</li>
<li>
<p>The <code>kudu table</code> tool now supports two new options to rename tables and columns,
<code>rename_table</code> and <code>rename_column</code> respectively.</p>
</li>
<li>
<p>Kudu will now wait for the clock to become synchronized at startup, controlled by a new
flag <code>-ntp_initial_sync_wait_secs</code> (see
<a href="https://issues.apache.org/jira/browse/KUDU-2242">KUDU-2242</a>).</p>
</li>
<li>
<p>Tablet deletions are now throttled, which will help Kudu clusters remain stable even
when many tablets are deleted at once. The number of tablets that a tablet server will
delete at once is controlled by the new flag <code>-num_tablets_to_delete_simultaneously</code>
(see <a href="https://issues.apache.org/jira/browse/KUDU-2289">KUDU-2289</a>).</p>
</li>
<li>
<p>The <code>kudu cluster ksck</code> tool has been significantly enhanced. It now checks master
health and consensus status, displays any unsafe or hidden flags set in the cluster, and
produces a summary of the Kudu versions running on the master and tablet servers. In
addition, it now supports JSON output, both in pretty-printed and compact form. The
output format is controlled by the <code>-ksck_format</code> flag.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.8.0_fixed_issues"><a class="link" href="#rn_1.8.0_fixed_issues">Fixed Issues</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>When a tablet server was wiped and recreated with the same RPC address, <code>ksck</code> listed it
twice, both as healthy, even though only one of them was there. This bug is now fixed by
verifying the UUID of the server (see
<a href="https://issues.apache.org/jira/browse/KUDU-2364">KUDU-2364</a>).</p>
</li>
<li>
<p>Fixed an issue preventing Kudu from starting when using Vormetric&#8217;s encrypted filesystem
(secfs2) on ext4 (see <a href="https://issues.apache.org/jira/browse/KUDU-2406">KUDU-2406</a>).</p>
</li>
<li>
<p>Fixed an issue where Kudu&#8217;s block cache memory tracking (as seen on the <code>/mem-trackers</code>
web UI page) wasn’t accounting for all of the overhead of the cache itself (see
<a href="https://issues.apache.org/jira/browse/KUDU-972">KUDU-972</a>).</p>
</li>
<li>
<p>Fixed an issue where the C++ client would fail to reopen an expired scanner; instead,
the client would retry in a tight loop and eventually timeout (see
<a href="https://issues.apache.org/jira/browse/KUDU-2414">KUDU-2414</a>).</p>
</li>
<li>
<p>When a tablet is deleted, its write-ahead log recovery directory is also deleted, if it
exists (see <a href="https://issues.apache.org/jira/browse/KUDU-1038">KUDU-1038</a>).</p>
</li>
<li>
<p>Fixed a tablet server crash when a tablet is scanned with two predicates on its primary
key and the predicates do not overlap (see
<a href="https://issues.apache.org/jira/browse/KUDU-2447">KUDU-2447</a>).</p>
</li>
<li>
<p>Fixed an issue where the Kudu MapReduce connector&#8217;s <code>KuduTableInputFormat</code> may exhaust
its scan too early (see
<a href="https://issues.apache.org/jira/browse/KUDU-2525">KUDU-2525</a>).</p>
</li>
<li>
<p>Fixed an issue with failed tablet copies that would cause subsequent tablet copies to
crash the tablet server (see
<a href="https://issues.apache.org/jira/browse/KUDU-2293">KUDU-2293</a>).</p>
</li>
<li>
<p>Fixed a bug in which incorrect results would be returned in scans following a
server restart (see
<a href="https://issues.apache.org/jira/browse/KUDU-2463">KUDU-2463</a>).</p>
</li>
<li>
<p>Fixed a bug causing a tablet server crash when a write batch request from a client
failed coarse-grained authorization (see
<a href="https://issues.apache.org/jira/browse/KUDU-2540">KUDU-2540</a>).</p>
</li>
<li>
<p>Fixed use-after-free in case of WAL replay error (see
<a href="https://issues.apache.org/jira/browse/KUDU-2509">KUDU-2509</a>).</p>
</li>
<li>
<p>Fixed authentication token reacquisition in the C++ client (see
<a href="https://issues.apache.org/jira/browse/KUDU-2580">KUDU-2580</a>).</p>
</li>
<li>
<p>Fixed a bug where leader logged excessively when the followers fell behind (see
<a href="https://issues.apache.org/jira/browse/KUDU-2322">KUDU-2322</a>).</p>
</li>
<li>
<p>Fixed reporting of leader health during lifecycle transitions (see
<a href="https://issues.apache.org/jira/browse/KUDU-2335">KUDU-2335</a>).</p>
</li>
<li>
<p>Fixed moving single-replica tablets (see
<a href="https://issues.apache.org/jira/browse/KUDU-2443">KUDU-2443</a>).</p>
</li>
<li>
<p>Fixed an error that would cause the kudu CLI tool to unexpectedly exit when the
connection to the master or tserver was abruptly closed.</p>
</li>
<li>
<p>Fixed a rare issue where system failure could leave unexpected null bytes at the end of
metadata files, causing Kudu to be unable to restart (see
<a href="https://issues.apache.org/jira/browse/KUDU-2260">KUDU-2260</a>).</p>
</li>
<li>
<p>Fixed an issue where <code>kudu cluster ksck</code> running a snapshot checksum scan would use a
single snapshot timestamp for all tablets. This caused the checksum process to fail if
the checksum process took a long time and the number of tablets was sufficiently large.
The tool should now be able to checksum tables even if the process takes many hours.
(see <a href="https://issues.apache.org/jira/browse/KUDU-2179">KUDU-2179</a>).</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.8.0_wire_compatibility"><a class="link" href="#rn_1.8.0_wire_compatibility">Wire Protocol compatibility</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Kudu 1.8.0 is wire-compatible with previous versions of Kudu:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Kudu 1.8 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>Kudu 1.0 clients may connect to servers running Kudu 1.8 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.8 and versions earlier than 1.3:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>If a Kudu 1.8 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.8 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.8.0_incompatible_changes"><a class="link" href="#rn_1.8.0_incompatible_changes">Incompatible Changes in Kudu 1.8.0</a></h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="rn_1.8.0_client_compatibility"><a class="link" href="#rn_1.8.0_client_compatibility">Client Library Compatibility</a></h3>
<div class="ulist">
<ul>
<li>
<p>The Kudu 1.8 Java client library is API- and ABI-compatible with Kudu 1.7. Applications
written against Kudu 1.7 will compile and run against the Kudu 1.8 client library and
vice-versa.</p>
</li>
<li>
<p>The Kudu 1.8 C++ client is API- and ABI-forward-compatible with Kudu 1.7.
Applications written and compiled against the Kudu 1.7 client library will run without
modification against the Kudu 1.8 client library. Applications written and compiled
against the Kudu 1.8 client library will run without modification against the Kudu 1.7
client library.</p>
</li>
<li>
<p>The Kudu 1.8 Python client is API-compatible with Kudu 1.7. Applications written against
Kudu 1.7 will continue to run against the Kudu 1.8 client and vice-versa.</p>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.8.0_known_issues"><a class="link" href="#rn_1.8.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.8.0_contributors"><a class="link" href="#rn_1.8.0_contributors">Contributors</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Kudu 1.8 includes contributions from 40 people, including 15 first-time contributors:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Anupama Gupta</p>
</li>
<li>
<p>Attila Piros</p>
</li>
<li>
<p>Brian McDevitt</p>
</li>
<li>
<p>Fengling Wang</p>
</li>
<li>
<p>Ferenc Szabó</p>
</li>
<li>
<p>Greg Solovyev</p>
</li>
<li>
<p>Kiyoshi Mizumaru</p>
</li>
<li>
<p>Shriya Gupta</p>
</li>
<li>
<p>Thomas Tauber-Marshall</p>
</li>
<li>
<p>Tigerquoll</p>
</li>
<li>
<p>Yao Xu</p>
</li>
<li>
<p>ZhangYao</p>
</li>
<li>
<p>helifu</p>
</li>
<li>
<p>jinxing64</p>
</li>
<li>
<p>qqchang2nd</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Thank you for helping to make Kudu even better!</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.8.0_upgrade_notes">Upgrade Notes</a></li>
<li><a href="#rn_1.8.0_obsoletions">Obsoletions</a></li>
<li><a href="#rn_1.8.0_deprecations">Deprecations</a></li>
<li><a href="#rn_1.8.0_new_features">New features</a></li>
<li><a href="#rn_1.8.0_improvements">Optimizations and improvements</a></li>
<li><a href="#rn_1.8.0_fixed_issues">Fixed Issues</a></li>
<li><a href="#rn_1.8.0_wire_compatibility">Wire Protocol compatibility</a></li>
<li><a href="#rn_1.8.0_incompatible_changes">Incompatible Changes in Kudu 1.8.0</a>
<ul class="sectlevel2">
<li><a href="#rn_1.8.0_client_compatibility">Client Library Compatibility</a></li>
</ul>
</li>
<li><a href="#rn_1.8.0_known_issues">Known Issues and Limitations</a></li>
<li><a href="#rn_1.8.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">Getting Started with Kudu</a>
</li>
<li>
<a href="installation.html">Installation Guide</a>
</li>
<li>
<a href="configuration.html">Configuring 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="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; 2020 The Apache Software Foundation. Last updated 2018-10-24 21:49:14 CEST
</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>