Managing Impala Admission Control

Minimum Required Role: Configurator (also provided by Cluster Administrator, Full Administrator)

Admission control is an Impala feature that imposes limits on concurrent SQL queries, to avoid resource usage spikes and out-of-memory conditions on busy CDH clusters. It is a form of "throttling". New queries are accepted and executed until certain conditions are met, such as too many queries or too much total memory used across the cluster. When one of these thresholds is reached, incoming queries wait to begin execution. These queries are queued and are admitted (that is, begin executing) when the resources become available.

For further information on Impala admission control, see Admission Control and Query Queuing.

Enabling and Disabling Impala Admission Control Using Cloudera Manager

  1. Go to the Impala service.
  2. Click the Configuration tab.
  3. Select Category > Admission Control.
  4. Select or deselect the Enable Impala Admission Control checkbox.
  5. Click Save Changes to commit the changes.
  6. Restart the Impala service.

Configuring Impala Admission Control Using Cloudera Manager

  1. Go to the Impala service.
  2. Click the Configuration tab.
  3. Select Category > Admission Control.
  4. Configure admission control properties:
    default_pool_max_queued
    Purpose: Maximum number of requests allowed to be queued before rejecting requests. Because this limit applies cluster-wide, but each Impala node makes independent decisions to run queries immediately or queue them, it is a soft limit; the overall number of queued queries might be slightly higher during times of heavy load. A negative value or 0 indicates requests are always rejected once the maximum concurrent requests are executing. Ignored if fair_scheduler_config_path and llama_site_path are set.

    Type: int64

    Default: 200

    default_pool_max_requests
    Purpose: Maximum number of concurrent outstanding requests allowed to run before incoming requests are queued. Because this limit applies cluster-wide, but each Impala node makes independent decisions to run queries immediately or queue them, it is a soft limit; the overall number of concurrent queries might be slightly higher during times of heavy load. A negative value indicates no limit. Ignored if fair_scheduler_config_path and llama_site_path are set.

    Type: int64

    Default: 200

    default_pool_mem_limit
    Purpose: Maximum amount of memory (across the entire cluster) that all outstanding requests in this pool can use before new requests to this pool are queued. Specified in bytes, megabytes, or gigabytes by a number followed by the suffix b (optional), m, or g, either uppercase or lowercase. You can specify floating-point values for megabytes and gigabytes, to represent fractional numbers such as 1.5. You can also specify it as a percentage of the physical memory by specifying the suffix %. 0 or no setting indicates no limit. Defaults to bytes if no unit is given. Because this limit applies cluster-wide, but each Impala node makes independent decisions to run queries immediately or queue them, it is a soft limit; the overall memory used by concurrent queries might be slightly higher during times of heavy load. Ignored if fair_scheduler_config_path and llama_site_path are set.

    Type: string

    Default: "" (empty string, meaning unlimited)

    disable_admission_control
    Purpose: Turns off the admission control feature entirely, regardless of other configuration option settings.

    Type: Boolean

    Default: true

    disable_pool_max_requests
    Purpose: Disables all per-pool limits on the maximum number of running requests.

    Type: Boolean

    Default: false

    disable_pool_mem_limits
    Purpose: Disables all per-pool mem limits.

    Type: Boolean

    Default: false

    fair_scheduler_allocation_path
    Purpose: Path to the fair scheduler allocation file (fair-scheduler.xml).

    Type: string

    Default: "" (empty string)

    Usage notes: Admission control only uses a small subset of the settings that can go in this file, as described below. For details about all the Fair Scheduler configuration settings, see the Apache wiki.

    llama_site_path
    Purpose: Path to the Llama configuration file (llama-site.xml). If set, fair_scheduler_allocation_path must also be set.

    Type: string

    Default: "" (empty string)

    Usage notes: Admission control only uses a small subset of the settings that can go in this file, as described below. For details about all the Llama configuration settings, see the documentation on Github.

    queue_wait_timeout_ms
    Purpose: Maximum amount of time (in milliseconds) that a request waits to be admitted before timing out.

    Type: int64

    Default: 60000

  5. Click Save Changes to commit the changes.
  6. Restart the Impala service.