You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by be...@apache.org on 2011/06/05 10:27:40 UTC
svn commit: r1132037 - in /incubator/mesos/trunk/ec2: ./
deploy.lucid64/root/mesos-ec2/
deploy.lucid64/root/mesos-ec2/hadoop-framework-conf/
Author: benh
Date: Sun Jun 5 08:27:39 2011
New Revision: 1132037
URL: http://svn.apache.org/viewvc?rev=1132037&view=rev
Log:
Updating EC2 scripts to handle --ft N > 1 correctly.
Added:
incubator/mesos/trunk/ec2/deploy.lucid64/root/mesos-ec2/masters
incubator/mesos/trunk/ec2/deploy.lucid64/root/mesos-ec2/zoo
Removed:
incubator/mesos/trunk/ec2/deploy.lucid64/root/mesos-ec2/master
Modified:
incubator/mesos/trunk/ec2/deploy.lucid64/root/mesos-ec2/hadoop-framework-conf/core-site.xml
incubator/mesos/trunk/ec2/deploy.lucid64/root/mesos-ec2/hadoop-framework-conf/mapred-site.xml
incubator/mesos/trunk/ec2/deploy.lucid64/root/mesos-ec2/setup
incubator/mesos/trunk/ec2/deploy.lucid64/root/mesos-ec2/start-mesos
incubator/mesos/trunk/ec2/mesos_ec2.py
Modified: incubator/mesos/trunk/ec2/deploy.lucid64/root/mesos-ec2/hadoop-framework-conf/core-site.xml
URL: http://svn.apache.org/viewvc/incubator/mesos/trunk/ec2/deploy.lucid64/root/mesos-ec2/hadoop-framework-conf/core-site.xml?rev=1132037&r1=1132036&r2=1132037&view=diff
==============================================================================
--- incubator/mesos/trunk/ec2/deploy.lucid64/root/mesos-ec2/hadoop-framework-conf/core-site.xml (original)
+++ incubator/mesos/trunk/ec2/deploy.lucid64/root/mesos-ec2/hadoop-framework-conf/core-site.xml Sun Jun 5 08:27:39 2011
@@ -12,7 +12,7 @@
<property>
<name>fs.default.name</name>
- <value>hdfs://{{master}}:9000</value>
+ <value>hdfs://{{active_master}}:9000</value>
</property>
<property>
Modified: incubator/mesos/trunk/ec2/deploy.lucid64/root/mesos-ec2/hadoop-framework-conf/mapred-site.xml
URL: http://svn.apache.org/viewvc/incubator/mesos/trunk/ec2/deploy.lucid64/root/mesos-ec2/hadoop-framework-conf/mapred-site.xml?rev=1132037&r1=1132036&r2=1132037&view=diff
==============================================================================
--- incubator/mesos/trunk/ec2/deploy.lucid64/root/mesos-ec2/hadoop-framework-conf/mapred-site.xml (original)
+++ incubator/mesos/trunk/ec2/deploy.lucid64/root/mesos-ec2/hadoop-framework-conf/mapred-site.xml Sun Jun 5 08:27:39 2011
@@ -7,7 +7,7 @@
<property>
<name>mapred.job.tracker</name>
- <value>{{master}}:9001</value>
+ <value>{{active_master}}:9001</value>
</property>
<property>
@@ -17,7 +17,7 @@
<property>
<name>mapred.mesos.master</name>
- <value>1@{{master}}:1111</value>
+ <value>1@{{active_master}}:5050</value>
</property>
<property>
Added: incubator/mesos/trunk/ec2/deploy.lucid64/root/mesos-ec2/masters
URL: http://svn.apache.org/viewvc/incubator/mesos/trunk/ec2/deploy.lucid64/root/mesos-ec2/masters?rev=1132037&view=auto
==============================================================================
--- incubator/mesos/trunk/ec2/deploy.lucid64/root/mesos-ec2/masters (added)
+++ incubator/mesos/trunk/ec2/deploy.lucid64/root/mesos-ec2/masters Sun Jun 5 08:27:39 2011
@@ -0,0 +1 @@
+{{master_list}}
Modified: incubator/mesos/trunk/ec2/deploy.lucid64/root/mesos-ec2/setup
URL: http://svn.apache.org/viewvc/incubator/mesos/trunk/ec2/deploy.lucid64/root/mesos-ec2/setup?rev=1132037&r1=1132036&r2=1132037&view=diff
==============================================================================
--- incubator/mesos/trunk/ec2/deploy.lucid64/root/mesos-ec2/setup (original)
+++ incubator/mesos/trunk/ec2/deploy.lucid64/root/mesos-ec2/setup Sun Jun 5 08:27:39 2011
@@ -6,8 +6,11 @@ BRANCH=$3
# By exporting this git won't ask to accept a key.
export GIT_SSH=/root/mesos-ec2/ssh-no-keychecking
-MASTER=/root/mesos-ec2/master
+MASTERS=/root/mesos-ec2/masters
SLAVES=/root/mesos-ec2/slaves
+ZOO=/root/mesos-ec2/zoo
+
+ISFT=`cat $ZOO | wc -l`
# Scripts that get used for/while running Mesos.
SCRIPTS="copy-dir
@@ -45,10 +48,26 @@ cd /root/mesos-ec2
echo "Setting executable permissions on scripts..."
for s in $SCRIPTS; do chmod u+x $s; done
-echo "SSH'ing to local machine to approve key..."
-ssh -q $SSH_OPTS `cat $MASTER` echo -n
+echo "SSH'ing to master machine(s) to approve key(s)..."
+for master in `cat $MASTERS`; do
+ echo $master
+ ssh $SSH_OPTS $master echo -n &
+ sleep 0.3
+done
+
ssh -q $SSH_OPTS localhost echo -n
+if [[ $ISFT != 0 ]] ; then
+ echo "SSH'ing to Zoo server(s) to approve keys..."
+ zid=1
+ for zoo in `cat $ZOO`; do
+ echo $zoo
+ ssh $SSH_OPTS $zoo echo -n \; mkdir -p /tmp/zookeeper \; echo $zid \> /tmp/zookeeper/myid
+ zid=$(($zid+1))
+ sleep 0.3
+ done
+fi
+
echo "SSH'ing to slaves to approve keys..."
for slave in `cat $SLAVES`; do
echo $slave
@@ -58,6 +77,22 @@ done
echo "Waiting for commands to finish..."
wait
+if [[ `cat $MASTERS | wc -l` > 1 ]] ; then
+ echo "RSYNC'ing /root/mesos-ec2 to other master servers..."
+ for master in `cat $MASTERS | sed '1d'`; do
+ echo $master
+ rsync -e "ssh $SSH_OPTS" -az /root/mesos-ec2 $master:/root
+ done
+fi
+
+if [[ $ISFT != 0 ]] ; then
+ echo "RSYNC'ing /root/mesos-ec2 to other Zoo servers..."
+ for zoo in `cat $ZOO`; do
+ echo $zoo
+ rsync -e "ssh $SSH_OPTS" -az /root/mesos-ec2 $zoo:/root
+ done
+fi
+
echo "RSYNC'ing /root/mesos-ec2 to slaves..."
for slave in `cat $SLAVES`; do
echo $slave
Modified: incubator/mesos/trunk/ec2/deploy.lucid64/root/mesos-ec2/start-mesos
URL: http://svn.apache.org/viewvc/incubator/mesos/trunk/ec2/deploy.lucid64/root/mesos-ec2/start-mesos?rev=1132037&r1=1132036&r2=1132037&view=diff
==============================================================================
--- incubator/mesos/trunk/ec2/deploy.lucid64/root/mesos-ec2/start-mesos (original)
+++ incubator/mesos/trunk/ec2/deploy.lucid64/root/mesos-ec2/start-mesos Sun Jun 5 08:27:39 2011
@@ -1,8 +1,8 @@
#!/bin/bash
cd /root/mesos-ec2
-MASTER="`cat master`"
-MASTER1="`cat master | head -1`"
+MASTERS="`cat masters`"
+ACTIVE_MASTER="`cat masters | head -1`"
SLAVES="`cat slaves`"
ZOO1="`cat zoo | head -1`"
ZOO="`cat zoo`"
@@ -12,7 +12,7 @@ ISFT="`cat zoo | wc -l`"
SSH_OPTS="-o StrictHostKeyChecking=no -o ConnectTimeout=2"
if [[ $ISFT == 0 ]]; then
- master_arg="1@${MASTER1}:1111"
+ master_arg="1@${ACTIVE_MASTER}:5050"
else
master_arg="zoo://"
add=""
@@ -34,14 +34,14 @@ if [[ $ISFT != 0 ]]; then
sleep 2
masterid=1
- for master in $MASTER; do
- echo "Starting master $masterid on $MASTER"
- ssh $SSH_OPTS $master "/root/mesos-ec2/mesos-daemon mesos-master -p 1111 -f $master_arg </dev/null >/dev/null"
+ for master in $MASTERS; do
+ echo "Starting master $masterid on $master"
+ ssh $SSH_OPTS $master "/root/mesos-ec2/mesos-daemon mesos-master -p 5050 -u $master_arg </dev/null >/dev/null"
masterid=$(($masterid+1))
done
else
- echo "Starting master on $MASTER1"
- ssh $SSH_OPTS $MASTER1 "/root/mesos-ec2/mesos-daemon mesos-master -p 1111 </dev/null >/dev/null"
+ echo "Starting master on $ACTIVE_MASTER"
+ ssh $SSH_OPTS $ACTIVE_MASTER "/root/mesos-ec2/mesos-daemon mesos-master -p 5050 </dev/null >/dev/null"
fi
COUNT=''
@@ -73,7 +73,7 @@ fi
for slave in $SLAVES; do
echo "Starting $COUNT slave(s) on $slave"
- ssh $SSH_OPTS $slave "for ((i = 0; i < $COUNT; i++)); do /root/mesos-ec2/mesos-daemon mesos-slave ${master_arg} $CPUS $MEM; done </dev/null >/dev/null" &
+ ssh $SSH_OPTS $slave "for ((i = 0; i < $COUNT; i++)); do /root/mesos-ec2/mesos-daemon mesos-slave -u ${master_arg} $CPUS $MEM; done </dev/null >/dev/null" &
sleep 0.1
done
wait
@@ -86,33 +86,6 @@ if [[ $ISFT != 0 ]]; then
fi
echo "Everything's started! You can view the master Web UI at"
-for master in $MASTER; do
+for master in $MASTERS; do
echo " http://$master:8080"
done
-
-
-#cd /root/mesos-ec2
-#
-#MASTERS="`cat masters`"
-#SLAVES="`cat slaves`"
-#
-#SSH_OPTS="-o StrictHostKeyChecking=no -o ConnectTimeout=2"
-#
-#for master in $MASTERS; do
-# echo "Starting master on $master"
-# ssh $SSH_OPTS $master "/root/mesos-ec2/mesos-daemon mesos-master </dev/null >/dev/null"
-# sleep 0.1
-#done
-#wait
-#
-#for slave in $SLAVES; do
-# echo "Starting slave on $slave"
-# ssh $SSH_OPTS $slave "/root/mesos-ec2/mesos-daemon mesos-slave -u 1@$MASTER:5050 </dev/null >/dev/null" &
-# sleep 0.1
-#done
-#wait
-#
-#echo "Everything's started! You can view the master Web UI(s) at"
-#for master in $MASTERS; do
-# echo " http://$master:8080"
-#done
Added: incubator/mesos/trunk/ec2/deploy.lucid64/root/mesos-ec2/zoo
URL: http://svn.apache.org/viewvc/incubator/mesos/trunk/ec2/deploy.lucid64/root/mesos-ec2/zoo?rev=1132037&view=auto
==============================================================================
--- incubator/mesos/trunk/ec2/deploy.lucid64/root/mesos-ec2/zoo (added)
+++ incubator/mesos/trunk/ec2/deploy.lucid64/root/mesos-ec2/zoo Sun Jun 5 08:27:39 2011
@@ -0,0 +1 @@
+{{zoo}}
Modified: incubator/mesos/trunk/ec2/mesos_ec2.py
URL: http://svn.apache.org/viewvc/incubator/mesos/trunk/ec2/mesos_ec2.py?rev=1132037&r1=1132036&r2=1132037&view=diff
==============================================================================
--- incubator/mesos/trunk/ec2/mesos_ec2.py (original)
+++ incubator/mesos/trunk/ec2/mesos_ec2.py Sun Jun 5 08:27:39 2011
@@ -192,7 +192,7 @@ def get_existing_cluster(conn, opts, clu
print "Found master regid: " + master_res.id
print "Found slave regid: " + slave_res.id
if zoo_res != None:
- print "Found slave regid: " + zoo_res.id
+ print "Found zoo regid: " + zoo_res.id
return (master_res, slave_res, zoo_res)
else:
if master_res == None and slave_res != None:
@@ -208,10 +208,11 @@ def deploy_files(conn, root_dir, instanc
# TODO: Speed up deployment by creating a temp directory with the
# template-transformed files and then rsyncing it
- master = master_res.instances[0].public_dns_name
+ active_master = master_res.instances[0].public_dns_name
template_vars = {
- "master" : '\n'.join([i.public_dns_name for i in master_res.instances]),
+ "master_list" : '\n'.join([i.public_dns_name for i in master_res.instances]),
+ "active_master" : active_master,
"slave_list" : '\n'.join([i.public_dns_name for i in slave_res.instances])
}
@@ -222,11 +223,11 @@ def deploy_files(conn, root_dir, instanc
for path, dirs, files in os.walk(root_dir):
dest_dir = os.path.join('/', path[len(root_dir):])
if len(files) > 0: # Only mkdir for low-level directories since we use -p
- ssh(master, opts, 'mkdir -p "%s"' % dest_dir)
+ ssh(active_master, opts, 'mkdir -p "%s"' % dest_dir)
for filename in files:
if filename[0] not in '#.~' and filename[-1] != '~':
dest_file = os.path.join(dest_dir, filename)
- print dest_file
+ print "Setting up '%s' file." % dest_file
with open(os.path.join(path, filename)) as file:
text = file.read()
for key in template_vars:
@@ -234,7 +235,7 @@ def deploy_files(conn, root_dir, instanc
temp_file = NamedTemporaryFile()
temp_file.write(text)
temp_file.flush()
- scp(master, opts, temp_file.name, dest_file)
+ scp(active_master, opts, temp_file.name, dest_file)
temp_file.close()