Net-Hadoop-YARN

 view release on metacpan or  search on metacpan

lib/Net/Hadoop/YARN/ApplicationMaster.pm  view on Meta::CPAN

        next if ! Ref::Util::is_hashref $thing;
        $thing->{__from_history} = 1;
    }

    return @rv;
}

sub _extract_ids_from_error_html {
    my $self  = shift;
    my $error = shift || Carp::confess "No error message specified!";
    my(undef, $html) = split m{\Q<!DOCTYPE\E}xms, $error, 2;
    $html = '<!DOCTYPE' . $html;
    my $parser = HTML::PullParser->new(
                    doc         => \$html,
                    start       => 'event, tagname, @attr',
                    report_tags => [qw( a )],
                ) || Carp::confess "Can't parse HTML received from the API: $!";
    my %link;
    while ( my $token = $parser->get_token ) {
        next if $token->[0] ne 'start';
        my($type, $tag, %attr) = @{ $token };

lib/Net/Hadoop/YARN/NameNode/JMX.pm  view on Meta::CPAN

                1;
            } or do {
                my $eval_error = $@ || 'Zombie error';
                if (
                       $eval_error =~ $RE_TIMEOUT
                    || $eval_error =~ $RE_DEAD
                ) {
                    next NN_PROBE;
                }
                die sprintf 'Error while probing the name node `%s`: %s',
                                ( split m{ [:] }xms, $nn, 2 )[0],
                                $eval_error,
                ;
            };
            next NN_PROBE if ref $jmx ne 'HASH';
            my $status = $jmx->{beans}[0]{'tag.HAState'};
            next NN_PROBE if ! $status || $status ne 'active';

            if ( $opt->{real_hostname} ) {
                $rv = $jmx->{beans}[0]{'tag.Hostname'} || die "Unable to locate tag.Hostname from JMX";
                if ( ! $opt->{hostname_only} ) {
                    $rv .= ':' . (split m{ [:] }xms, $nn )[1]
                }
            }
            else {
                $rv = $nn;
            }

            last NN_PROBE;
        }
        if ( ! $rv ) {
            if ( ++$try <= 1 ) {
                sleep 1;
                redo NN_TRY;
            }
            die sprintf 'Failed to locate the active namenode (tried %s times)', $try;
        }
    }

    return $opt->{hostname_only} ? (split m{ [:] }xms, $rv )[0] : $rv;
}

sub startupProgress {
    my $self = shift;
    my @nn   = @{ $self->namenodes };
    my $uri_tmpl = 'http://%s/%s';

    NAME_NODE: while ( my $nn = shift @nn ) {
        my $uri  = sprintf $uri_tmpl, $nn, 'startupProgress';
        my $resp;

lib/Net/Hadoop/YARN/ResourceManager.pm  view on Meta::CPAN

        }
    }

    if ( ! $rv ) {
        die sprintf "Failed to locate the active YARN Resource Manager from these hosts: %s",
                        join( q{, }, @{ $self->servers } ),
        ;
    }

    if ( $opt->{hostname_only} ) {
        return +( split m{[:]}xms, $rv )[0];
    }

    return $rv;
}

sub info {
    my $self = shift;
    my $opt  = is_hashref $_[0] ? shift @_ : {};

    my $res = $self->_get(

lib/Net/Hadoop/YARN/ResourceManager/Scheduler/UserApps.pm  view on Meta::CPAN

            startedTime
        ) ) {
            next if ! exists $app->{ $time_field };
            if ( $app->{ $time_field } ) {
                $app->{ $time_field . '_fmt' } = $format_epoch->( $app->{ $time_field } / 1000);
            }
        }

        if ( $app->{name} =~ m{ \Q-oozie-oozi-W\E \z }xms ) {
            my %name = map  { @{ $_ } > 1 ? @{ $_ } : ( $_->[0] => 1 ) }
                        map { [ split m{ [=] }xms, $_, 2 ] }
                        split m{ [:] }xms, $app->{name};
            $name{workflow_name} = delete $name{W} if $name{W};
            $name{action_name}   = delete $name{A} if $name{A};
            $name{action_type}   = delete $name{T} if $name{T};
            $name{id}            = delete $name{ID} if $name{ID};
            $app->{oozie_meta} = \%name;
            $app->{oozie_id}   = $name{id} if $name{id};
        }

        push @{ $apps_by_state{ $app->{state} } ||= [] }, $app;
    }

lib/Net/Hadoop/YARN/Roles/AppMasterHistoryServer.pm  view on Meta::CPAN

            # check the list of params validates against the list of
            # placeholders gathered in the url split above
            my $params_idx = 0;

            for my $param ( @_ ) {
                my $v = $validations[ $params_idx ]
                            || do {
                                my $what = $key =~ m{ \A _ }xms
                                         ? do {
                                                if ( my $who = (caller 1)[3] ) {
                                                    my($short) = (split m{ [:]{2} }xms, $who)[-1];
                                                    sprintf qq{%s` via: `%s}, $short, $who;
                                                }
                                                else {
                                                    $key;
                                                }
                                            }
                                         : $key
                                         ;
                                croak sprintf "No validator for `%s` [%s]. Be sure that `%s` is a valid API endpoint for this object",
                                                    $param,

lib/Net/Hadoop/YARN/Roles/JMX.pm  view on Meta::CPAN


    return \%rv;
}

sub _expand {
    my $self      = shift;
    my $stat_name = shift;
    my $response  = shift;
    my $rv        = shift;

    my @names = split m{ [.,=:] }xms, $stat_name;

    if ( @names > 1 ) {
        my $slot = $rv->{ shift @names } ||= {};

        while ( my $name = shift @names ) {
            if ( @names ) {
                $slot = $slot->{ $name } ||= {};
            }
            else {
                $slot->{$name} = $response;



( run in 0.859 second using v1.01-cache-2.11-cpan-71847e10f99 )