[ 
https://issues.apache.org/jira/browse/MAPREDUCE-1800?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12869360#action_12869360
 ] 

Joydeep Sen Sarma commented on MAPREDUCE-1800:
----------------------------------------------

the problem is that the current heuristics also cause bad behavior when 
uplinks/core-switches degrade.

i agree that the case of a single node that is not able to send map outputs is 
something that hadoop should detect/correct automatically - but i don't think 
the current heuristic (by itself) is a good one because of the previous point. 

i don't have a good alternative solution/proposals. a few thoughts pop to mind:
- separate blacklisting of TTs due to map/reduce task failures from 
blacklisting due to map-output fetch failures. the thresholds and policies 
required seem different.
- if the scope of the fault is nic/port/process/os problems affecting a 
'single' node - then we should only take into map-fetch failures that happen 
within the same rack. (ie. assign blame to a TT only if other TTs within the 
same rack cannot communicate to it)
- blame should be laid by a multitude of different hosts. It's no good if 4 
reducers on TT1 cannot get map outputs from TT2 and this results in 
blacklisting of TT2. It's possible that TT1 itself has a bad port/nic. 

(just thinking aloud, i don't have a careful understanding of the code beyond 
what's been relayed to me by others :-)).

> using map output fetch failures to blacklist nodes is problematic
> -----------------------------------------------------------------
>
>                 Key: MAPREDUCE-1800
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-1800
>             Project: Hadoop Map/Reduce
>          Issue Type: Bug
>            Reporter: Joydeep Sen Sarma
>
> If a mapper and a reducer cannot communicate, then either party could be at 
> fault. The current hadoop protocol allows reducers to declare nodes running 
> the mapper as being at fault. When sufficient number of reducers do so - then 
> the map node can be blacklisted. 
> In cases where networking problems cause substantial degradation in 
> communication across sets of nodes - then large number of nodes can become 
> blacklisted as a result of this protocol. The blacklisting is often wrong 
> (reducers on the smaller side of the network partition can collectively cause 
> nodes on the larger network partitioned to be blacklisted) and 
> counterproductive (rerunning maps puts further load on the (already) maxed 
> out network links).
> We should revisit how we can better identify nodes with genuine network 
> problems (and what role, if any, map-output fetch failures have in this).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to