[
https://issues.apache.org/jira/browse/HADOOP-3333?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12594784#action_12594784
]
Amar Kamat commented on HADOOP-3333:
------------------------------------
bq. Why dont we do something like ....
Consider the following
1) Consider a case where the _num-machines_ < _num-trackers_.
||Node||Trackers||
|N1|T1, T2|
|N2|T3, T4|
2) Lets assume a corner case where the TIP fails on atleast one tracker on each
node.
Say TIP t1 fails on trackers T1 and T3.
3) As per the scheduling logic (see line18/19)
{code:title=JobInProgress.java|borderStyle=solid}
1 private synchronized TaskInProgress findTaskFromList(
2 Collection<TaskInProgress> tips, String taskTracker, boolean
removeFailedTip) {
3 Iterator<TaskInProgress> iter = tips.iterator();
4 while (iter.hasNext()) {
5 TaskInProgress tip = iter.next();
6
7 // Select a tip if
8 // 1. runnable : still needs to be run and is not completed
9 // 2. ~running : no other node is running it
10 // 3. earlier attempt failed : has not failed on this host
11 // and has failed on all the other hosts
12 // A TIP is removed from the list if
13 // (1) this tip is scheduled
14 // (2) if the passed list is a level 0 (host) cache
15 // (3) when the TIP is non-schedulable (running, killed, complete)
16 if (tip.isRunnable() && !tip.isRunning()) {
17 // check if the tip has failed on this host
18 if (!tip.hasFailedOnMachine(taskTracker) ||
19 tip.getNumberOfFailedMachines() >= clusterSize) {
{code}
The tip _t1_ has failed on 2 machines but the clustersize (# of trackers) is 4
and hence the job will be stuck. With this patch the {{total-failures-per-tip}}
is upper bounded by {{num-nodes}} while the parameter {{cluster-size}} is upper
bounded by {{num-trackers}}.
> job failing because of reassigning same tasktracker to failing tasks
> --------------------------------------------------------------------
>
> Key: HADOOP-3333
> URL: https://issues.apache.org/jira/browse/HADOOP-3333
> Project: Hadoop Core
> Issue Type: Bug
> Components: mapred
> Affects Versions: 0.16.3
> Reporter: Christian Kunz
> Assignee: Arun C Murthy
> Priority: Critical
> Fix For: 0.18.0
>
> Attachments: HADOOP-3333_0_20080503.patch,
> HADOOP-3333_1_20080505.patch, HADOOP-3333_2_20080506.patch
>
>
> We have a long running a job in a 2nd atttempt. Previous job was failing and
> current jobs risks to fail as well, because reduce tasks failing on marginal
> TaskTrackers are assigned repeatedly to the same TaskTrackers (probably
> because it is the only available slot), eventually running out of attempts.
> Reduce tasks should be assigned to the same TaskTrackers at most twice, or
> TaskTrackers need to get some better smarts to find failing hardware.
> BTW, mapred.reduce.max.attempts=12, which is high, but does not help in this
> case.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.