What's New in Apache Kudu

Learn about the new features of Kudu in Cloudera Runtime 7.2.16.

Range-specific hash schemas for Kudu tables
Previously once the partition schema was set the number of hash buckets per range partition could not be changed. For the newly added range partitions the number of hash buckets was tied to the amount that was initialized in the partition schema. The custom hash schemas feature enables you to vary the number of hash buckets per range partition, both at table creation and alteration time.

For more information, see Managing Kudu tables with range-specific hash schemas.

Support native encryption at rest
Kudu now supports data encryption at rest, using File Key, Server Key and Cluster Key for encryption. However, data encryption at rest is supported only on fresh installation and once it is enabled you cannot disable it.

For more information, see Configuring data at rest encryption.

Support for Prometheus integration
Kudu now exposes metrics in Prometheus format for server level metrics. These metrics can be accessed using an endpoint at /metrics_prometheus path of the webserver for either Master or Tablet servers. Each metric is assigned a prefix master or tserver accordingly in order to differentiate between Master and Tablet servers running on the same host, along with sharing their unit type as a Prometheus label. For more information, see KUDU-3375.
Support range-aware rebalancing in Kudu CLI
The kudu cluster rebalance CLI tool can be used to run range-aware rebalancing.The range-aware rebalancing runs on a per-table basis, it can be run on one table at a time. To enable range-aware rebalancing for a particular table, you need to add the following two flags while invoking the tool:

To perform cluster-wide rebalancing, it is recommended to run the ‘kudu cluster rebalance tool’. You can run the range-aware rebalancing, in addition to the cluster-wide rebalancing, for larger tables in the cluster that are multilevel-partitioned and can suffer from the hot-spotting issue.

For more information, see Run the tablet rebalancing tool.


  • KUDU-2181: Adding a new Kudu master instance to your cluster, for example to migrate to a multiple master configuration, is automated and does not require you to restart the already existing masters.
  • KUDU-2623: Making KuduWriteOperation::table() method public to enable identification of the problematic table when an error happens.
  • KUDU-3341: This patch improves catalog_manager's behavior when delete tablet with a 'WRONG_SERVER_UUID' error. This RetryTask is marked failed instead of getting retried in order to avoid too many requests.
  • KUDU-3351: Add insert error count metrics in WriteResponsePB
  • KUDU-3365: Expose INSERT/UPDATE metrics in the Java client API
  • KUDU-3379: Make 'kudu table describe' output column comments
  • KUDU-3389: support turning on/off auto rebalancer at runtime