Hi Jason! I finally found out that there was some problem in reserving the HEAPSIZE which I have resolved now. Actually we cannot change the HADOOP_HEAPSIZE using export from our user account, after we have started the Hadoop. It has to changed by the root.
I have a user account on the cluster and I was trying to change the Hadoop_heapsize from my user account using 'export' which had no effect. So I had to request my cluster administrator to increase the HADOOP_HEAPSIZE in hadoop-env.sh and then restart hadoop. Now the program is running absolutely fine. Thanks for your help. One thing that I would like to ask you is that can we use DistributerCache for transferring directories to the local cache of the tasks? Thanks, Akhil akhil1988 wrote: > > Hi Jason! > > Thanks for going with me to solve my problem. > > To restate things and make it more easier to understand: I am working in > local mode in the directory which contains the job jar and also the Config > and Data directories. > > I just removed the following three statements from my code: >> DistributedCache.addCacheFile(new >> URI("/home/akhil1988/Ner/OriginalNer/Data/"), conf); >> DistributedCache.addCacheFile(new >> URI("/home/akhil1988/Ner/OriginalNer/Config/"), conf); >> DistributedCache.createSymlink(conf); > > The program executes till the same point as before now also and > terminates. That means the above three statements are of no use while > working in local mode. In local mode, the working directory for the > map&reduce tasks becomes the current woking direcotry in which you started > the hadoop command to execute the job. > > Since I have removed the DistributedCache.add..... statements there should > be no issue whether I am giving a file name or a directory name as > argument to it. Now it seems to me that there is some problem in reading > the binary file using binaryRead. > > Please let me know if I am going wrong anywhere. > > Thanks, > Akhil > > > > > > jason hadoop wrote: >> >> I have only ever used the distributed cache to add files, including >> binary >> files such as shared libraries. >> It looks like you are adding a directory. >> >> The DistributedCache is not generally used for passing data, but for >> passing >> file names. >> The files must be stored in a shared file system (hdfs for simplicity) >> already. >> >> The distributed cache makes the names available to the tasks, and the the >> files are extracted from hdfs and stored in the task local work area on >> each >> task tracker node. >> It looks like you may be storing the contents of your files in the >> distributed cache. >> >> On Wed, Jun 17, 2009 at 6:56 AM, akhil1988 <akhilan...@gmail.com> wrote: >> >>> >>> Thanks Jason. >>> >>> I went inside the code of the statement and found out that it eventually >>> makes some binaryRead function call to read a binary file and there it >>> strucks. >>> >>> Do you know whether there is any problem in giving a binary file for >>> addition to the distributed cache. >>> In the statement DistributedCache.addCacheFile(new >>> URI("/home/akhil1988/Ner/OriginalNer/Data/"), conf); Data is a directory >>> which contains some text as well as some binary files. In the statement >>> Parameters.readConfigAndLoadExternalData("Config/allLayer1.config"); I >>> can >>> see(in the output messages) that it is able to read the text files but >>> it >>> gets struck at the binary files. >>> >>> So, I think here the problem is: it is not able to read the binary files >>> which either have not been transferred to the cache or a binary file >>> cannot >>> be read. >>> >>> Do you know the solution to this? >>> >>> Thanks, >>> Akhil >>> >>> >>> jason hadoop wrote: >>> > >>> > Something is happening inside of your (Parameters. >>> > readConfigAndLoadExternalData("Config/allLayer1.config");) >>> > code, and the framework is killing the job for not heartbeating for >>> 600 >>> > seconds >>> > >>> > On Tue, Jun 16, 2009 at 8:32 PM, akhil1988 <akhilan...@gmail.com> >>> wrote: >>> > >>> >> >>> >> One more thing, finally it terminates there (after some time) by >>> giving >>> >> the >>> >> final Exception: >>> >> >>> >> java.io.IOException: Job failed! >>> >> at >>> org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1217) >>> >> at LbjTagger.NerTagger.main(NerTagger.java:109) >>> >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>> >> at >>> >> >>> >> >>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) >>> >> at >>> >> >>> >> >>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) >>> >> at java.lang.reflect.Method.invoke(Method.java:597) >>> >> at org.apache.hadoop.util.RunJar.main(RunJar.java:165) >>> >> at org.apache.hadoop.mapred.JobShell.run(JobShell.java:54) >>> >> at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65) >>> >> at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:79) >>> >> at org.apache.hadoop.mapred.JobShell.main(JobShell.java:68) >>> >> >>> >> >>> >> akhil1988 wrote: >>> >> > >>> >> > Thank you Jason for your reply. >>> >> > >>> >> > My Map class is an inner class and it is a static class. Here is >>> the >>> >> > structure of my code. >>> >> > >>> >> > public class NerTagger { >>> >> > >>> >> > public static class Map extends MapReduceBase implements >>> >> > Mapper<LongWritable, Text, Text, Text>{ >>> >> > private Text word = new Text(); >>> >> > private static NETaggerLevel1 tagger1 = new >>> >> > NETaggerLevel1(); >>> >> > private static NETaggerLevel2 tagger2 = new >>> >> > NETaggerLevel2(); >>> >> > >>> >> > Map(){ >>> >> > System.out.println("HI2\n"); >>> >> > >>> >> > >>> Parameters.readConfigAndLoadExternalData("Config/allLayer1.config"); >>> >> > System.out.println("HI3\n"); >>> >> > >>> >> > >>> Parameters.forceNewSentenceOnLineBreaks=Boolean.parseBoolean("true"); >>> >> > >>> >> > System.out.println("loading the tagger"); >>> >> > >>> >> > >>> >> >>> tagger1=(NETaggerLevel1)Classifier.binaryRead(Parameters.pathToModelFile+".level1"); >>> >> > System.out.println("HI5\n"); >>> >> > >>> >> > >>> >> >>> tagger2=(NETaggerLevel2)Classifier.binaryRead(Parameters.pathToModelFile+".level2"); >>> >> > System.out.println("Done- loading the >>> tagger"); >>> >> > } >>> >> > >>> >> > public void map(LongWritable key, Text value, >>> >> > OutputCollector<Text, Text> output, Reporter reporter ) throws >>> >> IOException >>> >> > { >>> >> > String inputline = value.toString(); >>> >> > >>> >> > /* Processing of the input pair is done >>> here >>> */ >>> >> > } >>> >> > >>> >> > >>> >> > public static void main(String [] args) throws Exception { >>> >> > JobConf conf = new JobConf(NerTagger.class); >>> >> > conf.setJobName("NerTagger"); >>> >> > >>> >> > conf.setOutputKeyClass(Text.class); >>> >> > conf.setOutputValueClass(IntWritable.class); >>> >> > >>> >> > conf.setMapperClass(Map.class); >>> >> > conf.setNumReduceTasks(0); >>> >> > >>> >> > conf.setInputFormat(TextInputFormat.class); >>> >> > conf.setOutputFormat(TextOutputFormat.class); >>> >> > >>> >> > conf.set("mapred.job.tracker", "local"); >>> >> > conf.set("fs.default.name", "file:///"); >>> >> > >>> >> > DistributedCache.addCacheFile(new >>> >> > URI("/home/akhil1988/Ner/OriginalNer/Data/"), conf); >>> >> > DistributedCache.addCacheFile(new >>> >> > URI("/home/akhil1988/Ner/OriginalNer/Config/"), conf); >>> >> > DistributedCache.createSymlink(conf); >>> >> > >>> >> > >>> >> > conf.set("mapred.child.java.opts","-Xmx4096m"); >>> >> > >>> >> > FileInputFormat.setInputPaths(conf, new >>> Path(args[0])); >>> >> > FileOutputFormat.setOutputPath(conf, new >>> >> Path(args[1])); >>> >> > >>> >> > System.out.println("HI1\n"); >>> >> > >>> >> > JobClient.runJob(conf); >>> >> > } >>> >> > >>> >> > Jason, when the program executes HI1 and HI2 are printed but it >>> does >>> >> not >>> >> > reaches HI3. In the statement >>> >> > >>> Parameters.readConfigAndLoadExternalData("Config/allLayer1.config"); >>> it >>> >> is >>> >> > able to access Config/allLayer1.config file (as while executing >>> this >>> >> > statement, it prints some messages like which data it is loading, >>> etc.) >>> >> > but it gets stuck there(while loading some classifier) and never >>> >> reaches >>> >> > HI3. >>> >> > >>> >> > This program runs fine when executed normally(without mapreduce). >>> >> > >>> >> > Thanks, Akhil >>> >> > >>> >> > >>> >> > >>> >> > >>> >> > jason hadoop wrote: >>> >> >> >>> >> >> Is it possible that your map class is an inner class and not >>> static? >>> >> >> >>> >> >> On Tue, Jun 16, 2009 at 10:51 AM, akhil1988 <akhilan...@gmail.com> >>> >> wrote: >>> >> >> >>> >> >>> >>> >> >>> Hi All, >>> >> >>> >>> >> >>> I am running my mapred program in local mode by setting >>> >> >>> mapred.jobtracker.local to local mode so that I can debug my >>> code. >>> >> >>> The mapred program is a direct porting of my original sequential >>> >> code. >>> >> >>> There >>> >> >>> is no reduce phase. >>> >> >>> Basically, I have just put my program in the map class. >>> >> >>> >>> >> >>> My program takes around 1-2 min. in instantiating the data >>> objects >>> >> which >>> >> >>> are >>> >> >>> present in the constructor of Map class(it loads some data model >>> >> files, >>> >> >>> therefore it takes some time). After the instantiation part in >>> the >>> >> >>> constrcutor of Map class the map function is supposed to process >>> the >>> >> >>> input >>> >> >>> split. >>> >> >>> >>> >> >>> The problem is that the data objects do not get instantiated >>> >> completely >>> >> >>> and >>> >> >>> in between(whlie it is still in constructor) the program stops >>> giving >>> >> >>> the >>> >> >>> exceptions pasted at bottom. >>> >> >>> The program runs fine without mapreduce and does not require more >>> >> than >>> >> >>> 2GB >>> >> >>> memory, but in mapreduce even after doing export >>> >> HADOOP_HEAPSIZE=2500(I >>> >> >>> am >>> >> >>> working on machines with 16GB RAM), the program fails. I have >>> also >>> >> set >>> >> >>> HADOOP_OPTS="-server -XX:-UseGCOverheadLimit" as sometimes I was >>> >> getting >>> >> >>> GC >>> >> >>> Overhead Limit Exceeded exceptions also. >>> >> >>> >>> >> >>> Somebody, please help me with this problem: I have trying to >>> debug >>> it >>> >> >>> for >>> >> >>> the last 3 days, but unsuccessful. Thanks! >>> >> >>> >>> >> >>> java.lang.OutOfMemoryError: Java heap space >>> >> >>> at >>> >> >>> >>> sun.misc.FloatingDecimal.toJavaFormatString(FloatingDecimal.java:889) >>> >> >>> at java.lang.Double.toString(Double.java:179) >>> >> >>> at java.text.DigitList.set(DigitList.java:272) >>> >> >>> at java.text.DecimalFormat.format(DecimalFormat.java:584) >>> >> >>> at java.text.DecimalFormat.format(DecimalFormat.java:507) >>> >> >>> at java.text.NumberFormat.format(NumberFormat.java:269) >>> >> >>> at >>> >> >>> >>> >> >>> org.apache.hadoop.util.StringUtils.formatPercent(StringUtils.java:110) >>> >> >>> at >>> >> org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1147) >>> >> >>> at LbjTagger.NerTagger.main(NerTagger.java:109) >>> >> >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native >>> Method) >>> >> >>> at >>> >> >>> >>> >> >>> >>> >> >>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) >>> >> >>> at >>> >> >>> >>> >> >>> >>> >> >>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) >>> >> >>> at java.lang.reflect.Method.invoke(Method.java:597) >>> >> >>> at org.apache.hadoop.util.RunJar.main(RunJar.java:165) >>> >> >>> at org.apache.hadoop.mapred.JobShell.run(JobShell.java:54) >>> >> >>> at >>> org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65) >>> >> >>> at >>> org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:79) >>> >> >>> at >>> org.apache.hadoop.mapred.JobShell.main(JobShell.java:68) >>> >> >>> >>> >> >>> 09/06/16 12:34:41 WARN mapred.LocalJobRunner: job_local_0001 >>> >> >>> java.lang.RuntimeException: >>> >> java.lang.reflect.InvocationTargetException >>> >> >>> at >>> >> >>> >>> >> >>> org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:81) >>> >> >>> at >>> >> >>> org.apache.hadoop.mapred.MapRunner.configure(MapRunner.java:34) >>> >> >>> at >>> >> >>> >>> >> >>> org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:58) >>> >> >>> at >>> >> >>> >>> >> >>> org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:83) >>> >> >>> at org.apache.hadoop.mapred.MapTask.run(MapTask.java:328) >>> >> >>> at >>> >> >>> >>> >> >>> org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:138) >>> >> >>> Caused by: java.lang.reflect.InvocationTargetException >>> >> >>> at >>> >> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native >>> >> >>> Method) >>> >> >>> at >>> >> >>> >>> >> >>> >>> >> >>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) >>> >> >>> at >>> >> >>> >>> >> >>> >>> >> >>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) >>> >> >>> at >>> >> >>> java.lang.reflect.Constructor.newInstance(Constructor.java:513) >>> >> >>> at >>> >> >>> >>> >> >>> org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:79) >>> >> >>> ... 5 more >>> >> >>> Caused by: java.lang.ThreadDeath >>> >> >>> at java.lang.Thread.stop(Thread.java:715) >>> >> >>> at >>> >> >>> >>> >> >>> org.apache.hadoop.mapred.LocalJobRunner.killJob(LocalJobRunner.java:310) >>> >> >>> at >>> >> >>> >>> >> >>> org.apache.hadoop.mapred.JobClient$NetworkedJob.killJob(JobClient.java:315) >>> >> >>> at >>> >> org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1224) >>> >> >>> at LbjTagger.NerTagger.main(NerTagger.java:109) >>> >> >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native >>> Method) >>> >> >>> at >>> >> >>> >>> >> >>> >>> >> >>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) >>> >> >>> at >>> >> >>> >>> >> >>> >>> >> >>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) >>> >> >>> at java.lang.reflect.Method.invoke(Method.java:597) >>> >> >>> at org.apache.hadoop.util.RunJar.main(RunJar.java:165) >>> >> >>> at org.apache.hadoop.mapred.JobShell.run(JobShell.java:54) >>> >> >>> at >>> org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65) >>> >> >>> at >>> org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:79) >>> >> >>> at >>> org.apache.hadoop.mapred.JobShell.main(JobShell.java:68) >>> >> >>> >>> >> >>> -- >>> >> >>> View this message in context: >>> >> >>> >>> >> >>> http://www.nabble.com/Nor-%22OOM-Java-Heap-Space%22-neither-%22GC-OverHead-Limit-Exeeceded%22-tp24059508p24059508.html >>> >> >>> Sent from the Hadoop core-user mailing list archive at >>> Nabble.com. >>> >> >>> >>> >> >>> >>> >> >> >>> >> >> >>> >> >> -- >>> >> >> Pro Hadoop, a book to guide you from beginner to hadoop mastery, >>> >> >> http://www.amazon.com/dp/1430219424?tag=jewlerymall >>> >> >> www.prohadoopbook.com a community for Hadoop Professionals >>> >> >> >>> >> >> >>> >> > >>> >> > >>> >> >>> >> -- >>> >> View this message in context: >>> >> >>> http://www.nabble.com/Nor-%22OOM-Java-Heap-Space%22-neither-%22GC-OverHead-Limit-Exeeceded%22-tp24059508p24066426.html >>> >> Sent from the Hadoop core-user mailing list archive at Nabble.com. >>> >> >>> >> >>> > >>> > >>> > -- >>> > Pro Hadoop, a book to guide you from beginner to hadoop mastery, >>> > http://www.amazon.com/dp/1430219424?tag=jewlerymall >>> > www.prohadoopbook.com a community for Hadoop Professionals >>> > >>> > >>> >>> -- >>> View this message in context: >>> http://www.nabble.com/Nor-%22OOM-Java-Heap-Space%22-neither-%22GC-OverHead-Limit-Exeeceded%22-tp24059508p24074211.html >>> Sent from the Hadoop core-user mailing list archive at Nabble.com. >>> >>> >> >> >> -- >> Pro Hadoop, a book to guide you from beginner to hadoop mastery, >> http://www.amazon.com/dp/1430219424?tag=jewlerymall >> www.prohadoopbook.com a community for Hadoop Professionals >> >> > > -- View this message in context: http://www.nabble.com/Nor-%22OOM-Java-Heap-Space%22-neither-%22GC-OverHead-Limit-Exeeceded%22-tp24059508p24099611.html Sent from the Hadoop core-user mailing list archive at Nabble.com.