Net-FullAuto
view release on metacpan or search on metacpan
lib/Net/FullAuto/ISets/Amazon/Hadoop_is.pm view on Meta::CPAN
($stdout,$stderr)=$handle->cmd(
"sudo sed -i \'/[<]configuration[>]/a$ad\' ".
"/opt/$targz/etc/hadoop/core-site.xml");
($stdout,$stderr)=$handle->cmd( # bash shell specific
"sudo sed -i \'s/NL/\'\"`echo \\\\\\n`/g\" ".
"/opt/$targz/etc/hadoop/core-site.xml");
$ad='NL<property>NL<name>dfs.replication</name>NL'. # NL is newline
'<value>2</value>NL'.
'</property>NLNL'.
'<property>NL'.
'<name>dfs.permissions</name>NL'.
'<value>false</value>NL'.
'</property>';
($stdout,$stderr)=$handle->cmd(
"sudo sed -i \'/[<]configuration[>]/a$ad\' ".
"/opt/$targz/etc/hadoop/hdfs-site.xml");
($stdout,$stderr)=$handle->cmd( # bash shell specific
"sudo sed -i \'s/NL/\'\"`echo \\\\\\n`/g\" ".
"/opt/$targz/etc/hadoop/hdfs-site.xml");
($stdout,$stderr)=$handle->cmd(
"sudo cp /opt/$targz/etc/hadoop/mapred-site.xml.template ".
"/opt/$targz/etc/hadoop/mapred-site.xml");
$ad='NL<property>NL<name>mapred.job.tracker</name>NL'. # NL is newline
'<value>hdfs://'.$mdns.':8021</value>NL'.
'</property>';
($stdout,$stderr)=$handle->cmd(
"sudo sed -i \'/[<]configuration[>]/a$ad\' ".
"/opt/$targz/etc/hadoop/mapred-site.xml");
($stdout,$stderr)=$handle->cmd( # bash shell specific
"sudo sed -i \'s/NL/\'\"`echo \\\\\\n`/g\" ".
"/opt/$targz/etc/hadoop/mapred-site.xml");
($stdout,$stderr)=$handle->cmd(
"sudo rm -rvf /opt/$targz/etc/hadoop/slaves",'__display__');
($stdout,$stderr)=$handle->cmd(
"sudo touch /opt/$targz/etc/hadoop/slaves",'__display__');
($stdout,$stderr)=$handle->cmd(
"sudo touch /opt/$targz/etc/hadoop/masters",'__display__');
($stdout,$stderr)=$handle->cmd(
"sudo chmod -v 777 /opt/$targz/etc/hadoop/slaves",'__display__');
($stdout,$stderr)=$handle->cmd(
"sudo chmod -v 777 /opt/$targz/etc/hadoop/masters",'__display__');
if ($cnt==3) {
my @dns=();
foreach my $inum (0..3) {
my $inid=$main::aws->{$server_type}->[$inum]->[0]->{InstanceId};
$c="aws ec2 describe-instances --instance-ids $inid 2>&1";
($hash,$output,$error)=run_aws_cmd($c);
my $dns=$hash->{Reservations}->[0]->{Instances}->[0]
->{PublicDnsName};
push @dns,$dns;
}
foreach my $srv (0..3) {
my $inst=$main::aws->{$server_type}->[$srv]->[1];
foreach my $in (0..3) {
my $type=($in<2)?'masters':'slaves';
print "UPDATING $type with $dns[$in]\n";
($stdout,$stderr)=$inst->cmd(
"sudo echo $dns[$in] >> /opt/$targz/etc/hadoop/$type",
'__display__');
($stdout,$stderr)=$inst->cmd(
"sudo chown -Rv ubuntu:ubuntu /opt/$targz",
'__display__');
}
($stdout,$stderr)=$inst->cmd(
"sudo chmod -v 644 /opt/$targz/etc/hadoop/masters",
'__display__');
($stdout,$stderr)=$inst->cmd(
"sudo chmod -v 644 /opt/$targz/etc/hadoop/slaves",
'__display__');
}
my $starting_hadoop=<<'END';
.oPYo. ooooo .oo .oPYo. ooooo o o o .oPYo. o o .oPYo.
8 8 .P 8 8 `8 8 8 8b 8 8 8 8 8 8 8
`Yooo. 8 .P 8 8YooP' 8 8 8`b 8 8 8 8 8YooP'
`8 8 oPooo8 8 `b 8 8 8 `b 8 8 oo 8 8 8
8 8 .P 8 8 8 8 8 8 `b8 8 8 8 8 8
`YooP' 8 .P 8 8 8 8 8 8 `8 `YooP8 `YooP' 8
....................................................................
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
,--,
,--/ , `.~,
(_/ / ^ ^l i __ __
| V | __/ / /_ ____ _____/ /___ ____ ____
/ \/ \|U / __ \/ __ `/ __ / __ \/ __ \/ __ \
Apache⢠\/|_|< /_| / / / / /_/ / /_/ / /_/ / /_/ / /_/ /
/_/ /_/\__,_/\__,_/\____/\____/ .___/
/_/ ®
http://hadoop.apache.org
(The Apache⢠Foundation is **NOT** a sponsor of the FullAuto© Project.)
END
print $starting_hadoop;sleep 10;
$master=$main::aws->{$server_type}->[0]->[1];
($stdout,$stderr)=$master->cmd(
"/opt/$targz/bin/hdfs namenode -format",'__display__');
($stdout,$stderr)=$master->cwd("/opt/$targz/sbin");
$master->{_cmd_handle}->print('./start-all.sh');
my $prompt=substr($master->{_cmd_handle}->prompt(),1,-1);
my $cnt=0;my $test_output='';
foreach (1..100) {
my $output=Net::FullAuto::FA_Core::fetch($master);
$test_output.=$output;
last if $test_output=~/$prompt/;
print $output;
if ($test_output=~/[(]yes\/no[)][?]/) {
$master->{_cmd_handle}->print("yes");
$test_output='';
}
}
print "\n ACCESS HADOOP UI AT:\n\n",
" http://$mdns:50070/dfshealth.html\n";
my $thanks=<<'END';
______ _ ,
/ / / ' ) / /
--/ /_ __. ____ /_ / / __ . . /
( run in 0.600 second using v1.01-cache-2.11-cpan-71847e10f99 )