Hyunsik Choi created TAJO-54:
--------------------------------

             Summary: SubQuery::allocateContainers() may ask 0 containers
                 Key: TAJO-54
                 URL: https://issues.apache.org/jira/browse/TAJO-54
             Project: Tajo
          Issue Type: Bug
            Reporter: Hyunsik Choi
            Assignee: Hyunsik Choi
             Fix For: 0.2-incubating


SubQuery::allocateContainers() calculates a number of containers to be 
requested for some subquery and then requests containers as follows:

{code:title=SubQuery.java}
    public static void allocateContainers(SubQuery subQuery) {
      ExecutionBlock execBlock = subQuery.getBlock();
      QueryUnit [] tasks = subQuery.getQueryUnits();

      int numRequest = Math.min(tasks.length,
          subQuery.context.getNumClusterNode() * 4);
{code}

In allocateContainers subQuery.context.getNumClusterNode() method internally 
invokes AMRMClient::getClusterNodeCount(). allocateContainers() requests 0 
container to RM if AMRMClient::getClusterNodeCount() returns 0. If it does so, 
AppSchedulingInfo regards ApplicationMaster as deactive. As a result, 
ApplicationMaster cannot acquire any containers.

In the current Hadoop Yarn, AMRMClient::getClusterNodeCount() temporarily 
returns 0 due to unknown reason even though there are available cluster nodes. 
This problem causes the integration test (i.e., 'mvn verify') to be hanging. 
This patch solves this problem by enabling RMContainerAllocator to wait for 
available cluster nodes.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to