Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Threaded View
MapReduce, mail # user - RE: How to configure mapreduce archive size?


Copy link to this message
-
RE: How to configure mapreduce archive size?
Xia_Yang@... 2013-04-23, 00:38
Hi Hemanth,

Could you specify steps of how to get the debug level of tasktracker?

What I did is in hbase_home/conf folder, update log4j.properities, make hadoop log to debug level and also added:

log4j.logger.org.apache.hadoop.mapred.JobTracker=DEBUG
log4j.logger.org.apache.hadoop.mapred.TaskTracker=DEBUG

and restart hbase (which include hadoop) and run mapreduce job. I can find hadoop debug level log, but I cannot find the log for TaskTracker. Attached is my log4j.properties and my logs. Could you help?

Thanks,

Jane

From: Hemanth Yamijala [mailto:[EMAIL PROTECTED]]
Sent: Thursday, April 18, 2013 8:55 PM
To: [EMAIL PROTECTED]
Subject: Re: How to configure mapreduce archive size?

Well, since the DistributedCache is used by the tasktracker, you need to update the log4j configuration file used by the tasktracker daemon. And you need to get the tasktracker log file - from the machine where you see the distributed cache problem.

On Fri, Apr 19, 2013 at 6:27 AM, <[EMAIL PROTECTED]<mailto:[EMAIL PROTECTED]>> wrote:
Hi Hemanth,

I tried http://machine:50030. It did not work for me.

In hbase_home/conf folder, I update the log4j configuration properties and got attached log. Do you find what is happening for the map reduce job?

Thanks,

Jane

From: Hemanth Yamijala [mailto:[EMAIL PROTECTED]<mailto:[EMAIL PROTECTED]>]
Sent: Wednesday, April 17, 2013 9:11 PM

To: [EMAIL PROTECTED]<mailto:[EMAIL PROTECTED]>
Subject: Re: How to configure mapreduce archive size?

The check for cache file cleanup is controlled by the property mapreduce.tasktracker.distributedcache.checkperiod. It defaults to 1 minute (which should be sufficient for your requirement).

I am not sure why the JobTracker UI is inaccessible. If you know where JT is running, try hitting http://machine:50030. If that doesn't work, maybe check if ports have been changed in mapred-site.xml for a property similar to mapred.job.tracker.http.address.

There is logging in the code of the tasktracker component that can help debug the distributed cache behaviour. In order to get those logs you need to enable debug logging in the log4j configuration properties and restart the daemons. Hopefully that will help you get some hints on what is happening.

Thanks
hemanth

On Wed, Apr 17, 2013 at 11:49 PM, <[EMAIL PROTECTED]<mailto:[EMAIL PROTECTED]>> wrote:
Hi Hemanth and Bejoy KS,

I have tried both mapred-site.xml and core-site.xml. They do not work. I set the value to 50K just for testing purpose, however the folder size already goes to 900M now. As in your email, "After they are done, the property will help cleanup the files due to the limit set. " How frequently the cleanup task will be triggered?

Regarding the job.xml, I cannot use JT web UI to find it. It seems when hadoop is packaged within Hbase, this is disabled. I am only use Hbase jobs. I was suggested by Hbase people to get help from Hadoop mailing list. I will contact them again.

Thanks,

Jane

From: Hemanth Yamijala [mailto:[EMAIL PROTECTED]<mailto:[EMAIL PROTECTED]>]
Sent: Tuesday, April 16, 2013 9:35 PM

To: [EMAIL PROTECTED]<mailto:[EMAIL PROTECTED]>
Subject: Re: How to configure mapreduce archive size?

You can limit the size by setting local.cache.size in the mapred-site.xml (or core-site.xml if that works for you). I mistakenly mentioned mapred-default.xml in my last mail - apologies for that. However, please note that this does not prevent whatever is writing into the distributed cache from creating those files when they are required. After they are done, the property will help cleanup the files due to the limit set.

That's why I am more keen on finding what is using the files in the Distributed cache. It may be useful if you can ask on the HBase list as well if the APIs you are using are creating the files you mention (assuming you are only running HBase jobs on the cluster and nothing else)

Thanks
Hemanth

On Tue, Apr 16, 2013 at 11:15 PM, <[EMAIL PROTECTED]<mailto:[EMAIL PROTECTED]>> wrote:
Hi Hemanth,

I did not explicitly using DistributedCache in my code. I did not use any command line arguments like -libjars neither.

Where can I find job.xml? I am using Hbase MapReduce API and not setting any job.xml.

The key point is I want to limit the size of /tmp/hadoop-root/mapred/local/archive. Could you help?

Thanks.

Xia

From: Hemanth Yamijala [mailto:[EMAIL PROTECTED]<mailto:[EMAIL PROTECTED]>]
Sent: Thursday, April 11, 2013 9:09 PM

To: [EMAIL PROTECTED]<mailto:[EMAIL PROTECTED]>
Subject: Re: How to configure mapreduce archive size?

TableMapReduceUtil has APIs like addDependencyJars which will use DistributedCache. I don't think you are explicitly using that. Are you using any command line arguments like -libjars etc when you are launching the MapReduce job ? Alternatively you can check job.xml of the launched MR job to see if it has set properties having prefixes like mapred.cache. If nothing's set there, it would seem like some other process or user is adding jars to DistributedCache when using the cluster.

Thanks
hemanth

On Thu, Apr 11, 2013 at 11:40 PM, <[EMAIL PROTECTED]<mailto:[EMAIL PROTECTED]>> wrote:
Hi Hemanth,

Attached is some sample folders within my /tmp/hadoop-root/mapred/local/archive. There are some jar and class files inside.

My application uses MapReduce job to do purge Hbase old data. I am using basic HBase MapReduce API to delete rows from Hbase table. I do not specify to use Distributed cache. Maybe HBase use it?

Some code here:

       Scan scan = new Scan();
       scan.setCaching(500);        // 1 is the default in Scan, which will be bad for MapReduce jobs
       scan.setCacheBlocks(false);  // don't set to true for MR jobs
       scan.setTimeRange(Long.MIN_VALUE, timestamp);
       // set other scan attrs
       // the purge start time
       Date date=new Date();
       TableMapReduceUtil.initTableMapperJob(
             tableName,        // in