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 )