In fact I put the enum in my Reduce method as the following link (from Yahoo) says so:
http://public.yahoo.com/gogate/hadoop-tutorial/html/module5.html#metrics --->Look at the section under Reporting Custom Metrics. 2009/2/5 some speed <[email protected]> > Thanks Rasit. > > I did as you said. > > 1) Put the static enum MyCounter{ct_key1} just above main() > > 2) Changed result = > ct.findCounter("org.apache.hadoop.mapred.Task$Counter", 1, > "Reduce.MyCounter").getCounter(); > > Still is doesnt seem to help. It throws a null pointer exception.Its not > able to find the Counter. > > > > Thanks, > > Sharath > > > > > On Thu, Feb 5, 2009 at 8:04 AM, Rasit OZDAS <[email protected]> wrote: > >> Forgot to say, value "0" means that the requested counter does not exist. >> >> 2009/2/5 Rasit OZDAS <[email protected]>: >> > Sharath, >> > I think the static enum definition should be out of Reduce class. >> > Hadoop probably tries to find it elsewhere with "MyCounter", but it's >> > actually "Reduce.MyCounter" in your example. >> > >> > Hope this helps, >> > Rasit >> > >> > 2009/2/5 some speed <[email protected]>: >> >> I Tried the following...It gets compiled but the value of result seems >> to be >> >> 0 always. >> >> >> >> RunningJob running = JobClient.runJob(conf); >> >> >> >> Counters ct = new Counters(); >> >> ct = running.getCounters(); >> >> >> >> long result = >> >> ct.findCounter("org.apache.hadoop.mapred.Task$Counter", 0, >> >> "*MyCounter*").getCounter(); >> >> //even tried MyCounter.Key1 >> >> >> >> >> >> >> >> Does anyone know whay that is happening? >> >> >> >> Thanks, >> >> >> >> Sharath >> >> >> >> >> >> >> >> On Thu, Feb 5, 2009 at 5:59 AM, some speed <[email protected]> >> wrote: >> >> >> >>> Hi Tom, >> >>> >> >>> I get the error : >> >>> >> >>> Cannot find Symbol* "**MyCounter.ct_key1 " * >> >>> >> >>> >> >>> >> >>> >> >>> >> >>> >> >>> On Thu, Feb 5, 2009 at 5:51 AM, Tom White <[email protected]> wrote: >> >>> >> >>>> Hi Sharath, >> >>>> >> >>>> The code you posted looks right to me. Counters#getCounter() will >> >>>> return the counter's value. What error are you getting? >> >>>> >> >>>> Tom >> >>>> >> >>>> On Thu, Feb 5, 2009 at 10:09 AM, some speed <[email protected]> >> wrote: >> >>>> > Hi, >> >>>> > >> >>>> > Can someone help me with the usage of counters please? I am >> incrementing >> >>>> a >> >>>> > counter in Reduce method but I am unable to collect the counter >> value >> >>>> after >> >>>> > the job is completed. >> >>>> > >> >>>> > Its something like this: >> >>>> > >> >>>> > public static class Reduce extends MapReduceBase implements >> >>>> Reducer<Text, >> >>>> > FloatWritable, Text, FloatWritable> >> >>>> > { >> >>>> > static enum MyCounter{ct_key1}; >> >>>> > >> >>>> > public void reduce(..............) throws IOException >> >>>> > { >> >>>> > >> >>>> > reporter.incrCounter(MyCounter.ct_key1, 1); >> >>>> > >> >>>> > output.collect(......); >> >>>> > >> >>>> > } >> >>>> > } >> >>>> > >> >>>> > -----main method---- >> >>>> > { >> >>>> > RunningJob running = null; >> >>>> > running=JobClient.runJob(conf); >> >>>> > >> >>>> > Counters ct = running.getCounters(); >> >>>> > /********* How do I Collect the ct_key1 value ????***********/ >> >>>> > long res = ct.getCounter(MyCounter.ct_key1); >> >>>> > >> >>>> > } >> >>>> > >> >>>> > >> >>>> > >> >>>> > >> >>>> > >> >>>> > Thanks, >> >>>> > >> >>>> > Sharath >> >>>> > >> >>>> >> >>> >> >>> >> >> >> > >> > >> > >> > -- >> > M. Raşit ÖZDAŞ >> > >> >> >> >> -- >> M. Raşit ÖZDAŞ >> > >
