HAWQ provides several approaches to resource management and includes several user-configurable options, including integration with YARN’s resource management.
HAWQ has the ability to manage resources by using the following mechanisms:
- Global resource management. You can integrate HAWQ with the YARN resource manager to request or return resources as needed. If you do not integrate HAWQ with YARN, HAWQ exclusively consumes cluster resources and manages its own resources. If you integrate HAWQ with YARN, then HAWQ automatically fetches resources from YARN and manages those obtained resources through its internally defined resource queues. Resources are returned to YARN automatically when resources are not used anymore.
- User defined hierarchical resource queues. HAWQ administrators or superusers design and define the resource queues used to organize the distribution of resources to queries.
- Dynamic resource allocation at query runtime. HAWQ dynamically allocates resources based on resource queue definitions. HAWQ automatically distributes resources based on running (or queued) queries and resource queue capacities.
- Resource limitations on virtual segments and queries. You can configure HAWQ to enforce limits on CPU and memory usage both for virtual segments and the resource queues used by queries.
For more details on resource management in HAWQ and how it works, see Managing Resources.