ApacheDolphinScheduler是一个分布式易扩展的可视化DAG工作流任务调度开源系统。解决数据研发ETL错综复杂的依赖关系,不能直观监控任务健康状态等问题。DolphinScheduler以DAG流式的方式将Task组装起来,可实时监控任务的运行状态,同时支持重试、从指定节点恢复失败、暂停及Kill任务等操作。具有如下特性:
简单易用
DAG监控界面,所有流程定义都是可视化,通过拖拽任务定制DAG,通过API方式与第三方系统对接,一键部署
高可靠性
去中心化的多Master和多Worker,自身支持HA功能,采用任务队列来避免过载,不会造成机器卡死
丰富的使用场景
支持暂停恢复操作.支持多租户,更好的应对大数据的使用场景.支持更多的任务类型,如spark,hive,mr,python,sub_process,shell
高扩展性
支持自定义任务类型,调度器使用分布式调度,调度能力随集群线性增长,Master和Worker支持动态上下线
本文讲解的是单机安装,并且使用,通过以下目录展开:
1、基础软件的安装
1.1系统最小化安装系统基础设置
1.2安装配置java
1.3安装zookeeper
1.4安装编译python3环境
1.5安装mysql
1.6安装datax
2、安装海豚dolphinscheduler系统调度
3、系统调度快速上手
4、项目案例
4.1shell案例
4.2python案例
1、基础软件的安装
主机名
系统
CPU
内存
磁盘
应用
Dolphinschedulerpro
8
32
50G+500G
dolphinscheduler
需要安装的软件有:java,zookeeper,python3及相关依赖包,mysql,datzx,dolphinscheduler
1.1系统安装最小化安装,可以看我之前的文章系统基础设置
编辑配置文件/etc/selinux/config,关闭selinux
SELINUX=disabled
编辑配置文件/etc/security/,末尾添加:
*softnoproc10240*hardnoproc10240*softnofile10240*hardnofile10240
防火墙策略设置
firewall-cmd--zone=public--add-rich-rule'rulefamily="ipv4"portport=12345protocol=tcpaccept'--permanentfirewall-cmd--reload
1.2安装配置java
下载JDK并解压到/usr/local
vi/etc/profile
JAVA_HOME=/usr/local/_241JRE_HOME=$JAVA_HOME/jreCLASSPATH=.:$JAVA_HOME/lib/:$JAVA_HOME/lib/:$JRE_HOME/libPATH=$PATH:$JAVA_HOME/binexportPATHJAVA_HOMEJRE_HOMECLASSPATH
source/etc/profile//使配置文件生效
java–version//查看是否安装正确
1.3安装zookeeper
将安装包解压到/usr/local/src/目录下
cd/usr/local/src//bin
.///启动服务
netstat–natp|grep2181
1.4安装编译python3环境
yuminstall-ygccpatchlibffi-develpython-develzlib-develbzip2-developenssl-develncurses-develsqlite-develreadline-develtk-develgdbm-develdb4-devellibpcap-develxz-devel./configure--prefix=/usr/local/python3613makemakeinstallmv/usr/bin/python/usr/bin/python27mv/usr/bin/pip/usr/bin/pip27ln-sf/usr/local/python3613/bin/python3/usr/bin/pythonln-sf/usr/local/python3613/bin/pip3/usr/bin/pipln-sf/usr/local/python3613/bin/python3/usr/bin/python3ln-sf/usr/local/python3613/bin/pip3/usr/bin/pip3vi/usr/bin/yum//编辑,更改python2的运行环境vi/usr/libexec/urlgrabber-ext-down//编辑,更改python2的运行环境安装cx_oracle模块,连接oracle驱动pipinstallcx_oracle-i;/etc//
1.5安装mysql
将安装包解压到安装目录
./mysql_install_db--basedir=/usr/local/src/mysql--datadir=/home/mysqldata--user=mysql
编辑配置文件vi/etc/
[client]port=3306default-character-set=utf8[mysqld]character-set-server=utf8lower_case_table_names=1sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'skip-name-resolvemax_allowed_packet=256MDefaultsrequirett/g'/etc/sudoerschown-Rdolphinscheduler:dolphinscheduler/opt/dolphinscheduler/dolphinscheduler-bin
2.3创建免密登陆
su-dolphinschedulerssh-keygen-trsa-P''-f~/.ssh/id_rsacat~/.ssh/id_~/.ssh/authorized_keyschmod600~/.ssh/authorized_keys
2.4数据库初始化
mysql-uroot-pmysqlCREATEDATABASEdolphinschedulerDEFAULTCHARACTERSETutf8DEFAULTCOLLATEutf8_general_ci;mysqlGRANTALLPRIVILEGESONdolphinscheduler.*TO'{user}'@'%'IDENTIFIEDBY'{password}';mysqlGRANTALLPRIVILEGESONdolphinscheduler.*TO'{user}'@'localhost'IDENTIFIEDBY'{password}';mysqlflushprivileges;创建表和导入基础数据,编辑配置文件viconf/
shscript///执行数据库导入脚本
2.5修改运行参数
sudoln-s/opt/soft/java/bin/java/usr/bin/java
2.6修改一键部署配置文件conf/config/install_中的各参数,特别注意以下参数的配置
catconfig/install_|grep-v'-*-coding:utf-8-*-importoslogfile="/home/dolphinschedulerdata/xiangmuzuhu01/resources/pythonlog/"print(logfile)withopen(logfile,"a")asf:("python001.。。。。。。。。。。。。。\n")
-*-coding:utf-8-*-importoslogfile="/home/dolphinschedulerdata/xiangmuzuhu01/resources/pythonlog/"print(logfile)withopen(logfile,"a")asf:("python03.。。。。。。。。。。。。。\n")工作流上线运行,实时查看是否执行:
数据源:
数据源的创建可以通过admin创建统一的,然后进行授权给其他用户。当然一般不同项目单独创建数据源可能是比较好管理和区分。
普通用户可以查看自己创建的和通过授权的数据源