dolphinscheduler安装与配置:使用脚本一键安装配置dolphinscheduler单机版(配置MySQL版本)

news2024/11/20 12:18:42

使用shell脚本一键安装配置dolphinscheduler

前言:使用此脚本可以帮助您自动下载安装配置dolphinscheduler单机版,包括设置MySQL保存元数据。自动下载、解压dolphinscheduler安装包,自动修改dolphinscheduler的配置,配置MySQL连接,初始化数据库。
使用准备:需要已经安装wget和MySQL5.7,把脚本中的以下配置修改为自己的即可使用:

#dolphinscheduler安装目录
installDir="/opt/module"
#dolphinscheduler安装版本
version="3.1.5"
#MySQL驱动jar包版本,必须8.0.16及其以上
mysql_connector_version="8.0.16"
#MySQL主机ip地址
mysql_ip="192.168.198.101"
#MySQL用户名
mysql_user="root"
#MySQL密码
mysql_password="root"

1. 把下面的脚本复制保存为/tmp/install_dolphinscheduler.sh文件

#!/bin/bash

# dolphinscheduler安装目录
installDir="/opt/module"
# dolphinscheduler安装版本
version="3.1.5"
# MySQL驱动jar包版本,必须8.0.16及其以上
mysql_connector_version="8.0.16"
# MySQL主机ip地址
mysql_ip="192.168.198.101"
# MySQL用户名
mysql_user="root"
# MySQL密码
mysql_password="root"
# 要创建的数据库名
db_name="dolphinscheduler"

# 数据库设置操作
# 检查数据库是否存在
check_database=$(mysql -h $mysql_ip -u$mysql_user -p$mysql_password -e "SHOW DATABASES LIKE '$db_name';" | grep $db_name)
sleep 1
if [ $? -eq 0 ]; then
  echo "检查数据库成功"
  if [ -n "$check_database" ]; then
      # 数据库存在,删除数据库
      mysql -h $mysql_ip -u$mysql_user -p$mysql_password -e "DROP DATABASE $db_name;"
      echo "数据库已删除"
  fi
else
  echo "检查数据库失败,请检查数据库信息是否正确,即将退出"
  exit 1
fi

# 创建数据库
mysql -h $mysql_ip -u$mysql_user -p$mysql_password -e "CREATE DATABASE $db_name DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;"
if [ $? -eq 0 ]; then
  echo "数据库已创建"
else
  echo "数据库创建失败,请再次尝试执行此脚本,即将退出"
  exit 1
fi
mysql -h $mysql_ip -u$mysql_user -p$mysql_password -e "GRANT ALL PRIVILEGES ON $db_name.* TO '$mysql_user'@'%' IDENTIFIED BY '$mysql_password';"
# mysql -h $mysql_ip -u$mysql_user -p$mysql_password -e "GRANT ALL PRIVILEGES ON $db_name.* TO '$mysql_user'@'localhost' IDENTIFIED BY '$mysql_password';"
mysql -h $mysql_ip -u$mysql_user -p$mysql_password -e "flush privileges;"
if [ $? -eq 0 ]; then
  echo "数据库已创建"
else
  echo "数据库创建失败,请再次尝试执行此脚本,即将退出"
  exit 1
fi

# dolphinscheduler安装操作
if test -f /tmp/apache-dolphinscheduler-"$version"-bin.tar.gz; then
  echo "/tmp/apache-dolphinscheduler-$version-bin.tar.gz已存在,即将进行解压"
else
  wget https://archive.apache.org/dist/dolphinscheduler/$version/apache-dolphinscheduler-$version-bin.tar.gz -P /tmp
  if [ $? -eq 0 ]; then
    echo "dolphinscheduler下载成功"
  else
    echo "dolphinscheduler下载失败,请手动下载到/tmp目录下再次执行次脚本"
    echo "下载地址:https://archive.apache.org/dist/dolphinscheduler/3.1.5/apache-dolphinscheduler-3.1.5-bin.tar.gz"
    exit 1
  fi
fi

if test -d "${installDir}"/apache-dolphinscheduler-"$version"-bin; then
  echo "正在删除原来的dolphinscheduler..."
  sudo rm -rf "${installDir}"/apache-dolphinscheduler-"$version"-bin
fi
tar -zxvf /tmp/apache-dolphinscheduler-"$version"-bin.tar.gz -C "$installDir"
if [ $? -eq 0 ]; then
  echo "解压成功"
else
  echo "解压失败,请再次尝试执行此脚本,即将退出"
  exit 1
fi

if test -f /tmp/mysql-connector-java-"$mysql_connector_version".jar; then
  echo "/tmp/mysql-connector-java-$mysql_connector_version.jar已存在"
else
  wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/"$mysql_connector_version"/mysql-connector-java-"$mysql_connector_version".jar -P /tmp
  if [ $? -eq 0 ]; then
    echo "mysql驱动下载成功"
  else
    echo "mysql驱动下载失败,请手动下载到/tmp目录下再次执行次脚本"
    echo "下载地址:https://repo1.maven.org/maven2/mysql/mysql-connector-java/$mysql_connector_version/mysql-connector-java-$mysql_connector_version.jar"
    exit 1
  fi
fi
cp /tmp/mysql-connector-java-"$mysql_connector_version".jar "$installDir"/apache-dolphinscheduler-"$version"-bin/worker-server/libs
cp /tmp/mysql-connector-java-"$mysql_connector_version".jar "$installDir"/apache-dolphinscheduler-"$version"-bin/api-server/libs
cp /tmp/mysql-connector-java-"$mysql_connector_version".jar "$installDir"/apache-dolphinscheduler-"$version"-bin/alert-server/libs
cp /tmp/mysql-connector-java-"$mysql_connector_version".jar "$installDir"/apache-dolphinscheduler-"$version"-bin/master-server/libs
cp /tmp/mysql-connector-java-"$mysql_connector_version".jar "$installDir"/apache-dolphinscheduler-"$version"-bin/tools/libs
cp /tmp/mysql-connector-java-"$mysql_connector_version".jar "$installDir"/apache-dolphinscheduler-"$version"-bin/standalone-server/libs/standalone-server
if [ $? -eq 0 ]; then
  echo "mysql驱动复制成功"
else
  echo "mysql驱动复制失败,即将退出"
  exit 1
fi

dolphinschedulerenv='\
# Database related configuration, set database type, username and password\
export DATABASE=${DATABASE:-mysql}\
export SPRING_PROFILES_ACTIVE=${DATABASE}\
export SPRING_DATASOURCE_URL="jdbc:mysql://'"$mysql_ip"':3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&useSSL=false"\
export SPRING_DATASOURCE_USERNAMEE='"$mysql_user"'\
export SPRING_DATASOURCE_PASSWORD='"\"$mysql_password\""'\
\
# DolphinScheduler server related configuration'

applicationyaml='\
    driver-class-name: com.mysql.cj.jdbc.Driver\
    url: jdbc:mysql://'"$mysql_ip"':3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8\
    username: '"$mysql_user"'\
    password: '"\"$mysql_password\""''

applicationyaml_tools='\
    driver-class-name: com.mysql.cj.jdbc.Driver\
    url: jdbc:mysql://'"$mysql_ip"':3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8'

applicationyaml2='\
       schema-locations: classpath:sql/dolphinscheduler_mysql.sql\
  datasource:\
    driver-class-name: com.mysql.cj.jdbc.Driver\
    url: jdbc:mysql://'"$mysql_ip"':3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8\
    username: '"$mysql_user"'\
    password: '"\"$mysql_password\""''

sed -i '/# Database related configuration/,/# DolphinScheduler server related configuration/c '"$dolphinschedulerenv"'' "$installDir/apache-dolphinscheduler-$version-bin/bin/env/dolphinscheduler_env.sh"
if [ $? -eq 0 ]; then
  echo "dolphinscheduler_env.sh修改成功"
else
  echo "dolphinscheduler_env.sh修改失败,即将退出"
  exit 1
fi
sed -i '/# Database related configuration/,/# DolphinScheduler server related configuration/c '"$dolphinschedulerenv"'' "$installDir"/apache-dolphinscheduler-"$version"-bin/standalone-server/conf/dolphinscheduler_env.sh
if [ $? -eq 0 ]; then
  echo "standalone-server/conf/dolphinscheduler_env.sh修改成功"
else
  echo "standalone-server/conf/dolphinscheduler_env.sh修改失败,即将退出"
  exit 1
fi
sed -i '/# Database related configuration/,/# DolphinScheduler server related configuration/c '"$dolphinschedulerenv"'' "$installDir"/apache-dolphinscheduler-"$version"-bin/alert-server/conf/dolphinscheduler_env.sh
if [ $? -eq 0 ]; then
  echo "alert-server/conf/dolphinscheduler_env.sh修改成功"
else
  echo "alert-server/conf/dolphinscheduler_env.sh修改失败,即将退出"
  exit 1
fi
sed -i '/# Database related configuration/,/# DolphinScheduler server related configuration/c '"$dolphinschedulerenv"'' "$installDir"/apache-dolphinscheduler-"$version"-bin/worker-server/conf/dolphinscheduler_env.sh
if [ $? -eq 0 ]; then
  echo "worker-server/conf/dolphinscheduler_env.sh修改成功"
else
  echo "worker-server/conf/dolphinscheduler_env.sh修改失败,即将退出"
  exit 1
fi
sed -i '/# Database related configuration/,/# DolphinScheduler server related configuration/c '"$dolphinschedulerenv"'' "$installDir"/apache-dolphinscheduler-"$version"-bin/api-server/conf/dolphinscheduler_env.sh
if [ $? -eq 0 ]; then
  echo "api-server/conf/dolphinscheduler_env.sh修改成功"
else
  echo "api-server/conf/dolphinscheduler_env.sh修改失败,即将退出"
  exit 1
fi
sed -i '/# Database related configuration/,/# DolphinScheduler server related configuration/c '"$dolphinschedulerenv"'' "$installDir"/apache-dolphinscheduler-"$version"-bin/master-server/conf/dolphinscheduler_env.sh
if [ $? -eq 0 ]; then
  echo "master-server/conf/dolphinscheduler_env.sh修改成功"
else
  echo "master-server/conf/dolphinscheduler_env.sh修改失败,即将退出"
  exit 1
fi
sed -i '/    driver-class-name: com.mysql/,/    password: root/c '"$applicationyaml"'' "$installDir"/apache-dolphinscheduler-"$version"-bin/standalone-server/conf/application.yaml
if [ $? -eq 0 ]; then
  echo "conf/application.yaml修改成功"
else
  echo "conf/application.yaml修改失败,即将退出"
  exit 1
fi

sed -i '/      schema-locations: classpath:sql\/dolphinscheduler_h2.sql/,/    password: ""/c '"$applicationyaml2"'' "$installDir"/apache-dolphinscheduler-"$version"-bin/standalone-server/conf/application.yaml
if [ $? -eq 0 ]; then
  echo "conf/application.yaml修改成功"
else
  echo "conf/application.yaml修改失败,即将退出"
  exit 1
fi
sed -i '/    driver-class-name: com.mysql/,/    password: root/c '"$applicationyaml"'' "$installDir"/apache-dolphinscheduler-"$version"-bin/worker-server/conf/application.yaml
if [ $? -eq 0 ]; then
  echo "worker-server/conf/application.yaml修改成功"
else
  echo "worker-server/conf/application.yaml修改失败,即将退出"
  exit 1
fi
sed -i '/    driver-class-name: com.mysql/,/    password: root/c '"$applicationyaml"'' "$installDir"/apache-dolphinscheduler-"$version"-bin/api-server/conf/application.yaml
if [ $? -eq 0 ]; then
  echo "api-server/conf/application.yaml修改成功"
else
  echo "api-server/conf/application.yaml修改失败,即将退出"
  exit 1
fi
sed -i '/    driver-class-name: com.mysql/,/    password: root/c '"$applicationyaml"'' "$installDir"/apache-dolphinscheduler-"$version"-bin/alert-server/conf/application.yaml
if [ $? -eq 0 ]; then
  echo "alert-server/conf/application.yaml修改成功"
else
  echo "alert-server/conf/application.yaml修改失败,即将退出"
  exit 1
fi
sed -i '/    driver-class-name: com.mysql/,/    password: root/c '"$applicationyaml"'' "$installDir"/apache-dolphinscheduler-"$version"-bin/master-server/conf/application.yaml
if [ $? -eq 0 ]; then
  echo "master-server/conf/application.yaml修改成功"
else
  echo "master-server/conf/application.yaml修改失败,即将退出"
  exit 1
fi
sed -i '/    driver-class-name: com.mysql/,/characterEncoding=UTF-8/c '"$applicationyaml_tools"'' "$installDir"/apache-dolphinscheduler-"$version"-bin/tools/conf/application.yaml
if [ $? -eq 0 ]; then
  echo "tools/conf/application.yaml修改成功"
else
  echo "tools/conf/application.yaml修改失败,即将退出"
  exit 1
fi

bash "$installDir"/apache-dolphinscheduler-"$version"-bin/tools/bin/upgrade-schema.sh
if [ $? -eq 0 ]; then
  echo "初始化数据库成功"
else
  echo "初始化数据库失败,即将退出"
  exit 1
fi

# 设置dolphinscheduler用户环境变量
if test -n "$(grep '#DOLPHINSCHEDULER_HOME' ~/.bashrc)"; then
  echo "DOLPHINSCHEDULER_HOME已存在"
else
  echo >> ~/.bashrc
  echo '#DOLPHINSCHEDULER_HOME' >> ~/.bashrc
  echo "export DOLPHINSCHEDULER_HOME=$installDir/apache-dolphinscheduler-$version-bin" >> ~/.bashrc
  echo 'export PATH=$PATH:$DOLPHINSCHEDULER_HOME/bin' >> ~/.bashrc
fi

#rm -f /tmp/mysql-connector-java-"$mysql_connector_version".jar
#rm -rf /tmp/apache-dolphinscheduler-"$version"-bin.tar.gz
echo "dolphinscheduler安装完成"
"$installDir"/apache-dolphinscheduler-"$version"-bin/bin/dolphinscheduler-daemon.sh start standalone-server
if [ $? -eq 0 ]; then
  echo "dolphinscheduler单机版启动成功"
  ip_addr=$(ip addr | grep 'inet ' | awk '{print $2}'| tail -n 1 | grep -oP '\d+\.\d+\.\d+\.\d+')
  echo "浏览器访问地址:http://$ip_addr:12345/dolphinscheduler/ui/login"
  echo "登录账号:admin"
  echo "登录密码:dolphinscheduler123"
else
  echo "dolphinscheduler单机版启动失败,请查看日志"
  exit 1
fi

exit 0

2. 增加执行权限

chmod a+x /tmp/dolphinscheduler.sh

3. 执行/tmp/dolphinscheduler.sh

/tmp/dolphinscheduler.sh

执行之后等待下载、安装、配置完成,如下图:
在这里插入图片描述
浏览器访问dolphinscheduler:http://192.168.198.101:12345/dolphinscheduler
如下图:
在这里插入图片描述
登录进入如图:
在这里插入图片描述

4. 加载环境变量

source ~/.bashrc

5.启动/停止dolphinscheduler

因为再脚本中已经启动,所以不需要再启动
停止dolphinscheduler

dolphinscheduler-daemon.sh stop standalone-server

在这里插入图片描述

启动dolphinscheduler

dolphinscheduler-daemon.sh start standalone-server

本期文章到此结束

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1282682.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何使用群晖管家结合内网穿透实现公网远程访问本地黑群晖

白嫖怪狂喜!黑群晖也能使用群晖管家啦! 文章目录 白嫖怪狂喜!黑群晖也能使用群晖管家啦!1.使用环境要求:2.下载安装群晖管家app3.随机地址登陆群晖管家app4.固定地址登陆群晖管家app 自己组装nas的白嫖怪们虽然也可以通…

打印菱形图案C语言

C代码实现&#xff1a; #include <stdio.h> void printDiamond(int n) { int i, j, space n - 1; // 打印上半部分包括中间行 for (i 0; i < n; i) { // 打印空格 for (j 0; j < space; j) printf(" "); // 打印星号 for (j 1; j < 2 *…

RTSP流媒体播放器

rtsp主要还是运用ffmpeg来搭建node后端转发到前端&#xff0c;前端再播放这样的思路。 这里讲的到是用两种方式&#xff0c;一种是ffmpeg设置成全局来实现&#xff0c;一种是ffmpeg放在本地目录用相对路径来引用的方式。 ffmpeg下载地址&#xff1a;http://www.ffmpeg.org/do…

嘉里大荣物流与极智嘉再度携手,合作助力物流服务高效升级

近日&#xff0c;全球仓储机器人引领者极智嘉(Geek)与3PL知名企业嘉里大荣物流联合宣布&#xff0c;双方再度携手&#xff0c;6周内共建全新自动化订单履行中心&#xff0c;赋能国际时尚运动品牌New Balance加速B2B和B2C订单交付&#xff0c;为其客户提供更高效便捷的物流服务。…

数据结构算法-插入排序算法

引言 玩纸牌 的时候。往往 需要将牌从乱序排列变成有序排列 这就是插入排序 插入排序算法思想 先看图 首先第一个元素 我默认已有序 那我们从第二个元素开始&#xff0c;依次插入到前面已有序的部分中。具体来说&#xff0c;我们将第二个元素与第一个元素比较&#xff0c;…

肺癌二期治疗效果与方案

肺腺癌II期治疗方案主要包括手术治疗、化疗、放疗等&#xff0c;建议患者积极配合医生治疗。 1、手术治疗 肺腺癌属于肺部恶性肿瘤&#xff0c;生长速度比较缓慢&#xff0c;早期患者可以通过手术的方式切除病变部位&#xff0c;能够达到根治目的&#xff0c;术后患者要注意伤…

kubeadm 安装k8s1.28.x 底层走containerd 容器

1. k8s1.28.x 的概述 1.1 k8s 1.28.x 更新 Kubernetes v1.28 是 2023 年的第二个大版本更新&#xff0c;包含了 46 项主要的更新。 而今年发布的第一个版本 v1.27 有近 60 项&#xff0c;所以可以看出来&#xff0c;在发布节奏调整后&#xff0c; 每个 Kubernetes 版本中都会包…

录视频人不在电脑旁,怎么设置定时关机

如果你平常工作比较忙&#xff0c;或者要录制的视频/音频文件需要很长时间&#xff0c;最好选择预约录制&#xff0c;这样可使录屏软件自动开始和停止录制&#xff0c;并且定时关机。此外&#xff0c;你还可以设置保存录制文件、关闭录屏软件。是不是听起来很感兴趣&#xff1f…

Qt内存泄漏工具vld使用

安装vld 下载并安装vld Github镜像站-GitHub - KindDragon/vld: Visual Leak Detector for Visual C 2008-2015 我安装在d盘的&#xff0c;如下图所示 拷贝文件 复制三个文件夹到工程目录的vld下 pro文件添加 win32: LIBS -L$$PWD/vld/lib/Win32/ -lvld INCLUDEPATH $$P…

等保测评报价相差很大,里面有什么门道

等保测评报价的差异主要源于以下几点&#xff1a; 服务质量评估标准不同&#xff1a;不同的测评机构在测评过程中所提供的服务范围、深度、细节等方面可能存在差异&#xff0c;因此导致报价有所不同。一些机构可能提供全面且细致的测评服务&#xff0c;致力于提供高质量的等保测…

软件测试真实项目案例【内附演示视频】

没有实战经验&#xff0c;简历不好编写&#xff0c;而且也不好就业。今天给大家分享一个非常适合练手的软件测试项目&#xff0c;此项目涵盖web端、app端、h5端、小程序端&#xff0c;可以说非常之全面。获取方式在文末。 项目介绍 项目名&#xff1a;XX商城 涉及端&#xf…

个人独立开发者能否踏上敏捷之路

很多软件开发团队都在使用Scrum、极限编程&#xff08;XP&#xff09;、看板等敏捷方法管理项目流程&#xff0c;持续迭代并更快、更高效地为客户持续交付可用的产品。除了团队&#xff0c;国内外很多个人独立开发者也在尝试将敏捷应用到自己的开发工作流程中&#xff0c;但大多…

git常用命令小记

&#xff08;文章正在持续更新中&#xff09; git init - 在当前目录下初始化一个新的 Git 仓库。 git clone [url] - 克隆远程仓库到本地。 git add [file] - 将文件添加到暂存区。 git commit -m "commit message" - 将添加到暂存区的文件提交到本地仓库。 git pus…

【Linux | 编程实践】 crontab 命令编辑大全 scp 应用

&#x1f935;‍♂️ 个人主页: AI_magician &#x1f4e1;主页地址&#xff1a; 作者简介&#xff1a;CSDN内容合伙人&#xff0c;全栈领域优质创作者。 &#x1f468;‍&#x1f4bb;景愿&#xff1a;旨在于能和更多的热爱计算机的伙伴一起成长&#xff01;&#xff01;&…

P9 链表 清空链表|销毁链表

目录 前言 01销毁链表 02 清空链表 测试代码 前言 &#x1f3ac; 个人主页&#xff1a;ChenPi &#x1f43b;推荐专栏1: 《C_ChenPi的博客-CSDN博客》✨✨✨ &#x1f525; 推荐专栏2: 《Linux C应用编程&#xff08;概念类&#xff09;_ChenPi的博客-CSDN博客》✨✨✨ …

Redis5新特性-stream

Stream队列 Redis5.0 最大的新特性就是多出了一个数据结构 Stream&#xff0c;它是一个新的强大的 支持多播的可持久化的消息队列&#xff0c;作者声明 Redis Stream 地借鉴了 Kafka 的设计。 生产者 xadd 追加消息 xdel 删除消息&#xff0c;这里的删除仅仅是设置了标志位&am…

sqlserver2019基本操作

一、下载管理工具 sql server2019官方的管理工具是SQL Server Management Studio 简称SSMS。 下载连接: https://learn.microsoft.com/zh-CN/sql/ssms/download-sql-server-management-studio-ssms?viewsql-server-ver16二、登录 1.连接服务器 点击 文件 --> 连接对象资…

模型层——多表操作

多表操作 一 创建模型 实例&#xff1a;我们来假定下面这些概念&#xff0c;字段和关系 作者模型&#xff1a;一个作者有姓名和年龄。 作者详细模型&#xff1a;把作者的详情放到详情表&#xff0c;包含生日&#xff0c;手机号&#xff0c;家庭住址等信息。作者详情模型和作…

Python搭建代理IP池实现接口设置与整体调度

目录 前言 1. 搭建免费代理IP爬虫 2. 将获取到的代理IP存储到数据库中 3. 构建一个代理IP池 4. 实现调度器来调度代理IP池 5. 实现带有代理IP池的爬虫 总结 前言 在网络爬虫中&#xff0c;代理IP池是一个非常重要的组件。由于许多网站对单个IP的请求有限制&#xff0c;…

对点云进行凸包提取

void getConcaveHull(PointCloud::Ptr& cloud,const pcl::PointCloud<PointXYZ>::Ptr &hull) {if(cloud->points.size()<3){return ;}PointCloud ::Ptr cloud_filtered(new PointCloud());downSample(cloud,cloud_filtered);// 创建凹包提取对象pcl::Conca…