zoukankan      html  css  js  c++  java
  • Azkaban exec_id自增长和executor启动不激活问题

    1.Azkaban在重启executor服务时exec_id自增。

    在使用Azkaban时我们会面临将某些任务放到指定的executor上去运行的情况,我们通常使用 

    通过executor的id来指定executor服务器去执行任务。

    但是当集群由于某些原因挂掉,exec_id默认是自增长的,这就产生一个很麻烦的问题:我们需要将所有任务重新进行配置。

    解决此问题的方式:

              1.改变源码(不建议,需要耗费大量时间去阅读源码的逻辑)

              2.更改executor的启动脚本来给executor指定id

    本次我们使用的是改变shell脚本的方法:

    思路:exec_start.sh 

       在启动executor后,executor会向元数据库executors表中注册  

       我们在shell脚本中 首先判断executor是否启动,如果启动就执行更改数据库的操作。

    #!/bin/bash
    # Start service for azkaban
    
    # Base Env
    SCRIPTS_DIR=$(dirname $0)
    # User Env For MySQL
    HOSTNAME=`hostname -f`
    PORT="3306"
    USERNAME="azkaban"
    PASSWORD="***********"
    DBNAME="azkaban"
    HOST="***********"
    
    # Azkaban Status
    ACTIVE=1
    ID=1
    
    # pass along command line arguments to the internal launch script.
    ${SCRIPTS_DIR}/internal/internal-start-executor.sh "$@" >executorServerLog__`date +%F+%T`.out 2>&1 &
    
    # MySQL Exc
    MYSQL="mysql -u${USERNAME} -p${PASSWORD} -h${HOST} ${DBNAME}"
    select_sql="select count(1) from executors where host='${HOSTNAME}'"
    update_sql="update executors set id=${ID},active=${ACTIVE} where host='${HOSTNAME}';"
    
    while true
    do
       res=`$MYSQL -e "$select_sql" 2>/dev/null | sed '1d'`
       if [ $res -eq 1 ];then
           break
       fi 
       sleep 3 
       echo -e "...."
    done
    
    # Update
    $MYSQL -e "$update_sql" 2>/dev/null
    [ $? -eq 0 ] && echo "start ......" || {
        echo "stop ......"
    }
    

      将原有的启动脚本换成上面的脚本。

      注意需要改动的地方:  

    # User Env For MySQL
    HOSTNAME=`hostname -f`
    PORT="3306"
    USERNAME="azkaban"
    PASSWORD="***********"
    DBNAME="azkaban"
    HOST="***********"
  • 相关阅读:
    关于typedef在struct使用上的一些问题
    软件工程--趣盒--第四次团队作业--软件实现与测试
    趣盒——快速入门手册
    软件工程趣盒软件设计
    软件工程项目需求分析
    在VS2017下配置OpenGL
    破阵子青铜团队介绍以及项目背景介绍
    海客谈瀛洲,烟涛微茫信难求——微信
    第一次作业:扑通扑通 我的IT
    5.线性回归算法
  • 原文地址:https://www.cnblogs.com/yooc1994/p/10131376.html
Copyright © 2011-2022 走看看