精细调度:Apache DolphinScheduler脚本深度解析

在现代数据处理和工作流管理中,Apache DolphinScheduler以其灵活性和强大的调度能力受到开发者的广泛欢迎。

file

本文将逐步解析DolphinScheduler的关键脚本,希望能提供一个详尽的操作指南,帮助大家掌握安装、配置和操作的每一步。

建立在./bin/env/下目录的配置文件建立好的前提。

安装流程解析

./install.sh
  • 通过source获取install_env.sh和dolphinscheduler_env.sh中的环境变量,如master、worker的基本信息。
  • 在当前机器上创建安装目录,并给目录授权。
  • 向其他节点发送dolphinscheduler的解压文件
  • 停止所有的服务
  • 删除zk上的dolphinscheduler根节点
  • 启动dolphinscheduler所有的服务。

拷贝文件到工作节点

    workDir=`dirname $0`
    workDir=`cd ${workDir};pwd`

    source ${workDir}/env/install_env.sh
    # 获取workers=${workers:-"ds1:default,ds2:default,ds3:default,ds4:default,ds5:default"}
    # 获取数组
    workersGroup=(${workers//,/ })
    # 顺序取数组中的值
    for workerGroup in ${workersGroup[@]}
    do
    # 比如:ds1:default
      echo $workerGroup;
      # 获取worker的ip
      worker=`echo $workerGroup|awk -F':' '{print $1}'`
      # 获取worker对应ip的组,默认为default
      group=`echo $workerGroup|awk -F':' '{print $2}'`
      # 将ip放置到一个集合
      workerNames+=($worker)
      # 组放到一个集合
      groupNames+=(${group:-default})
    done
    # 获取需要安装的机器ip: ips=${ips:-"ds1,ds2,ds3,ds4,ds5"}
    hostsArr=(${ips//,/ })
    # 开始遍历所有需要安装的机器
    for host in ${hostsArr[@]}
    do
      # 连接目标ip,验证安装目录是否存在,如果不存在,则会进行文件夹的创建,因此,需要事先创建好ssh免密登录
      if ! ssh -o StrictHostKeyChecking=no -p $sshPort $host test -e $installPath; then
      # 创建安装目录 比如:/home/dolphinscheduler/apache-dolphinscheduler
        ssh -o StrictHostKeyChecking=no -p $sshPort $host "sudo mkdir -p $installPath; sudo chown -R $deployUser:$deployUser $installPath"
      fi

      如果当前机器时server-worker的机器
      echo "scp dirs to $host/$installPath starting"
      for i in ${!workerNames[@]}; do
        if [[ ${workerNames[$i]} == $host ]]; then
          workerIndex=$i
          break
        fi
      done

      # 这里表示用给定的组去替换default这个字符串,不过配置文件中,默认是不存在这个值的,暂时不用管
      # set worker groups in application.yaml
      [[ -n ${workerIndex} ]] && sed -i "s/- default/- ${groupNames[$workerIndex]}/" $workDir/../worker-server/conf/application.yaml

    # 将相关的七个文件都拷贝到安装目录下。
      for dsDir in bin master-server worker-server alert-server api-server ui tools
      do
        echo "start to scp $dsDir to $host/$installPath
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DolphinScheduler社区

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值