官方文档地址: https://dolphinscheduler.apache.org/zh-cn/docs/3.1.9
DolphinScheduler简介
摘自官网:Apache DolphinScheduler 是一个分布式易扩展的可视化DAG工作流任务调度开源系统。适用于企业级场景,提供了一个可视化操作任务、工作流和全生命周期数据处理过程的解决方案。
Apache DolphinScheduler 旨在解决复杂的大数据任务依赖关系,并为应用程序提供数据和各种 OPS 编排中的关系。 解决数据研发ETL依赖错综复杂,无法监控任务健康状态的问题。 DolphinScheduler 以 DAG(Directed Acyclic Graph,DAG)流式方式组装任务,可以及时监控任务的执行状态,支持重试、指定节点恢复失败、暂停、恢复、终止任务等操作。
项目安装依赖环境
- Linux CentOS == 7.6.18(3台)
- JDK == 1.8.151
- Zookeeper == 3.8.3
- MySQL == 5.7.30
- dolhpinscheduler == 3.1.9
环境准备
通用集群环境准备
准备虚拟机
IP地址 | 主机名 | CPU配置 | 内存配置 | 磁盘配置 | 角色说明 |
---|---|---|---|---|---|
192.168.10.100 | hadoop01 | 4U | 8G | 100G | DS NODE |
192.168.10.101 | hadoop02 | 4U | 8G | 100G | DS NODE |
192.168.10.102 | hadoop03 | 4U | 8G | 100G | DS NODE |
在所有的主机上执行以下命令:
修改软件源
替换yum的镜像源为清华源
修改终端颜色
让修改生效
修改sshd服务优化
关闭防火墙
禁用selinux
配置集群免密登录和同步脚本
1)修改主机列表
2)hadoop01节点上生成密钥对
3)hadoop01配置所有集群节点的免密登录
4)免密登录测试
5)所有节点安装rsync数据同步工具
#在线安装
yum install -y rsync
#离线安装方式一
yum localinstall -y rsync-2.7.0.rpm
#离线安装方式二
rpm -ivh rsync-2.7.0.rpm --force --nodeps
6)编写同步脚本
脚本内容如下:
7)授权同步脚本
2.1.8.集群时间同步
1)安装常用的Linux工具
2)安装chrony服务
3)修改chrony服务配置文件
#注释掉官方的时间服务器,换成国内的时间服务器即可
4)配置chronyd服务开机自启
5)查看chronyd服务
修改sysctl.conf系统配置
编辑sysctl.conf文件
修改limit.conf配置文件
在/etc/security/limits.conf文件的末尾追加以下内容
如果已经创建了专门用来管理Elasticsearch的账号(例如账号名称为elastic),则配置如下:
如果嫌麻烦, 直接使用下面这种配置也可以
以上修改完成之后,建议重启服务器让系统配置生效。
JDK安装
这部分跳过,很简单,基本随便找个博客文章照着配置就能搞定。
集群安装
这里本来想跳过安装, 直接使用CDH集群中的zookeeper集群的,实际操作发现当使用低版本的Zookeeper集群,并在dolphinscheduler打包时进行低版本ZK适配之后,
部署成功之后总是集群启动总是会出现各种问题,所以这里就不折腾了,直接另外安装了一组Zookeeper集群, 下面给大家讲讲Zookeeper集群的安装部署方式
下载安装
首先配置集群的主机名,确保通过主机名称可以相互访问集群节点
在文件中追加如下内容(所有节点都需要进行此操作)
Zookkeper下载地址: https://zookeeper.apache.org/releases.html#download
下载之后将安装包上传到所有的集群主机上,解压安装到/opt/software
在安装目录下,创建data和logs目录(所有节点都需要进行此操作)
mkdir -p /opt/software/zookeeper/data
mkdir -p /opt/software/zookeeper/logs
集群配置
进入到安装目录下的conf目录/opt/software/zookeeper/conf
,配置zookeeper的配置文件zoo.cfg
拷贝zoo_sample.cfg
文件并重命名为zoo.cfg
(所有节点都需要进行此操作)
cp /opt/software/zookeeper/conf/zoo_sample.cfg /opt/software/zookeeper/conf/zoo.cfg
配置文件的修改内容如下:
配置集群中各个节点的server_id, 这个配置需要和在zoo.cfg
文件中的配置保持一致:
在hadoop01节点上执行以下命令
在hadoop02节点上执行以下命令
在hadoop03节点上执行以下命令
测试验证
首先设置集群的启停脚本
脚本的内容如下:
注意:
- zookeeper集群的启动依赖JDK, 会用到
JAVA_HOME
变量, 所以需要先安装JDK,设置JAVA的系统环境变量 - 以下脚本的执行,如果没有配置集群的免密登录,每次都需要输入密码,所以需要先进行集群免密登录设置
我这里已经启动过集群正在使用,就不演示启动了,演示一下查询状态命令,/opt/software/zookeeper/zk-start-all.sh status
,出现如下报错:
解决方法: 找到每台节点主机的/opt/software/zookeeper/bin/zkEnv.sh
文件,在脚本文件代码部分的最前面 加上自己的JAVA_HOME
路径即可。
进入hadoop01的/opt/software/zookeeper
目录下,执行./zk-start-all.sh status
命令查看Zookeeper 集群状态,返回结果如下图:OK,集群的启停脚本基本没啥问题了。
zk集群启停、状态查询的命令如下:
MySQL安装
MySQL安装可以参考我的另外一篇博客 服务器linux-CentOS7.系统下使用mysql..tar.gz包安装mysql数据库详解
集群部署
下载DolphinScheduler
下载地址: https://dlcdn.apache.org/dolphinscheduler/3.1.9/apache-dolphinscheduler-3.1.9-bin.tar.gz
直接通过wget
命令下载到服务器的某个路径下,如果服务器无法联网, 只能先联网下载二进制安装包到本地,然后再通过ssh客户端工具上传到服务器集群的每个节点。
创建dolphinscheduler的集群运行账户并设置
创建安装运行dolphinscheduler集群的用户ds
在root账号下,执行添加普通用户的命令
useradd dolphinscheduler
设置dolphinscheduler
用户的密码
passwd dolphinscheduler
让dolphinscheduler
用户具有执行sudo
命令免密执行的权限
拷贝二进制安装包apache-dolphinscheduler-3.1.9-bin.tar.gz
到/opt/packages目录(没有则创建此目录)下
修改apache-dolphinscheduler-3.1.9-bin.tar.gz
安装包的所属用户和用户组为dolphinscheduler
配置用户的集群免密登录
切换到dolphinscheduler
用户,配置集群免密(这里只需要在hadoop01上执行就可以)
2)hadoop01节点上生成密钥对
3)hadoop01配置所有集群节点的免密登录
4)免密登录测试
数据库初始化
dolphinscheduler默认使用的数据库的名称是dolphinscheduler
, 我们这里先创建数据库并创建管理用户并授权
解压二进制安装包
修改安装脚本和参数配置
dolphinscheduler中主要包含api-server
、master-server
、 worker-server
三个服务,配置文件 /opt/oackages/apache-dolphinscheduler-3.1.9-bin/bin/env/install_env.sh
主要就是用来配置哪些机器将被安装 DolphinScheduler 以及每台机器对应安装哪些服务。
配置文件 /opt/packages/apache-dolphinscheduler-3.1.9-bin/bin/env/dolphinscheduler_env.sh
主要就是用来配置 DolphinScheduler 的数据库连接信息、一些dolphinscheduler支持的调度任务类型外部依赖路径或库文件,如 JAVA_HOME
、DATAX_HOME
和SPARK_HOME
都是在这里定义的。
关闭Python 网关(默认开启)
Python 网关服务
会默认与 api-server
一起启动,如果不想启动则需要更改 api-server
配置文件 /opt/packages/apache-dolphinscheduler-3.1.9-bin/api-server/conf/application.yaml
中的 python-gateway.enabled : false
来禁用它。
执行数据库初始化脚本
配置数据源驱动文件
MySQL 驱动文件必须使用 JDBC Driver 8.0.16 及以上的版本,需要手动下载 mysql-connector-java 并移动到 DolphinScheduler 的每个模块的 libs 目录下,其中包括 5 个目录:
将mysql的驱动复制到这些模块的依赖路径下
当然除了mysql之外,可能还涉及SQLServer、Oracle、Hive等数据源驱动,集成方式和MySQL是一样的, 不过最好在集群安装之前就将需要的依赖都提前添加到对应模块的libs目录下, 这样集群安装之后就不用再处理了, 不过之后再处理数据源依赖也是可以的。
以上数据库依赖有需要可以私信流邮箱,我看到会发给你们的。
执行集群安装
首先,再次修改/opt/packages/apache-dolphinscheduler-3.1.9-bin
的所属用户和用户组为dolphinscheduler
chmod -R dolphinscheduler:dolphinscheduler /opt/packages/apache-dolphinscheduler-3.1.9-bin
切换到dolphinscheudler
用户
su - dolphinscheudler
切换到解压根目录
cd /opt/packages/apache-dolphinscheduler-3.1.9-bin
执行集群安装脚本install.sh
./bin/install.sh
安装脚本执行完成后, 会自动检测集群各个节点的信息
集群启停测试
安装完成之后, 所有节点上Dolphinscheduler服务的默认安装目录都是/opt/software/dolphinscheduler
启动之前, 确保zookeeper服务正常启动, 否则集群无法正常启动成功。
在hadoop01
节点上切换到dolphinscheduler
系统用户
su - dolphinscheduler
切换到dolphinscheduler
安装目录
cd /opt/software/dolphinscheduler
执行集群常用操作命令
访问UI地址:http://hadoop01的IP:12345/dolphinscheduler/ui
用户名:admin
密码:dolphinscheduler123
OK, 至此DolphinScheduler分布式集群就搭建完成了。
本文由 白鲸开源 提供发布支持!