Hi All,

I have a single YARN application running on a cluster of 1 master 
node(Resourcemanager) and 3 slave nodes (Nodemanagers) - total memory= 24GB, 
total vcores= 12. I am using Hadoop 2.4.1 and scheduler is Capacity-Scheduler 
with DominantResourceCalculator. This application submits 10 container requests 
to ResourceManager through the asynchronous AMRM client ( AMRMClientAsync). The 
behavior I observed was that the container request asking for the most 
resources gets allocated first. For eg. 9 requests are for 2GB containers and 1 
request is for a 4 GB container, then the 4GB container gets allocated and 
here's where it runs into a problem - It just stops there - it doesn't allocate 
any containers for all the 2 GB requests!

Once a container is allocated my app runs a task on it and once it is finished 
, app submits a fresh container request for this task (the tasks are of a 
repeating nature). Then again the RM allocates a 4GB container for this 
request, completely ignoring all the requests in between. I don't know if it is 
an issue with the AMRMClientAsync class- I haven't tried using the normal 
AMRMclient yet. Now I have tasks that require 2 GB and tasks that require 4 GB 
memory. Because of this problem it is only running the 4 GB task again and 
again.

If all the container requests are identical in terms of resources, then this 
problem disappears and RM allocates all requested containers.

Couldn't find any documentation/known bugs relating to this. I've hit a brick 
wall here, any help would be greatly appreciated. Thanks in advance
-SMita

Reply via email to