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()