blob: e860666bd29b59aa0dd17a43b9006ad5f2220977 [file]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="copyright" content="(C) Copyright 2025" />
<meta name="DC.rights.owner" content="(C) Copyright 2025" />
<meta name="DC.Type" content="concept" />
<meta name="DC.Title" content="Tuning Impala for Performance" />
<meta name="DC.Relation" scheme="URI" content="../topics/impala_perf_cookbook.html" />
<meta name="DC.Relation" scheme="URI" content="../topics/impala_perf_joins.html" />
<meta name="DC.Relation" scheme="URI" content="../topics/impala_perf_stats.html" />
<meta name="DC.Relation" scheme="URI" content="../topics/impala_perf_benchmarking.html" />
<meta name="DC.Relation" scheme="URI" content="../topics/impala_perf_resources.html" />
<meta name="DC.Relation" scheme="URI" content="../topics/impala_runtime_filtering.html" />
<meta name="DC.Relation" scheme="URI" content="../topics/impala_perf_hdfs_caching.html" />
<meta name="DC.Relation" scheme="URI" content="../topics/impala_perf_skew.html" />
<meta name="DC.Relation" scheme="URI" content="../topics/impala_data_cache.html" />
<meta name="DC.Relation" scheme="URI" content="../topics/impala_perf_testing.html" />
<meta name="DC.Relation" scheme="URI" content="../topics/impala_explain_plan.html" />
<meta name="prodname" content="Impala" />
<meta name="prodname" content="Impala" />
<meta name="version" content="Impala 3.4.x" />
<meta name="version" content="Impala 3.4.x" />
<meta name="DC.Format" content="XHTML" />
<meta name="DC.Identifier" content="performance" />
<link rel="stylesheet" type="text/css" href="../commonltr.css" />
<title>Tuning Impala for Performance</title>
</head>
<body id="performance">
<h1 class="title topictitle1" id="ariaid-title1">Tuning Impala for Performance</h1>
<div class="body conbody">
<p class="p">
The following sections explain the factors affecting the performance of Impala features, and procedures for
tuning, monitoring, and benchmarking Impala queries and other SQL operations.
</p>
<p class="p">
This section also describes techniques for maximizing Impala scalability. Scalability is tied to performance:
it means that performance remains high as the system workload increases. For example, reducing the disk I/O
performed by a query can speed up an individual query, and at the same time improve scalability by making it
practical to run more queries simultaneously. Sometimes, an optimization technique improves scalability more
than performance. For example, reducing memory usage for a query might not change the query performance much,
but might improve scalability by allowing more Impala queries or other kinds of jobs to run at the same time
without running out of memory.
</p>
<div class="note note"><span class="notetitle">Note:</span>
<p class="p">
Before starting any performance tuning or benchmarking, make sure your system is configured with all the
recommended minimum hardware requirements from <a class="xref" href="impala_prereqs.html#prereqs_hardware">Hardware Requirements</a> and
software settings from <a class="xref" href="impala_config_performance.html#config_performance">Post-Installation Configuration for Impala</a>.
</p>
</div>
<ul class="ul">
<li class="li">
<a class="xref" href="impala_partitioning.html#partitioning">Partitioning for Impala Tables</a>. This technique physically divides the data based on
the different values in frequently queried columns, allowing queries to skip reading a large percentage of
the data in a table.
</li>
<li class="li">
<a class="xref" href="impala_perf_joins.html#perf_joins">Performance Considerations for Join Queries</a>. Joins are the main class of queries that you can tune at
the SQL level, as opposed to changing physical factors such as the file format or the hardware
configuration. The related topics <a class="xref" href="impala_perf_stats.html#perf_column_stats">Overview of Column Statistics</a> and
<a class="xref" href="impala_perf_stats.html#perf_table_stats">Overview of Table Statistics</a> are also important primarily for join performance.
</li>
<li class="li">
<a class="xref" href="impala_perf_stats.html#perf_table_stats">Overview of Table Statistics</a> and
<a class="xref" href="impala_perf_stats.html#perf_column_stats">Overview of Column Statistics</a>. Gathering table and column statistics, using the
<code class="ph codeph">COMPUTE STATS</code> statement, helps Impala automatically optimize the performance for join
queries, without requiring changes to SQL query statements. (This process is greatly simplified in Impala
1.2.2 and higher, because the <code class="ph codeph">COMPUTE STATS</code> statement gathers both kinds of statistics in
one operation, and does not require any setup and configuration as was previously necessary for the
<code class="ph codeph">ANALYZE TABLE</code> statement in Hive.)
</li>
<li class="li">
<a class="xref" href="impala_perf_testing.html#performance_testing">Testing Impala Performance</a>. Do some post-setup testing to ensure Impala is
using optimal settings for performance, before conducting any benchmark tests.
</li>
<li class="li">
<a class="xref" href="impala_perf_benchmarking.html#perf_benchmarks">Benchmarking Impala Queries</a>. The configuration and sample data that you use
for initial experiments with Impala is often not appropriate for doing performance tests.
</li>
<li class="li">
<a class="xref" href="impala_perf_resources.html#mem_limits">Controlling Impala Resource Usage</a>. The more memory Impala can utilize, the better query
performance you can expect. In a cluster running other kinds of workloads as well, you must make tradeoffs
to make sure all Hadoop components have enough memory to perform well, so you might cap the memory that
Impala can use.
</li>
<li class="li">
<a class="xref" href="impala_s3.html#s3">Using Impala with Amazon S3 Object Store</a>. Queries against data stored in the Amazon Simple Storage Service (S3)
have different performance characteristics than when the data is stored in HDFS.
</li>
</ul>
<p class="p toc"></p>
<p class="p">
A good source of tips related to scalability and performance tuning is the
<a class="xref" href="http://www.slideshare.net/cloudera/the-impala-cookbook-42530186" target="_blank">Impala
Cookbook</a> presentation. These slides are updated periodically as new features come
out and new benchmarks are performed.
</p>
</div>
<div class="related-links">
<ul class="ullinks">
<li class="link ulchildlink"><strong><a href="../topics/impala_perf_cookbook.html">Impala Performance Guidelines and Best Practices</a></strong><br />
</li>
<li class="link ulchildlink"><strong><a href="../topics/impala_perf_joins.html">Performance Considerations for Join Queries</a></strong><br />
</li>
<li class="link ulchildlink"><strong><a href="../topics/impala_perf_stats.html">Table and Column Statistics</a></strong><br />
</li>
<li class="link ulchildlink"><strong><a href="../topics/impala_perf_benchmarking.html">Benchmarking Impala Queries</a></strong><br />
</li>
<li class="link ulchildlink"><strong><a href="../topics/impala_perf_resources.html">Controlling Impala Resource Usage</a></strong><br />
</li>
<li class="link ulchildlink"><strong><a href="../topics/impala_runtime_filtering.html">Runtime Filtering for Impala Queries (Impala 2.5 or higher only)</a></strong><br />
</li>
<li class="link ulchildlink"><strong><a href="../topics/impala_perf_hdfs_caching.html">Using HDFS Caching with Impala (Impala 2.1 or higher only)</a></strong><br />
</li>
<li class="link ulchildlink"><strong><a href="../topics/impala_perf_skew.html">Detecting and Correcting HDFS Block Skew Conditions</a></strong><br />
</li>
<li class="link ulchildlink"><strong><a href="../topics/impala_data_cache.html">Data Cache for Remote Reads</a></strong><br />
</li>
<li class="link ulchildlink"><strong><a href="../topics/impala_perf_testing.html">Testing Impala Performance</a></strong><br />
</li>
<li class="link ulchildlink"><strong><a href="../topics/impala_explain_plan.html">Understanding Impala Query Performance - EXPLAIN Plans and Query Profiles</a></strong><br />
</li>
</ul>
</div></body>
</html>