azkaban启动,停止脚本

    说明:安装版本为3.x以上,本例子采用的时3.8

  1. 1 azkaban启动脚本,这个脚本主要时启动下面2个脚本(azkaban-exec-server.sh,azkaban-web-server.sh)
#!/bin/env bash
#应用名称
APP_NAME=azkaban
#获取当前shell脚本路径
BASE_DIR=`pwd`
echo $BASE_DIR
#使用说明,用来提示输入参数  
usage() {
    echo "Usage: sh azkaban.sh [start|stop|restart|status]"  
    exit 1
}

#启动方法  
start() {
   #首先启动exec端
   echo "开始启动azkaban-exec端"
   $BASE_DIR/azkaban-exec-server.sh start
   #启动web端
   echo "开始启动azkaban-web端"
   $BASE_DIR/azkaban-web-server.sh start
}

#停止方法  
stop() {
   #首先停止web端
   echo "开始停止azkabn-web端"
   $BASE_DIR/azkaban-web-server.sh stop
   #启动exec端
   echo "开始停止azkan-web端"
   $BASE_DIR/azkaban-exec-server.sh stop
}

#输出运行状态  
status() {
   echo "获取azkaban-exec端状态"
   $BASE_DIR/azkaban-exec-server.sh status
   #启动web端
   echo "获取azkaban-web端状态"
   $BASE_DIR/azkaban-web-server.sh status
}

#重启  
restart() {
   stop
   start
}

#根据输入参数,选择执行对应方法,不输入则执行使用说明  
case "$1" in
   "start")
     start
     ;;
   "stop")
     stop
     ;;
   "status")
     status
     ;;
   "restart")
     restart
     ;;
   *)
     usage
     ;;
esac

 

  1. 2启动azkaban-exec-server
#!/bin/env bash
#应用名称
APP_NAME=azkaban-exec-server
#获取当前shell脚本路径
BASE_DIR=`pwd`
echo $BASE_DIR
#azkaban执行时切换到bin目录
cd $BASE_DIR/azkaban-exec-server/
#azkaban-exec-server进程文件
PIDFILE=$BASE_DIR/azkaban-exec-server/currentpid
#使用说明,用来提示输入参数 
usage() {
    echo "Usage: ./azkaban-exec-server.sh [start|stop|restart|status]"  
    exit 1
}

#检查程序是否在运行  
is_exist() {
    if [ -f $PIDFILE ]
    then
         pid=$(cat $PIDFILE)
    else pid=
    fi
    #如果不存在返回1,存在返回0  
    if [ -z "${pid}" ]; then
      return 1
    else
      return 0
    fi
}

#启动方法  
start() {
   is_exist
   if [ $? -eq "0" ]; then
     echo "${APP_NAME} is already running. pid=${pid} ."  
   else
     ./bin/start-exec.sh
   fi
}

#停止方法  
stop() {
   is_exist
   if [ $? -eq "0" ]; then
     ./bin/shutdown-exec.sh
   else
     echo "${APP_NAME} is not running"  
   fi
}

#输出运行状态  
status() {
   is_exist
   if [ $? -eq "0" ]; then
     echo "${APP_NAME} is running. Pid is ${pid}"  
   else
     echo "${APP_NAME} is not running."  
   fi
}

#重启  
restart() {
   stop
   sleep 2
   start
}

#根据输入参数,选择执行对应方法,不输入则执行使用说明  
case "$1" in
   "start")
     start
     ;;
   "stop")
     stop
     ;;
   "status")
     status
     ;;
   "restart")
     restart
     ;;
   *)
     usage
     ;;
esac

 

  1. 3启动azkaban-web-server
#!/bin/env bash
#应用名称
APP_NAME=azkaban-web-server
#获取当前shell脚本路径
BASE_DIR=`pwd`
echo $BASE_DIR
#azkaban执行时切换到bin目录
cd $BASE_DIR/azkaban-web-server/
#azkaban-web-server进程文件
PIDFILE=$BASE_DIR/azkaban-web-server/currentpid
#使用说明,用来提示输入参数  
usage() {
    echo "Usage: ./azkaban-web-server.sh [start|stop|restart|status]"  
    exit 1
}

#检查程序是否在运行  
is_exist() {
    if [ -f $PIDFILE ]
    then
         pid=$(cat $PIDFILE)
    else pid=
    fi
    #如果不存在返回1,存在返回0  
    if [ -z "${pid}" ]; then
      return 1
    else
      return 0
    fi
}

#启动方法  
start() {
   is_exist
   if [ $? -eq "0" ]; then
     echo "${APP_NAME} is already running. pid=${pid} ."  
   else
     #发送请求看执行服务端是否启动,激活
     i=0
     exec_server_status=`curl http://127.0.0.1:12321/executor?action=activate`
     while [[ ! $? -eq  "0" && $i -le 5 ]]
     do   
        sleep 1
        set i=i+1
	exec_server_status=`curl http://127.0.0.1:12321/executor?action=activate` 
     done
     echo "激活azkabn-exec-server:$exec_server_status"
     ./bin/start-web.sh
   fi
}

#停止方法  
stop() {
   is_exist
   if [ $? -eq "0" ]; then
     ./bin/shutdown-web.sh
   else
     echo "${APP_NAME} is not running"  
   fi
}

#输出运行状态  
status() {
   is_exist
   if [ $? -eq "0" ]; then
     echo "${APP_NAME} is running. Pid is ${pid}"  
   else
     echo "${APP_NAME} is not running."  
   fi
}

#重启  
restart() {
   stop
   sleep 2
   start
}

#根据输入参数,选择执行对应方法,不输入则执行使用说明  
case "$1" in
   "start")
     start
     ;;
   "stop")
     stop
     ;;
   "status")
     status
     ;;
   "restart")
     restart
     ;;
   *)
     usage
     ;;
esac

 


版权声明:本文为weixin_44588176原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。