You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@samza.apache.org by xi...@apache.org on 2018/01/09 01:25:51 UTC

[10/33] samza-hello-samza git commit: SAMZA-935 - hello-samza add kafka wait for dependent services

SAMZA-935 - hello-samza add kafka wait for dependent services


Project: http://git-wip-us.apache.org/repos/asf/samza-hello-samza/repo
Commit: http://git-wip-us.apache.org/repos/asf/samza-hello-samza/commit/2214946c
Tree: http://git-wip-us.apache.org/repos/asf/samza-hello-samza/tree/2214946c
Diff: http://git-wip-us.apache.org/repos/asf/samza-hello-samza/diff/2214946c

Branch: refs/heads/master
Commit: 2214946c0b5498f9942e4ecdd4327fea4081b689
Parents: 70ad4c5
Author: Vishal Kuo <vi...@gmail.com>
Authored: Sat Apr 23 12:44:43 2016 -0700
Committer: Navina Ramesh <nr...@linkedin.com>
Committed: Sat Apr 23 12:56:34 2016 -0700

----------------------------------------------------------------------
 bin/grid | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/samza-hello-samza/blob/2214946c/bin/grid
----------------------------------------------------------------------
diff --git a/bin/grid b/bin/grid
index 042cabe..74ee026 100755
--- a/bin/grid
+++ b/bin/grid
@@ -39,6 +39,12 @@ DOWNLOAD_KAFKA=http://www.us.apache.org/dist/kafka/0.8.2.1/kafka_2.10-0.8.2.1.tg
 DOWNLOAD_YARN=https://archive.apache.org/dist/hadoop/common/hadoop-2.6.1/hadoop-2.6.1.tar.gz
 DOWNLOAD_ZOOKEEPER=http://archive.apache.org/dist/zookeeper/zookeeper-3.4.3/zookeeper-3.4.3.tar.gz
 
+SERVICE_WAIT_TIMEOUT_SEC=10
+ZOOKEEPER_PORT=2181
+RESOURCEMANAGER_PORT=8032
+NODEMANAGER_PORT=8042
+KAFKA_PORT=9092
+
 bootstrap() {
   echo "Bootstrapping the system..."
   stop_all
@@ -126,6 +132,7 @@ start_zookeeper() {
   if [ -f $DEPLOY_ROOT_DIR/$SYSTEM/bin/zkServer.sh ]; then
     cd $DEPLOY_ROOT_DIR/$SYSTEM
     bin/zkServer.sh start
+    wait_for_service "zookeeper" $ZOOKEEPER_PORT
     cd - > /dev/null
   else
     echo 'Zookeeper is not installed. Run: bin/grid install zookeeper'
@@ -135,7 +142,9 @@ start_zookeeper() {
 start_yarn() {
   if [ -f $DEPLOY_ROOT_DIR/$SYSTEM/sbin/yarn-daemon.sh ]; then
     $DEPLOY_ROOT_DIR/$SYSTEM/sbin/yarn-daemon.sh start resourcemanager
+    wait_for_service "resourcemanager" $RESOURCEMANAGER_PORT
     $DEPLOY_ROOT_DIR/$SYSTEM/sbin/yarn-daemon.sh start nodemanager
+    wait_for_service "nodemanager" $NODEMANAGER_PORT
   else
     echo 'YARN is not installed. Run: bin/grid install yarn'
   fi
@@ -147,11 +156,29 @@ start_kafka() {
     cd $DEPLOY_ROOT_DIR/$SYSTEM
     nohup bin/kafka-server-start.sh config/server.properties > logs/kafka.log 2>&1 &
     cd - > /dev/null
+    wait_for_service "kafka" $KAFKA_PORT
   else
     echo 'Kafka is not installed. Run: bin/grid install kafka'
   fi
 }
 
+wait_for_service() {
+  local SERVICE_NAME=$1
+  local PORT=$2
+  echo "Waiting for $SERVICE_NAME to start..."
+  local CURRENT_WAIT_TIME=0
+  until $(nc -w 1 localhost $PORT); do
+    printf '.'
+    sleep 1
+    if [ $((++CURRENT_WAIT_TIME)) -eq $SERVICE_WAIT_TIMEOUT_SEC ]; then
+      printf "\nError: timed out while waiting for $SERVICE_NAME to start.\n"
+      exit 1
+    fi
+  done
+  printf '\n'
+  echo "$SERVICE_NAME has started";
+}
+
 stop_all() {
   $DIR/grid stop kafka
   $DIR/grid stop yarn