diff --git a/image/scripts/hadoop-single-setup.sh b/image/scripts/hadoop-single-setup.sh
index b9be44aba75dea8c72acb4e4e0a9d1be8d68fd36..a3458e80bbc5acb4b27c3d7eae9651dfb173018c 100755
--- a/image/scripts/hadoop-single-setup.sh
+++ b/image/scripts/hadoop-single-setup.sh
@@ -4,6 +4,12 @@ if ! hostname || ! hostname -f || ! ping -c1 `hostname` >/dev/null || ! ping -c1
 	/usr/local/bin/fix-hostname.sh master hadoop
 fi
 
-mkdir /data
-puppet apply --test /root/single.pp \
-	&& puppet apply --test /root/single2.pp
+mkdir /data 2>/dev/null || :
+
+puppet apply --test /root/single.pp
+if test $? = 0 -o $? = 2; then
+	puppet apply --test /root/single2.pp
+else
+	echo "First stage setup failed"
+	exit $?
+fi