Apache DolphinScheduler 是一个分布式易扩展的可视化DAG工作流任务调度开源系统。适用于企业级场景,提供了一个可视化操作任务、工作流和全生命周期数据处理过程的解决方案。
Apache DolphinScheduler 旨在解决复杂的大数据任务依赖关系,并为应用程序提供数据和各种 OPS 编排中的关系。 解决数据研发ETL依赖错综复杂,无法监控任务健康状态的问题。 DolphinScheduler 以 DAG(Directed Acyclic Graph,DAG)流式方式组装任务,可以及时监控任务的执行状态,支持重试、指定节点恢复失败、暂停、恢复、终止任务等操作。
集群模式下,可配置多个Master及多个Worker。通常可配置2~3个Master,若干个Worker。由于集群资源有限,此处配置一个Master,三个Worker,集群规划如下:
节点 | 规划 |
---|---|
node1节点 | master、worker |
node2节点 | worker |
node3节点 | worker |
(1)三台节点均需部署JDK(1.8+)
,并配置相关环境变量。
(2)需部署数据库,支持MySQL(5.7+)
或者PostgreSQL(8.2.15+)
。
(3)三台节点均需部署Zookeeper(3.4.6+)
。
(4)三台节点均需安装进程树分析工具psmisc
。
[hadoop@node1 /]$ sudo yum install -y psmisc
[hadoop@node1 /]$ sudo yum install -y psmisc
[hadoop@node1 /]$ sudo yum install -y psmisc
参考博客
Centos7安装JDK及环境变量配置
Centos7安装MySQL 8.0.11
Centos7安装Zookeeper集群
(一)去官网下载DolphinScheduler安装包,这里我们选择的是2.0.5版本
(二)上传DolphinScheduler安装包到node1节点的/opt/software/ds目录
(三)解压安装包到当前目录
注:解压目录并非最终的安装目录。
DolphinScheduler元数据存储在关系型数据库中,故需创建相应的数据库和用户。我们这里以MySQL为例。
mysql> CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
(二)创建用户
这里创建了dolphinscheduler用户,密码为dolphinscheduler。
mysql> CREATE USER 'dolphinscheduler'@'%' IDENTIFIED BY 'dolphinscheduler';
(三)赋予用户相应权限
mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'dolphinscheduler'@'%';
刷新配置
mysql> FLUSH PRIVILEGES;
修改解压目录下的conf/config目录下的install_config.conf文件。
修改内容如下:
(一)拷贝MySQL驱动到DolphinScheduler的解压目录下的lib中,要求使用MySQL JDBC Driver 8.0.16
(二)执行数据库初始化脚本
数据库初始化脚本位于DolphinScheduler解压目录下的script目录中,即
执行create-dolphinscheduler.sh脚本,稍等片刻,即可完成数据库的初始化。
创建部署用户,并且一定要配置sudo免密。以创建dolphinScheduler用户为例。
(一)创建用户
useradd dolphinScheduler
(二)设置用户密码
echo "dolphinScheduler" | passwd --stdin dolphinScheduler
(三)配置sudo免密
sed -i '$adolphinScheduler ALL=(ALL) NOPASSWD: NOPASSWD: ALL' /etc/sudoers
sed -i 's/Defaults requirett/#Defaults requirett/g' /etc/sudoers
(四)修改目录权限,使得部署用户对二进制包解压后的apache-dolphinscheduler-*-bin目录有操作权限
chown -R dolphinScheduler:dolphinScheduler apache-dolphinscheduler-2.0.5-bin
注:在node1、node2、node3节点都需要创建dolphinScheduler部署用户。
由于安装的时候需要向不同机器发送资源,所有要求各台机器能实现SSH免密登录。配置免密登录的步骤如下:
(一)在node1节点、node2节点、node3节点,切换为dolphinScheduler部署用户,生成私钥和公钥。
(二)传递node1节点的公钥到node2节点上
scp id_rsa.pub [email protected]:/tmp
(三)配置node1节点到node2节点的免密操作
切换node2节点root用户为dolphinScheduler部署用户,将node1节点公钥追加到authorized_keys文件中。
(四)在node1节点ssh node2测试是否成功
注:node1节点到node3节点,按照上面的配置即可。
(一)启动node1节点、node2节点、node3节点的Zookeeper集群。
./zkServer.sh start 启动指令
./zkServer.sh start 查看状态
(三)开放apiServer接口服务端口
开放12345端口
firewall-cmd --zone=public --add-port=123456/tcp --permanent
重载防火墙配置
firewall-cmd --reload
浏览器访问地址: http://192.168.80.129:12345/dolphinscheduler即可登录系统UI。默认的用户名和密码是 admin/dolphinscheduler123。