Controlling Impala Resource Usage

Sometimes, balancing raw query performance against scalability requires limiting the amount of resources,
such as memory or CPU, used by a single query or group of queries. Impala can use several mechanisms that
help to smooth out the load during heavy concurrent usage, resulting in faster overall query times and
sharing of resources across Impala queries, MapReduce jobs, and other kinds of workloads across a
cluster:

The Impala admission control feature uses a fast, distributed mechanism to hold back queries that exceed
limits on the number of concurrent queries or the amount of memory used. The queries are queued, and
executed as other queries finish and resources become available. You can control the concurrency limits,
and specify different limits for different groups of users to divide cluster resources according to the
priorities of different classes of users. This feature is new in Impala 1.3.
See Admission Control and Query Queuing for details.

You can restrict the amount of memory Impala reserves during query execution by specifying the
-mem_limit option for the impalad daemon. See
Modifying Impala Startup Options for details. This limit applies only to the
memory that is directly consumed by queries; Impala reserves additional memory at startup, for example to
hold cached metadata.