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

本文将逐步解析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

最低0.47元/天 解锁文章
580

被折叠的 条评论
为什么被折叠?



