1. A method for allocating multiple resources, the method comprising: receiving, by one or more processors, a configured resource plan, wherein the configured resource plan manages clusters that contain at least a plurality of resources, wherein the plurality of resources contains a set of owned resources and a set of unowned resources; constructing, by one or more processors, a hierarchical tree from the configured resource plan, wherein the hierarchical tree has a set of top-level consumers and a set of non-top-level consumers, and wherein the set of top-level consumers and the set of non-top-level consumers contain one or more consumers within the hierarchical tree; allocating, by one or more processors, the set of unowned resources according to a usage policy that prioritizes resource allocation to the set of top-level consumers first; associating, by one or more processors, the hierarchical tree with a usage policy, and wherein the usage policy is configured such that: the plurality of resources assigned with a higher preference are used prior to the plurality of resources assigned with a lower preference, the one or more consumers are assigned with a higher priority or a lower priority, and the one or more consumer assigned with the higher priority use a set of available resources, among the plurality of resources, prior to the one or more consumers assigned with the lower priority; sending, by one or more processors, the set of unowned resources to a share pool, wherein the share pool is configured to be accessible to the one or more consumers, and wherein the share pool comprises a global pool and a local pool; determining, by one or more processors, a change in a workload demand from the one or more consumers; associating, by one or more processors, the plurality of resources with the one or more consumers, wherein the associated plurality of resources run multiple applications for the one or more consumers; running, by one or more processors, a first application and a second application among multiple applications, wherein: the first application is associated with a first consumer among the one or more consumers that owns at least in part of the plurality of resources, the second application is associated with a second consumer among the one or more consumers that does not own any resources, and the first consumer and the second consumer are leaf consumers; enabling, by one or more processors, the second consumer to use at least in part of the plurality of resources from a third consumer, wherein the third consumer is a higher level consumer than the second consumer and the first consumer, and the third consumer is not a root consumer; lending, by one or more resources, at least in part of the plurality of resources to the second consumer from the first consumer in a sequential order for future use by the second consumer, wherein the sequential order of the lending is dictated by a reverse order of preference of the first consumer for the plurality of resources; and enabling, by one or more processors, the first consumer to reclaim the at least in part of the plurality of resources lent to the second consumer.