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Ş
>