DolphinScheduler初体验

  |   0 评论   |   0 浏览

背景

DolphinScheduler是由易观2019年开发的,目前属于Apache的正式的一个分布式易扩展的可视化DAG工作流任务调度系统。其功能与airflow相近。截止2021-08-20,已经在github上有6.2k个star。

目前官方声称可以支持每日10万级的调度。

DS与Airflow, Azkaban对比

来自知乎:使用 DolphinScheduler 调度 Kylin 构建

preview

初体验

目前最新版本为 1.3.6

本文只进行单机部署试用,因此跳过了1.3.6官方部署文档中的创建用户、免密登录等环节。

下载

下载二进制包:

wget https://mirrors.sonic.net/apache/dolphinscheduler/1.3.6/apache-dolphinscheduler-1.3.6-bin.tar.gz

环境准备

数据库增加账号

// 添加用户
// 只允许指定ip连接
create user '新用户名'@'localhost' identified by '密码';
// 允许所有ip连接(用通配符%表示)
create user '新用户名'@'%' identified by '密码';

// 为新用户授权
//基本格式如下
grant all privileges on dolphinscheduler.* to '新用户名'@'指定ip' identified by '新用户密码' ;

// 刷新权限
FLUSH PRIVILEGES;

安装Zookeeper

// 安装
sudo apt-get install zookeeper

// 启动
/usr/share/zookeeper/bin/zkServer.sh start

// 测试安装成功
/usr/share/zookeeper/bin/zkCli.sh

[zk: localhost:2181(CONNECTED) 0] ls /
[zookeeper]

数据库

修改配置文件 conf/datasource.properties,如下:

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

导入基本数据:

sh script/create-dolphinscheduler.sh

报错,找不到类 com.mysql.jdbc.Driver

自己手动复制一个 mysql-connector-java-5.1.47.jarlib下,如 https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.47/mysql-connector-java-5.1.47.jar。

运行结果:

12:41:15.665 [main] INFO org.apache.dolphinscheduler.dao.upgrade.shell.CreateDolphinScheduler - upgrade DolphinScheduler finished
12:41:15.665 [main] INFO org.apache.dolphinscheduler.dao.upgrade.shell.CreateDolphinScheduler - create DolphinScheduler success

修改运行参数

编辑配置文件 conf/env/dolphinscheduler_env.sh

// 本文跳过

编辑配置文件conf/config/install_config.conf

dbtype="mysql"
dbhost="192.168.31.150:3306"
username="dolphinscheduler"
dbname="dolphinscheduler"
password="password"

deployUser="admin"
zkQuorum="192.168.31.150:2181"
installPath="/home/admin/dolphinscheduler/publish"
resourceUploadPath="/home/admin/dolphinscheduler/resource"

ips="localhost"
masters="localhost"
workers="localhost:default"
alertServer="localhost"
apiServers="localhost"

然后安装:

bash install.sh

这里我忍不住要吐槽一句,这个安装过程就是为hadoop集群比如CDH量身定制的,对于单机版来体验运行,太复杂太不友好了。

访问界面

http://localhost:12345/dolphinscheduler/

默认账户为:admin/dolphinscheduler123

使用

好不容易安装一个,创建一个DAG工作流体验一下吧。

创建租户

在安全中心 --> 租户管理中,创建一个租户。

租户和用户绑定

在用户管理中,修改用户,绑定对应的租户。

创建项目

创建一个测试项目。

创建两个脚本的工作流

创建两个shell即可,操作很简单。如果遇到了困难,可以参考这篇文章DAG测试中的图形指南。

上线运行

回到项目页面,先点上线,再点运行。

如果提示“没有合适的租户”,一定是前面没有创建租户、以及进行租户和用户的绑定。

在任务实例中,可以看到运行日志。

闲聊

组件

包括至少5个组件:

  • master-server
  • worker-server
  • logger-server
  • alert-server
  • api-server

依赖项

  • 前端依赖了nodejs,源码编译时需要。
  • 后端依赖了zookeeper

技术细节

使用了 quartz调度。

参考