I did leave an escape route open witth a bit about "corner cases" :-)
Anyway I agree that HDFS has no notion of block 0. I just meant that had the dfs.replication is 1, there will be,under normal circumstances :-), no blocks of output file will be written to node A.
----- Original Message -----
> From: Harsh J <[EMAIL PROTECTED]>
> To: [EMAIL PROTECTED]; Raj Vishwanathan <[EMAIL PROTECTED]>
> Sent: Saturday, August 25, 2012 4:02 AM
> Subject: Re: doubt about reduce tasks and block writes
> Raj's almost right. In times of high load or space fillup on a local
> DN, the NameNode may decide to instead pick a non-local DN for
> replica-writing. In this way, the Node A may get a "copy 0" of a
> replica from a task. This is per the default block placement policy.
> P.s. Note that HDFS hardly makes any differences between replicas,
> hence there is no hard-concept of a "copy 0" or "copy 1"
> block, at the
> NN level, it treats all DNs in pipeline equally and same for replicas.
> On Sat, Aug 25, 2012 at 4:14 AM, Raj Vishwanathan <[EMAIL PROTECTED]>
>> But since node A has no TT running, it will not run map or reduce tasks.
> When the reducer node writes the output file, the fist block will be written on
> the local node and never on node A.
>> So, to answer the question, Node A will contain copies of blocks of all
> output files. It wont contain the copy 0 of any output file.
>> I am reasonably sure about this , but there could be corner cases in case
> of node failure and such like! I need to look into the code.
>>> From: Marc Sturlese <[EMAIL PROTECTED]>
>>> To: [EMAIL PROTECTED]
>>> Sent: Friday, August 24, 2012 1:09 PM
>>> Subject: doubt about reduce tasks and block writes
>>> Hey there,
>>> I have a doubt about reduce tasks and block writes. Do a reduce task
>>> first write to hdfs in the node where they it is placed? (and then these
>>> blocks would be replicated to other nodes)
>>> In case yes, if I have a cluster of 5 nodes, 4 of them run DN and TT and
>>> (node A) just run DN, when running MR jobs, map tasks would never read
>>> node A? This would be because maps have data locality and if the reduce
>>> tasks write first to the node where they live, one replica of the block
>>> would always be in a node that has a TT. Node A would just contain
>>> created from replication by the framework as no reduce task would write
>>> there directly. Is this correct?
>>> Thanks in advance
>>> View this message in context:
>>> Sent from the Hadoop lucene-users mailing list archive at Nabble.com.
> Harsh J