Apache-Hadoop-WebHDFS
view release on metacpan or search on metacpan
lib/Apache/Hadoop/WebHDFS.pm view on Meta::CPAN
} else {
$url = $url . "&recursive=false";
}
$self->_SUPER_delete( $url );
return $self;
}
sub create {
# curl -i -X PUT "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=CREATE
# [&overwrite=<true|false>][&blocksize=<LONG>][&replication=<SHORT>]
# [&permission=<OCTAL>][&buffersize=<INT>]"
my ( $self, $content, $file_src, $file_dest, $perms, $overwrite, $blocksize, $replication, $buffersize ) = undef;
$self = shift;
if ($_[0]->{'permission'}) { $perms = $_[0]->{'permission'}; } else { $perms = '000'; }
if ($_[0]->{'overwrite'}) { $overwrite = $_[0]->{'overwrite'}; } else { $overwrite='false'; }
if ($_[0]->{'srcfile'}) { $file_src = $_[0]->{'srcfile'}; } else { croak ("Need local source file to copy to HDFS") ;}
if ($_[0]->{'dstfile'}) { $file_dest = $_[0]->{'dstfile'}; } else { croak ("Need HDFS destination before file create can happen") ;}
if ($_[0]->{'blocksize'}) { $blocksize = $_[0]->{'blocksize'}; }
if ($_[0]->{'replication'}) { $replication = $_[0]->{'replication'}; }
lib/Apache/Hadoop/WebHDFS.pm view on Meta::CPAN
if ( $buffersize ) { $url = $url . "&buffersize=" . $buffersize ; }
map_file($content => $file_src, "<");
$self->put( $url, content => $content );
return $self;
}
# TODO need to add 'append' method - for people wanting to corrupt hdfs. :)
sub mkdirs {
# curl -i -X PUT "http://<HOST>:<PORT>/<PATH>?op=MKDIRS[&permission=<OCTAL>]"
my ( $self, $perms, $path, $url ) = undef;
$self = shift;
if ($_[0]->{'path'}) { $path = $_[0]->{'path'}; } else { croak ("I need a HDFS location to create directory"); }
if ($_[0]->{'permissons'}) { $perms = $_[0]->{'permisssions'}; } else { $perms = '000'; }
if ($self->{'authmethod'} eq 'gssapi') {
$url = 'http://' . $self->{'namenode'} . ':' . $self->{'namenodeport'} . '/webhdfs/v1' . $path . '?&op=MKDIRS&permission=' . $perms ;
} elsif ( $self->{'authmethod'} eq 'unsecure' ) {
croak ("I need a 'user' value if authmethod is 'none'") if ( !$self->{'user'} ) ;
lib/Apache/Hadoop/WebHDFS.pm view on Meta::CPAN
if ( $self->{'webhdfstoken'} ) {
$url = $url . "&delegation=" . $self->{'webhdfstoken'};
}
$self->put( $url );
return $self;
}
sub setpermission {
# curl -i -X PUT "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=SETPERMISSION[&permission=<OCTAL>]"
my ( $self, $path, $url, $perms ) = undef;
$self = shift;
if ($_[0]->{'path'}) { $path = $_[0]->{'path'}; } else { croak ("I need a HDFS path to set permmissions"); }
if ($_[0]->{'permissison'}) { $perms = $_[0]->{'permisssion'}; }
if ($self->{'authmethod'} eq 'gssapi') {
$url = 'http://' . $self->{'namenode'} . ':' . $self->{'namenodeport'} . '/webhdfs/v1' . $path . '?op=SETPERMISSION';
} elsif ( $self->{'authmethod'} eq 'unsecure' ) {
croak ("I need a 'user' value if authmethod is 'none'") if ( !$self->{'user'} ) ;
$url = 'http://' . $self->{'namenode'} . ':' . $self->{'namenodeport'} . '/webhdfs/v1' . $path . '?op=SETPERMISSION' . '&user.name=' . $self->{'user'}; ;
lib/Apache/Hadoop/WebHDFS.pm view on Meta::CPAN
if ($perms) {
$url = $url . "&permission=" . $perms;
}
$self->put( $url );
return $self;
}
sub setowner {
# curl -i -X PUT "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=SETOWNER[&owner=<USER>][&group=<GROUP>]"
my ( $self, $path, $user, $group, $url ) = undef;
$self = shift;
if ($_[0]->{'path'} ) { $path = $_[0]->{'path'}; } else { croak ("I need a HDFS path before changing ownership"); }
if ($_[0]->{'user'} ) { $user = $_[0]->{'user'}; }
if ($_[0]->{'group'}) { $group = $_[0]->{'group'}; }
if ($self->{'authmethod'} eq 'gssapi') {
$url = 'http://' . $self->{'namenode'} . ':' . $self->{'namenodeport'} . '/webhdfs/v1' . $path . '?op=SETOWNER';
} elsif ( $self->{'authmethod'} eq 'unsecure' ) {
croak ("I need a 'user' value if authmethod is 'none'") if ( !$self->{'user'} ) ;
lib/Apache/Hadoop/WebHDFS.pm view on Meta::CPAN
if ( $self->{'webhdfstoken'} ) {
$url = $url . "&delegation=" . $self->{'webhdfstoken'};
}
$self->put( $url );
return $self;
}
sub setreplication {
#curl -i -X PUT "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=SETREPLICATION[&replication=<SHORT>]"
my ( $self, $path, $rep,$url ) = undef;
$self = shift;
if ($_[0]->{'path'} ) { $path = $_[0]->{'path'}; } else { croak ("I need a HDFS path before changing ownership"); }
if ($_[0]->{'replication'} ) { $rep = $_[0]->{'replication'}; }
if ($self->{'authmethod'} eq 'gssapi') {
$url = 'http://' . $self->{'namenode'} . ':' . $self->{'namenodeport'} . '/webhdfs/v1' . $path . '?op=SETREPLICATION';
} elsif ( $self->{'authmethod'} eq 'unsecure' ) {
croak ("I need a 'user' value if authmethod is 'none'") if ( !$self->{'user'} ) ;
$url = 'http://' . $self->{'namenode'} . ':' . $self->{'namenodeport'} . '/webhdfs/v1' . $path . '?op=SETREPLICATION' . '&user.name=' . $self->{'user'}; ;
lib/Apache/Hadoop/WebHDFS.pm view on Meta::CPAN
if ( $self->{'webhdfstoken'} ) {
$url = $url . "&delegation=" . $self->{'webhdfstoken'};
}
$self->put( $url );
return $self;
}
sub settimes {
# curl -i -X PUT "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=SETTIMES[&modificationtime=<TIME>][&accesstime=<TIME>]"
my ( $url, $self, $path, $modtime, $accesstime ) = undef;
$self = shift;
if ($_[0]->{'path'} ) { $path = $_[0]->{'path'}; } else { croak ("I need a HDFS path before changing ownership"); }
if ($_[0]->{'modificationtime'} ) { $modtime = $_[0]->{'modificationtime'}; }
if ($_[0]->{'accesstime'} ) { $accesstime = $_[0]->{'accesstime'}; }
if ($self->{'authmethod'} eq 'gssapi') {
$url = 'http://' . $self->{'namenode'} . ':' . $self->{'namenodeport'} . '/webhdfs/v1' . $path . '?op=SETTIMES';
} elsif ( $self->{'authmethod'} eq 'unsecure' ) {
lib/Apache/Hadoop/WebHDFS.pm view on Meta::CPAN
}
if ( $self->{'webhdfstoken'} ) {
$url = $url . "&delegation=" . $self->{'webhdfstoken'};
}
$self->get( $url );
return $self;
}
sub rename {
# curl -i -X PUT "<HOST>:<PORT>/webhdfs/v1/<PATH>?op=RENAME&destination=<PATH>"
#my $url = 'http://' . $self->{'namenode'} . ':' . $self->{'namenodeport'} . '/webhdfs/v1' . $src . '?op=RENAME&destination=' . $dst;
my ( $self, $src, $dst ) = undef;
$self = shift;
if ($_[0]->{'srcfile'}) { $src = $_[0]->{'srcfile'}; } else { croak ("Need HDFS source before rename can happen") ;}
if ($_[0]->{'dstfile'}) { $dst = $_[0]->{'dstfile'}; } else { croak ("Need HDFS destination before rename can happen") ;}
my $url;
if ($self->{'authmethod'} eq 'gssapi') {
$url = 'http://' . $self->{'namenode'} . ':' . $self->{'namenodeport'} . '/webhdfs/v1' . $src . '?op=RENAME&destination=' . $dst ;
( run in 0.230 second using v1.01-cache-2.11-cpan-4e96b696675 )