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

Reply via email to