App-Oozie

 view release on metacpan or  search on metacpan

lib/App/Oozie/Role/NameNode.pm  view on Meta::CPAN

package App::Oozie::Role::NameNode;

use 5.014;
use strict;
use warnings;

our $VERSION = '0.020'; # VERSION

use namespace::autoclean -except => [qw/_options_data _options_config/];

use Log::Log4perl;
use Moo::Role;
use MooX::Options;
use Net::Hadoop::YARN::NameNode::JMX;
use App::Oozie::Types::Common  qw( ArrayRef Str );
use App::Oozie::Constants qw(
    DEFAULT_NAMENODE_RPC_PORT
);

option yarn_namenodes => (
    is       => 'rw',
    isa      => ArrayRef[Str],
    format   => 's@',
    doc      => 'YARN NameNode pair',
    optional => 1,
);

has active_namenode => (
    is      => 'rw',
    default => sub {
        my $self = shift;
        my $opt = $self->yarn_namenodes;
        my $nn = Net::Hadoop::YARN::NameNode::JMX->new( $opt ? @{ $opt } : () );
        return $nn->active_namenode;
    },
    lazy => 1,
);

has namenode_rpc_port => (
    is      => 'rw',
    default => sub { DEFAULT_NAMENODE_RPC_PORT },
);

1;

__END__

=pod

=encoding UTF-8

=head1 NAME

App::Oozie::Role::NameNode

=head1 VERSION

version 0.020

=head1 SYNOPSIS

    use Moo::Role;
    use MooX::Options;
    with 'App::Oozie::Role::NameNode';

=head1 DESCRIPTION

This is a Role to be consumed by Oozie tooling classes and
defines various fields.



( run in 1.167 second using v1.01-cache-2.11-cpan-56fb94df46f )