diff --git a/bin/start-slaves.sh b/bin/start-slaves.sh
index f348ea063fade59245201b23edfcd81a1e327e0d..74b70a24be976b5804cca4495fcbe23674ba3279 100755
--- a/bin/start-slaves.sh
+++ b/bin/start-slaves.sh
@@ -14,7 +14,21 @@ if [ "$SPARK_MASTER_PORT" = "" ]; then
   SPARK_MASTER_PORT=7077
 fi
 
-hostname=`hostname`
-ip=`host "$hostname" | cut -d " " -f 4`
+if [ "$SPARK_MASTER_IP" = "" ]; then
+  hostname=`hostname`
+  hostouput=`host "$hostname"`
+
+  if [[ "$hostouput" == *"not found"* ]]; then
+    echo $hostouput
+    echo "Fail to identiy the IP for the master."
+    echo "Set SPARK_MASTER_IP explicitly in configuration instead."
+    exit 1
+  fi
+  ip=`host "$hostname" | cut -d " " -f 4`
+else
+  ip=$SPARK_MASTER_IP
+fi
+
+echo "Master IP: $ip"
 
 "$bin"/spark-daemons.sh start spark.deploy.worker.Worker spark://$ip:$SPARK_MASTER_PORT
\ No newline at end of file