I agree that the scheduler has lesser leeway when the replication factor is
1. However, I would still expect the number of data-local tasks to be more
than 10% even when the replication factor is 1. Presumably, the scheduler
would have greater number of opportunities to schedule data-local tasks as
compared to just 10%. (Please note that I am inferring that a map was
non-local based on the observed completion time. I don't know why but the
logs of my jobs don't show the DATA_LOCAL_MAPS counter information.)

I will try using higher replication factors and see how much improvement I
can get.

Thanks,
Virajith

On Tue, Jul 12, 2011 at 6:15 PM, Arun C Murthy <a...@hortonworks.com> wrote:

> As Aaron mentioned the scheduler has very little leeway when you have a
> single replica.
>
> OTOH, schedulers equate rack-locality to node-locality - this makes sense
> sense for a large-scale system since intra-rack b/w is good enough for most
> installs of Hadoop.
>
> Arun
>
> On Jul 12, 2011, at 7:36 AM, Virajith Jalaparti wrote:
>
> I am using a replication factor of 1 since I dont to incur the overhead of
> replication and I am not much worried about reliability.
>
> I am just using the default Hadoop scheduler (FIFO, I think!). In case of a
> single rack, rack-locality doesn't really have any meaning. Obviously
> everything will run in the same rack. I am concerned about data-local maps.
> I assumed that Hadoop would do a much better job at ensuring data-local maps
> but it doesnt seem to be the case here.
>
> -Virajith
>
> On Tue, Jul 12, 2011 at 3:30 PM, Arun C Murthy <a...@hortonworks.com>wrote:
>
>> Why are you running with replication factor of 1?
>>
>> Also, it depends on the scheduler you are using. The CapacityScheduler in
>> 0.20.203 (not 0.20.2) has much better locality for jobs, similarly with
>> FairScheduler.
>>
>> IAC, running on a single rack with replication of 1 implies rack-locality
>> for all tasks which, in most cases, is good enough.
>>
>> Arun
>>
>> On Jul 12, 2011, at 5:45 AM, Virajith Jalaparti wrote:
>>
>> > Hi,
>> >
>> > I was trying to run the Sort example in Hadoop-0.20.2 over 200GB of
>> input data using a 20 node cluster of nodes. HDFS is configured to use 128MB
>> block size (so 1600maps are created) and a replication factor of 1 is being
>> used. All the 20 nodes are also hdfs datanodes. I was using a bandwidth
>> value of 50Mbps between each of the nodes (this was configured using linux
>> "tc"). I see that around 90% of the map tasks are reading data over the
>> network i.e. most of the map tasks are not being scheduled at the nodes
>> where the data to be processed by them is located.
>> > My understanding was that Hadoop tries to schedule as many data-local
>> maps as possible. But in this situation, this does not seem to happen. Any
>> reason why this is happening? and is there a way to actually configure
>> hadoop to ensure the maximum possible node locality?
>> > Any help regarding this is very much appreciated.
>> >
>> > Thanks,
>> > Virajith
>>
>>
>
>

Reply via email to