Support Questions

Find answers, ask questions, and share your expertise

Impala Admission Control Configuration

avatar
New Contributor

Hello,

We are trying to implement Impala Admission Control.

Our requirement  is  if we have 5 users let it be A,B,C,D and E. I have created 2  resource pool and added user A,B,C under Submission Access Control of "resource_pool_1" and added user D and E under "resource_pool_2" now we require if user A or B or C will run any impala query it should run in "resource_pool_1" and if user D or E run any impala query it should run in "resource_pool_2". 

But user does not set pool while running query it should run in allocated pool directly

How can we achieve this from  Impala Admission Control Configuration?

Thanks in advance!

1 REPLY 1

avatar
Master Mentor

@Abhijith_Nayak 
To achieve the desired behavior where Impala queries automatically run in the respective resource pools based on the user, you can configure Impala Admission Control to handle this routing seamlessly. Here's how you can implement it.
1. Enable Resource Pools in Cloudera Manager

  1. Ensure that Dynamic Resource Pools are enabled in Cloudera Manager:
  2. Go to Cloudera Manager > Impala > Configuration > Admission Control.
  3. Enable Admission Control if it isn’t already.

2. Create Resource Pools

  • You already have two resource pools (resource_pool_1 and resource_pool_2). Ensure these pools are properly configured:
    • resource_pool_1: For users A, B, and C.
    • resource_pool_2: For users D and E.

Verify the following settings for each pool:

  • Memory and CPU resources are allocated appropriately for the expected workloads.

Query concurrency limits are set based on your cluster’s capacity.

3. Configure Submission Access Control

  • Map the users to their respective resource pools:
    1. Navigate to Cloudera Manager > Impala > Configuration > Admission Control > Resource Pools.
    2. For resource_pool_1, under Submission Access Control, add:

 

Spoiler
A,B,C

 

3. For resource_pool_2, under Submission Access Control, add

 

Spoiler
D,E

This ensures that only the specified users can submit queries to their designated pools.

 

  1. Configure Default Resource Pool Selection

    • Use the pool_mapping configuration to automatically route queries based on the user. This eliminates the need for users to specify the pool explicitly when submitting queries.

    Steps:

    1. Navigate to Cloudera Manager > Impala > Configuration > Admission Control > Pool Mapping Rules.
    2. Add rules to map users to their pools
Spoiler
user:A pool:resource_pool_1
user:B pool:resource_pool_1
user:C pool:resource_pool_1
user:D pool:resource_pool_2
user:E pool:resource_pool_2

5. Validate the Configuration

  • Restart the Impala services to apply the changes.
  • Run test queries as each user to confirm the routing works as expected:
    • Log in as user A, B, C, D, and E and execute queries without specifying the resource pool.
    • Use the following command in the Impala shell to check the assigned resource pool for a query:

 

Spoiler
PROFILE;

Look for the Admission result section to verify the query ran in the correct pool.

Expected Outcome
  • Users A, B, and C will have their queries automatically routed to resource_pool_1.
  • Users D and E will have their queries automatically routed to resource_pool_2.
  • No manual pool specification will be required during query submission.

This configuration ensures proper workload isolation and efficient resource utilization in your cluster. Let me know if further clarification is needed Happy hadooping !!!