DolphinScheduler 安装及使用

关键字:【DolphinScheduler 安装 、DolphinScheduler 部署、DolphinScheduler 集群、DolphinScheduler 搭建】

Apache DolphinScheduler 介绍

DolphinScheduler 使用操作及案例
在这里插入图片描述

它可以做什么?

相信使用过 CDHoozie 的朋友一定不会对它陌生,它是一个工作流调度框架,可以通过 WEB-UI 页面帮助我们完成一些工作流调度任务(HDFS、MapReduce、Java、Shell、SSH、Pig、Hive)的定义和发布

今天介绍的 Apache DolphinScheduler 是 2019 年中国易观公司开源的一个调度系统,相比之下,它的功能更加强大,易用

① 操作简单

通过拖拽以 DAG 图的方式将 Task 按照任务的依赖关系关联起来,可实时可视化监控任务的运行状态

② 任务类型丰富

Shell,MR,Flink,SQL(mysql,postgresql,hive,sparksql),Python,Sub_Process,Procedure 等

③ 操作丰富

支持工作流定时调度、依赖调度、手动调度、手动暂停/停止/恢复,同时支持失败重试/告警、从指定节点恢复失败、Kill 任务等操作

话不多说,一张图就能说明一切,他们都在用
在这里插入图片描述

安装准备

环境准备

3 台腾讯云服务器 + 1 台云 mysql 中间件

节点node1node2node3
配置2C - 8G - 50G2C - 4G - 50G2C - 4G - 50G
服务node01node02node03
MasterServer
WorkerServer
LoggerServer
ApiApplicationServer
AlertServer

基础组件准备

① PostgreSQL (8.2.15+) 或者 MySQL (5.7系列)

Linux 安装 Mysql
两者任选其一即可,如 MySQL 则需要 JDBC Driver 5.1.47+

② JDK1.8+ 必装

Linux 安装 JDK
安装好后在 /etc/profile 下配置 JAVA_HOMEPATH 变量

③ ZooKeeper (3.4.6+):必装

zookeeper 集群搭建

④ Hadoop (2.6+) 或者 MinIO 选装

Hadoop 介绍及集群搭建
如果需要用到资源上传功能,可以选择上传到 Hadoop 或者 MinIO 上

⑤ 下载安装包

Apache Download dolphinscheduler 1.3.5

本篇博客使用的是 1.3.5 版本
在这里插入图片描述

安装配置

官方参考文档:cluster-deployment (apache.org)

注意:本篇博客在 node3 配置和安装,安装的时候会将文件发送给 node1node2 ,因此安装配置环节均在 node3 操作即可

① 上传解压

# 只在 node3 操作即可
# 解压
cd /opt/server
tar -zxvf apache-dolphinscheduler-incubating-1.3.5-dolphinscheduler-bin.tar.gz

# 配置软连接
mv apache-dolphinscheduler-incubating-1.3.5-dolphinscheduler-bin  dolphinscheduler

② 增加 mysql 驱动

# mysql 驱动,5.x 版本的都行
mysql-connector-java-5.1.49.jar

# 添加到如下目录
/opt/server/dolphinscheduler/lib

③ 增加 dolphinscheduler 数据库

-- 创建数据库
CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
-- 增加权限
GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'root'@'%' IDENTIFIED BY '123456';
-- 刷新权限
flush privileges;

④ 修改 datasource.properties 配置文件

cd /opt/server/dolphinscheduler/conf
vim datasource.properties
# 编辑以下内容
# 注意:如果使用 mysql,需要注释掉 postgresql 的内容
# postgresql
#spring.datasource.driver-class-name=com.mysql.jdbc.Driver
#spring.datasource.url=jdbc:mysql://192.168.88.161:3306/dolphinscheduler?characterEncoding=UTF-8&allowMultiQueries=true
#spring.datasource.username=root
#spring.datasource.password=123456

# mysql
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://177.126.54.63:3306/dolphinscheduler?characterEncoding=UTF-8&allowMultiQueries=true
spring.datasource.username=root
spring.datasource.password=123456

⑤ 执行初始化脚本

cd /opt/server/dolphinscheduler/script/
sh create-dolphinscheduler.sh

在这里插入图片描述

修改参数

① 修改 dolphinscheduler_env.sh 配置文件

cd /opt/server/dolphinscheduler/conf/env
vim dolphinscheduler_env.sh
# 编辑以下内容,用到什么组件就修改什么组件
export HADOOP_HOME=/opt/server/hadoop-2.7.5
export HADOOP_CONF_DIR=/opt/server/hadoop-2.7.5/etc/hadoop
#export SPARK_HOME1=/opt/soft/spark1
#export SPARK_HOME2=/opt/soft/spark2
export PYTHON_HOME=/usr/bin/python
export JAVA_HOME=/usr/lib/jdk1.8.0_172
export HIVE_HOME=/opt/server/hive-2.1.0
#export FLINK_HOME=/opt/soft/flink
#export DATAX_HOME=/opt/soft/datax/bin/datax.py
export SQOOP_HOME=/opt/server/sqoop

export PATH=$HADOOP_HOME/bin:$PYTHON_HOME:$JAVA_HOME/bin:$HIVE_HOME/bin:$SQOOP_HOME/bin:$PATH

② 修改 install_config.conf 配置文件

# 这里填 mysql or postgresql
dbtype="mysql"

# 数据库连接地址
dbhost="177.126.54.63:3306"

# 数据库名
dbname="dolphinscheduler"

# 数据库用户名,此处需要修改为上面设置的{user}具体值
username=" root"    

# 数据库密码, 如果有特殊字符,请使用\转义,需要修改为上面设置的{password}具体值
password="123456"

#Zookeeper地址,单机本机是localhost:2181,记得把2181端口带上
zkQuorum="node1:2181,node2:2181,node3:2181"

#将DS安装到哪个目录,如: /opt/soft/dolphinscheduler,不同于现在的目录
installPath="/opt/server/dolphinscheduler_install"

#使用哪个用户部署,使用第3节创建的用户
deployUser="root"

# alert config(没有用到,所以这是)
# mail server host
# mailServerHost="smtp.exmail.qq.com"

# mail server port
# note: Different protocols and encryption methods correspond to different ports, when SSL/TLS is enabled, make sure the port is correct.
# mailServerPort="25"

# sender
# mailSender="xxxxxxxxxx"

# user
# mailUser="xxxxxxxxxx"

# sender password
# note: The mail.passwd is email service authorization code, not the email login password.
# mailPassword="xxxxxxxxxx"

# TLS mail protocol support
# starttlsEnable="true"

# SSL mail protocol support
# only one of TLS and SSL can be in the true state.
# sslEnable="false"

#note: sslTrust is the same as mailServerHost
# sslTrust="smtp.exmail.qq.com"

# 业务用到的比如sql等资源文件上传到哪里,可以设置:HDFS,S3,NONE,单机如果想使用本地文件系统,请配置为HDFS,因为HDFS支持本地文件系统;如果不需要资源上传功能请选择NONE。强调一点:使用本地文件系统不需要部署hadoop
resourceStorageType="HDFS"

# 这里以保存到本地文件系统为例
#注:但是如果你想上传到HDFS的话,NameNode启用了HA,则需要将hadoop的配置文件core-site.xml和hdfs-site.xml放到conf目录下,本例即是放到/opt/dolphinscheduler/conf下面,并配置namenode cluster名称;如果NameNode不是HA,则修改为具体的ip或者主机名即可
defaultFS="hdfs://node1:8020"    #hdfs://{具体的ip/主机名}:8020

# 如果没有使用到Yarn,保持以下默认值即可;如果ResourceManager是HA,则配置为ResourceManager节点的主备ip或者hostname,比如"192.168.xx.xx,192.168.xx.xx";如果是单ResourceManager请配置yarnHaIps=""即可
# yarnHaIps="192.168.xx.xx,192.168.xx.xx"

# 如果ResourceManager是HA或者没有使用到Yarn保持默认值即可;如果是单ResourceManager,请配置真实的ResourceManager主机名或者ip
singleYarnIp="node1"

# 资源上传根路径,支持HDFS和S3,由于hdfs支持本地文件系统,需要确保本地文件夹存在且有读写权限
resourceUploadPath="/dolphinscheduler"

# 具备权限创建resourceUploadPath的用户
# hdfsRootUser="hdfs"

# kerberos config
# whether kerberos starts, if kerberos starts, following four items need to config, otherwise please ignore
# kerberosStartUp="false"
# kdc krb5 config file path
# krb5ConfPath="$installPath/conf/krb5.conf"
# keytab username
# keytabUserName="hdfs-mycluster@ESZ.COM"
# username keytab path
# keytabPath="$installPath/conf/hdfs.headless.keytab"

# api 服务端口(默认)
apiServerPort="12345"

#在哪些机器上部署DS服务,本机选localhost
ips="node1,node2,node3"

#ssh端口,默认22
sshPort="22"

#master服务部署在哪台机器上
masters="node1,node2"

#worker服务部署在哪台机器上,并指定此worker属于哪一个worker组,下面示例的default即为组名
workers="node3"

#报警服务部署在哪台机器上
alertServer="node3"

#后端api服务部署在在哪台机器上
apiServers="node1"

③ 修改 application-api.properties 配置文件(看下就行,没什么要改的)

server.port=12345

server.servlet.session.timeout=7200
server.servlet.context-path=/dolphinscheduler/

spring.servlet.multipart.max-file-size=1024MB
spring.servlet.multipart.max-request-size=1024MB

server.compression.enabled=true
server.compression.mime-types=text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,application/json,application/xml

# post content
server.jetty.max-http-post-size=5000000

spring.messages.encoding=UTF-8

#i18n classpath folder , file prefix messages, if have many files, use "," seperator
spring.messages.basename=i18n/messages

# Authentication types (supported types: PASSWORD)
security.authentication.type=PASSWORD

一键部署

① 一键部署

注意:在执行前最好备份下配置好的文件目录

# 备份
cd  /opt/server/dolphinscheduler
tar -cvf dolphinscheduler.tar.gz ./dolphinscheduler

# 在 node3 执行
cd /opt/server/dolphinscheduler
sh install.sh

② 检查目录是否完整

注意:如果发生如下报错,说明 node3 给 node1 和 node2 分发文件成功,但是node 3 自己的文件缺失,按照如下步骤执行

cd /opt/server
rm -rf dolphinscheduler

tar -xvf dolphinscheduler.tar.gz

在这里插入图片描述
③ 启动

# 在任意一台上执行即可
# 一次性启动整个集群
cd /opt/server/dolphinscheduler
sh ./bin/start-all.sh

④ 查看进程

# 查看进程
jps

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

⑤ 登陆

http://node1:12345/dolphinscheduler

用户名:admin
密码:dolphinscheduler123
在这里插入图片描述
⑥ 集群的其它操作命令

# 停止整个集群
cd /opt/server/dolphinscheduler
sh ./bin/stop-all.sh

# 启动/停止 单个服务
cd /opt/server/dolphinscheduler

sh ./bin/dolphinscheduler-daemon.sh start master-server
sh ./bin/dolphinscheduler-daemon.sh stop master-server

sh ./bin/dolphinscheduler-daemon.sh start worker-server
sh ./bin/dolphinscheduler-daemon.sh stop worker-server

sh ./bin/dolphinscheduler-daemon.sh start api-server
sh ./bin/dolphinscheduler-daemon.sh stop api-server

sh ./bin/dolphinscheduler-daemon.sh start logger-server
sh ./bin/dolphinscheduler-daemon.sh stop logger-server

sh ./bin/dolphinscheduler-daemon.sh start alert-server
sh ./bin/dolphinscheduler-daemon.sh stop alert-server
  • 7
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值