Hadoop::Streaming::Role::Emitter - Role to provide emit, counter, and status interaction with Hadoop::Streaming.


Hadoop-Streaming documentation Contained in the Hadoop-Streaming distribution.

Index


Code Index:

NAME

Top

Hadoop::Streaming::Role::Emitter - Role to provide emit, counter, and status interaction with Hadoop::Streaming.

VERSION

Top

version 0.110030

METHODS

Top

emit

    $object->emit( $key, $value )

This method emits a key,value pair in the format expected by Hadoop::Streaming. It does this by calling $self->put(). This catches errors from put and turns them into warnings.

put

    $object->put( $key, $value )

This method emits a key,value pair to STDOUT in the format expected by Hadoop::Streaming: ( key \t value \n )

counter

    $object->counter(
        group   => $group,
        counter => $countername,
        amount  => $count,
    );

This method emits a counter key to STDERR in the format expected by hadoop: reporter:counter:<group>,<counter>,<amount>

status

    $object->status( $message )

This method emits a status message to STDERR in the format expected by Hadoop::Streaming: reporter:status:$message\n

AUTHORS

Top

COPYRIGHT AND LICENSE

Top


Hadoop-Streaming documentation Contained in the Hadoop-Streaming distribution.

package Hadoop::Streaming::Role::Emitter;
BEGIN {
  $Hadoop::Streaming::Role::Emitter::VERSION = '0.110030';
}
use Moose::Role;
use Params::Validate qw/validate_pos/;

#provides qw(run emit counter status);

# ABSTRACT: Role to provide emit, counter, and status interaction with Hadoop::Streaming.


sub emit {
    my ($self, $key, $value) = @_;
    eval {
        $self->put($key, $value);
    };
    if ($@) {
        warn $@;
    }
}


sub put 
{
    my ($self, $key, $value) = validate_pos(@_, 1, 1, 1);
    printf "%s\t%s\n", $key, $value;
}


sub counter
{
    my ( $self, %opts ) = @_;

    my $group   = $opts{group}   || 'group';
    my $counter = $opts{counter} || 'counter';
    my $amount  = $opts{amount}  || 'amount';

    my $msg
        = sprintf( "reporter:counter:%s,%s,%s\n", $group, $counter, $amount );
    print STDERR $msg;
}


sub status
{
    my ($self, $message ) = @_;

    my $msg = sprintf( "reporter:status:%s\n", $message);
    print STDERR $msg;
}

1;

__END__