Andrew Johnson created YARN-3364:
------------------------------------

             Summary: Clarify Naming of 
yarn.client.nodemanager-connect.max-wait-ms and 
yarn.resourcemanager.connect.max-wait.ms 
                 Key: YARN-3364
                 URL: https://issues.apache.org/jira/browse/YARN-3364
             Project: Hadoop YARN
          Issue Type: Improvement
          Components: yarn
            Reporter: Andrew Johnson


I encountered an issue recently where the ApplicationMaster for MapReduce jobs 
would spend hours attempting to connect to a node in my cluster that had died 
due to a hardware fault.  After debugging this, I found that the 
yarn.client.nodemanager-connect.max-wait-ms property did not behave as I had 
expected.  Based on the name I had thought this would set a maximum time limit 
for attempting to connect to a NodeManager.  The code in 
org.apache.hadoop.yarn.client.NMProxy corroborated this thought - it used a 
RetryUpToMaximumTimeWithFixedSleep policy when a  ConnectTimeoutException was 
thrown, as it was in my case with a dead node.

However, the RetryUpToMaximumTimeWithFixedSleep policy doesn't actually set a 
time limit, but instead divides the maximum time by the sleep period to set a 
total number of retries, regardless of how long those retries take.  As such I 
was seeing the ApplicationMaster spend much longer attempting to make a 
connection than I had anticipated.

The yarn.resourcemanager.connect.max-wait.ms would have the same behavior.  
These properties would be better named like 
yarn.client.nodemanager-connect.max.retries and 
yarn.resourcemanager.connect.max.retries to better align with the actual 
behavior.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to