我本身是从事大数据开发工作的,在一些外部项目或者一些不太成熟的公司,是没有任务调度器可用的,之前mysql存储过程用自带的event事件调度,一般抽数用Kettle+crontab调度,虽然也可以用,但这些调度器没有可视化界面,查询日志、任务进度、补数都不太好用,后面接触到了DolphinScheduler,这款调度器开源免费,支持关系数据库调度、Hive、Spark、Flink、Shell、Datax、任务依赖、ClickHouse等,支持告警,反正你能用到的基本上都支持了,用后爱不释手,强烈推荐给各位大佬~
这篇文章是事后很久的一篇整理文章,当时安装时忘记截图了,所以里面用了官网上的一些图片。
支持的任务类型如下,非常全:
支持工作量DGA 配置
有过几年开发部署经验的人应该对这些组件都很熟悉了,安装过程网上随便一搜一大把,就不一一列出了。
服务器 | 安装的组件 | 备注 |
---|---|---|
192.168.0.1 | master-server alter-server api-server Mysql5.7 zookeeper |
|
192.168.0.2 | worker-server zookeeper |
|
192.168.0.3 | worker-server zookeeper |
地址:https://dolphinscheduler.apache.org/zh-cn/download/deployment?t=standalone
选择最新的版本下载,3.x目前已经很稳定了,我最开始用3.0.1,被坑了很多回。
把下载的安装包上传到其中一台服务器解压并配置,安装时会把对应的组件远程安装到其它服务器。
install_env.sh
文件# ---------------------------------------------------------
# INSTALL MACHINE
# ---------------------------------------------------------
# Due to the master, worker, and API server being deployed on a single node, the IP of the server is the machine IP or localhost
ips="192.168.0.1,192.168.0.2,192.168.0.3"
sshPort="22"
masters="192.168.0.1"
workers="192.168.0.2:default,192.168.0.3:default"
alertServer="192.168.0.1"
apiServers="192.168.0.1"
# DolphinScheduler installation path, it will auto-create if not exists
installPath=~/dolphinscheduler
# Deploy user, use the user you create in section **Configure machine SSH password-free login**
deployUser="dolphinscheduler"
dolphinscheduler_env.sh
文件# JAVA_HOME, will use it to start DolphinScheduler server
export JAVA_HOME=${JAVA_HOME:-/datajava}
# Database related configuration, set database type, username and password
export DATABASE=${DATABASE:-mysql}
export SPRING_PROFILES_ACTIVE=${DATABASE}
export SPRING_DATASOURCE_URL="jdbc:mysql://xxx.xxx.xxx.xxx:3306/dolphinscheduler"
export SPRING_DATASOURCE_USERNAME=xxxxxx
export SPRING_DATASOURCE_PASSWORD=xxxxxx
# DolphinScheduler server related configuration
export SPRING_CACHE_TYPE=${SPRING_CACHE_TYPE:-none}
export SPRING_JACKSON_TIME_ZONE=${SPRING_JACKSON_TIME_ZONE:-UTC}
export MASTER_FETCH_COMMAND_NUM=${MASTER_FETCH_COMMAND_NUM:-10}
# Registry center configuration, determines the type and link of the registry center
export REGISTRY_TYPE=${REGISTRY_TYPE:-zookeeper}
export REGISTRY_ZOOKEEPER_CONNECT_STRING=${REGISTRY_ZOOKEEPER_CONNECT_STRING:-192.168.0.1:2181,192.168.0.2:2181,192.168.0.3:2181}
# Tasks related configurations, need to change the configuration if you use the related tasks.
export HADOOP_HOME=${HADOOP_HOME:-/data/hadoop}
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-/data/hadoop/etc/hadoop}
export SPARK_HOME1=${SPARK_HOME1:-/data/spark1}
export SPARK_HOME2=${SPARK_HOME2:-/data/spark2}
export PYTHON_HOME=${PYTHON_HOME:-/data/python}
export HIVE_HOME=${HIVE_HOME:-/data/hive}
export FLINK_HOME=${FLINK_HOME:-/data/flink}
export DATAX_HOME=${DATAX_HOME:-/data/datax}
export PATH=$HADOOP_HOME/bin:$SPARK_HOME1/bin:$SPARK_HOME2/bin:$PYTHON_HOME/bin:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$DATAX_HOME/bin:$PATH
下载 mysql-connector-java 驱动 (8.0.16) 并移动到 DolphinScheduler 的每个模块的 libs 目录下,其中包括
api-server/libs
和alert-server/libs
和master-server/libs
和worker-server/libs
。
mysql> CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
# 修改 {user} 和 {password} 为你希望的用户名和密码
mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO '{user}'@'%' IDENTIFIED BY '{password}';
mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO '{user}'@'localhost' IDENTIFIED BY '{password}';
mysql> flush privileges;
./tools/bin/upgrade-schema.sh
执行以下命令,等待执行完成,所有的服务器就都安装好了,非常方便
./bin/install.sh
一键开启集群所有服务
./bin/start-all.sh
停止集群的命令如下
./bin/stop-all.sh
浏览器访问地址 http://192.168.0.1:12345/dolphinscheduler/ui 即可登录系统UI。默认的用户名和密码是 admin/dolphinscheduler123