You are viewing a plain text version of this content. The canonical link for it is here.
Posted to mapreduce-user@hadoop.apache.org by Arun C Murthy <ac...@yahoo-inc.com> on 2010/08/23 03:38:02 UTC

Re: where distributed cache start working

Moving to mapreduce-user@, bcc common-dev@. Please use the project  
specific lists.

DistributedCache.purgeCache isn't a public api. You shouldn't be  
calling it from the task.

  A simple way of doing what you want is to change the mtime of the  
cache files on HDFS.

Arun

On Aug 22, 2010, at 9:48 AM, Gang Luo wrote:

> Thanks Jeff.
>
> However, are you sure TaskRunner.run() is also used in the new API?  
> I use btrace
> to trace the function call but didn't find this function had been  
> called
> anywhere.
>
>
> One more question about distributed cache. After I call
> DistributedCache.purgeCache, I think the local cached files should  
> be deleted or
> invalidated. However ,When I run the same job with the purge  
> operation at the
> end multiple times, I find the local files have never been deleted  
> and the
> modification time is when the first job run. How can I ask my job to
> re-distributed the cache again anyway?
>
> Thanks,
> -Gang
>
>
>
>
> ----- 原始邮件 ----
> 发件人: Jeff Zhang <zj...@gmail.com>
> 收件人: common-dev@hadoop.apache.org
> 发送日期: 2010/8/20 (周五) 11:22:49 上午
> 主   题: Re: where distributed cache start working
>
> Hi Gang,
>
> In the TaskRunner's run() method, hadoop will download the cache files
> which you set on the client side to local, then the forked child jvm
> can use these cache files locally.
>
>
>
> On Fri, Aug 20, 2010 at 8:08 AM, Gang Luo <lg...@yahoo.com.cn>  
> wrote:
>> Hi all,
>> I go through the code, but couldn't find the place where  
>> distributed cache
>> start
>> working. I want to know between DistriubtedCache.addCacheFile at  
>> the master
>> node
>> and DistributedCache.getLocalCacheFiles at the client side, when  
>> and where are
>> the files get distributed.
>>
>>
>> Thanks,
>> -Gang
>>
>>
>>
>>
>>
>
>
>
> -- 
> Best Regards
>
> Jeff Zhang
>
>
>
>


Re: where distributed cache start working

Posted by Hemanth Yamijala <yh...@gmail.com>.
Hi,
> Thanks Arun. Change the mTime is a good idea. However, given a file (the path is
>
> A/B/C/D/file) distributed to all the nodes, if I just change the mTime of file
> to a earlier time stamp, it will not be replaced next time. Should I also change
> the mTime for all the directories along the path (A, B, C and D). Whose
> timestamp is used by DistributedCache?

It is the timestamp of the file on DFS. So, you modify the file's
timestamp on DFS, it should be re-distributed to all the nodes.

Thanks
Hemanth
>
> Thanks.
> -Gang
>
>
>
>
> ----- 原始邮件 ----
> 发件人: Arun C Murthy <ac...@yahoo-inc.com>
> 收件人: mapreduce-user@hadoop.apache.org
> 发送日期: 2010/8/22 (周日) 9:38:02 下午
> 主   题: Re: where distributed cache start working
>
> Moving to mapreduce-user@, bcc common-dev@. Please use the project specific
> lists.
>
> DistributedCache.purgeCache isn't a public api. You shouldn't be calling it from
>
> the task.
>
> A simple way of doing what you want is to change the mtime of the cache files on
>
> HDFS.
>
> Arun
>
> On Aug 22, 2010, at 9:48 AM, Gang Luo wrote:
>
>> Thanks Jeff.
>>
>> However, are you sure TaskRunner.run() is also used in the new API? I use
>>btrace
>> to trace the function call but didn't find this function had been called
>> anywhere.
>>
>>
>> One more question about distributed cache. After I call
>> DistributedCache.purgeCache, I think the local cached files should be deleted
>>or
>> invalidated. However ,When I run the same job with the purge operation at the
>> end multiple times, I find the local files have never been deleted and the
>> modification time is when the first job run. How can I ask my job to
>> re-distributed the cache again anyway?
>>
>> Thanks,
>> -Gang
>>
>>
>>
>>
>> ----- 原始邮件 ----
>> 发件人: Jeff Zhang <zj...@gmail.com>
>> 收件人: common-dev@hadoop.apache.org
>> 发送日期: 2010/8/20 (周五) 11:22:49 上午
>> 主   题: Re: where distributed cache start working
>>
>> Hi Gang,
>>
>> In the TaskRunner's run() method, hadoop will download the cache files
>> which you set on the client side to local, then the forked child jvm
>> can use these cache files locally.
>>
>>
>>
>> On Fri, Aug 20, 2010 at 8:08 AM, Gang Luo <lg...@yahoo.com.cn> wrote:
>>> Hi all,
>>> I go through the code, but couldn't find the place where distributed cache
>>> start
>>> working. I want to know between DistriubtedCache.addCacheFile at the master
>>> node
>>> and DistributedCache.getLocalCacheFiles at the client side, when and where
> are
>>> the files get distributed.
>>>
>>>
>>> Thanks,
>>> -Gang
>>>
>>>
>>>
>>>
>>>
>>
>>
>>
>> --Best Regards
>>
>> Jeff Zhang
>>
>>
>>
>>
>
>
>
>
>

Re: where distributed cache start working

Posted by Gang Luo <lg...@yahoo.com.cn>.
Thanks Arun. Change the mTime is a good idea. However, given a file (the path is 

A/B/C/D/file) distributed to all the nodes, if I just change the mTime of file 
to a earlier time stamp, it will not be replaced next time. Should I also change 
the mTime for all the directories along the path (A, B, C and D). Whose 
timestamp is used by DistributedCache?

Thanks.
-Gang




----- 原始邮件 ----
发件人: Arun C Murthy <ac...@yahoo-inc.com>
收件人: mapreduce-user@hadoop.apache.org
发送日期: 2010/8/22 (周日) 9:38:02 下午
主   题: Re: where distributed cache start working

Moving to mapreduce-user@, bcc common-dev@. Please use the project specific 
lists.

DistributedCache.purgeCache isn't a public api. You shouldn't be calling it from 

the task.

A simple way of doing what you want is to change the mtime of the cache files on 

HDFS.

Arun

On Aug 22, 2010, at 9:48 AM, Gang Luo wrote:

> Thanks Jeff.
> 
> However, are you sure TaskRunner.run() is also used in the new API? I use 
>btrace
> to trace the function call but didn't find this function had been called
> anywhere.
> 
> 
> One more question about distributed cache. After I call
> DistributedCache.purgeCache, I think the local cached files should be deleted 
>or
> invalidated. However ,When I run the same job with the purge operation at the
> end multiple times, I find the local files have never been deleted and the
> modification time is when the first job run. How can I ask my job to
> re-distributed the cache again anyway?
> 
> Thanks,
> -Gang
> 
> 
> 
> 
> ----- 原始邮件 ----
> 发件人: Jeff Zhang <zj...@gmail.com>
> 收件人: common-dev@hadoop.apache.org
> 发送日期: 2010/8/20 (周五) 11:22:49 上午
> 主   题: Re: where distributed cache start working
> 
> Hi Gang,
> 
> In the TaskRunner's run() method, hadoop will download the cache files
> which you set on the client side to local, then the forked child jvm
> can use these cache files locally.
> 
> 
> 
> On Fri, Aug 20, 2010 at 8:08 AM, Gang Luo <lg...@yahoo.com.cn> wrote:
>> Hi all,
>> I go through the code, but couldn't find the place where distributed cache
>> start
>> working. I want to know between DistriubtedCache.addCacheFile at the master
>> node
>> and DistributedCache.getLocalCacheFiles at the client side, when and where 
are
>> the files get distributed.
>> 
>> 
>> Thanks,
>> -Gang
>> 
>> 
>> 
>> 
>> 
> 
> 
> 
> --Best Regards
> 
> Jeff Zhang
> 
> 
> 
>