Apache Dolphin Scheduler
组件介绍
分布式易扩展的可视化DAG工作流任务调度系统。致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用。
官网 : https://dolphinscheduler.apache.org/en-us/
Github : https://github.com/apache/incubator-dolphinscheduler
部署环境
- CDH测试环境
- 6台机器
- 网关节点部署worker
- CM节点部署master和监控web
- 网关节点上已经部署hive&spark网关
- 平台版本
- CDH5.16.2
- Dolphin Scheduler 1.2.0
- 基础软件
- PostgreSQL或MySql存储元数据
前端部署
安装包下载
https://dolphinscheduler.apache.org/en-us/docs/release/download.html
- 创建部署文件夹/opt/ds,上传tar包到该目录中,并进行解压
# create deploy dir
mkdir -p /opt/ds/ds-ui;
# decompression
tar -zxvf apache-dolphinscheduler-incubating-1.2.1-SNAPSHOT-dolphinscheduler-front-bin.tar.gz -C /opt/ds/;
mv apache-dolphinscheduler-incubating-1.2.1-SNAPSHOT-dolphinscheduler-front-bin ds-1.2.0-ui;
- 检查yum源,这里是开发环境,外网需要使用代理,需要安装nginx
- 进入ds-1.2.0-ui目录,执行install-dolphinscheduler-ui.sh安装脚本
- 修改前端端口为:8886,防止与Hue端口冲突
- 修改api-server的ip
- 修改api-server端口
- 选择centos7安装
- 添加nginx配置 client_max_body_size 1024m;
- 重启nginx
- 这一步一定要做,否则资源过大无法上传资源中心
vi /etc/nginx/nginx.conf# add param
client_max_body_size 1024m;# restart nginx
systemctl restart nginx
访问前端页面的8888(自定义成了8886)端口,出现loading页面,前端web安装完成
后端部署
下载安装包
https://dolphinscheduler.apache.org/en-us/docs/release/download.html
上传tar包到/opt/ds中,并进行解压
tar -zxvf apache-dolphinscheduler-incubating-1.2.1-SNAPSHOT-dolphinscheduler-backend-bin.tar.gz -C /opt/ds/;
mv apache-dolphinscheduler-incubating-1.2.1-SNAPSHOT-dolphinscheduler-backend-bin ds-1.2.0-backend;
创建部署用户
- 创建部署用户并设置密码(所有部署机器)
- 将部署用户挂到hadoop组下,使用hdfs作为资源中心
- 配置sudo免密
# add user dscheduler
useradd dscheduler;
# modify user password
passwd dscheduler;
# add sudo
vi /etc/sudoers;
dscheduler ALL=(ALL) NOPASSWD: ALL
- 切换到部署用户并配置机器免密登陆,伪分布式需配置本机免密登陆
su dscheduler;
ssh-keygen -t rsa;
#配置相互免密和单机自身免密,[hostname]配置需要免密的机器hosts
ssh-copy-id -i ~/.ssh/id_rsa.pub dscheduler@[hostname];
数据库初始化
- 进入CDH集群的mysql
- mysql -uroot -p
- 默认数据库是pg,mysql需要添加mysql-connector-java包到lib目录下
- 执行数据库初始化命令,设置访问账号密码
CREATE DATABASE dscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON dscheduler.* TO 'dscheduler'@'%' IDENTIFIED BY 'xxxx';
GRANT ALL PRIVILEGES ON dscheduler.* TO 'dscheduler'@'localhost' IDENTIFIED BY 'xxxx';
FLUSH PRIVILEGES;
- 创建表和导入基础数据
- 修改conf目录下的application-dao.properties文件
- 注释掉pg,使用mysql
- 添加mysql-connector-java包到lib目录下
- 执行script目录下的create-dolphinscheduler.sh
配置环境变量
- 修改目录权限
chown -R dscheduler:dscheduler ds-1.2.0-backend/;
chmod -R 755 ds-1.2.0-backend/;
- 修改conf/env目录下的.dolphinscheduler_env.sh文件
- ds-1.2.0版本中的Spark任务组件,只能提交Spark1的任务
- SPARK_HOME1&SPARK_HOME2均配置为集群的Spark2-Home
- 也可以注释掉SPARK_HOME1
- Flink没有在集群中部署,不修改参数
- 将jdk软链到/bin/java下
ln -s /usr/java/jdk1.8.0_131/bin/java /usr/bin/java
- 修改install.sh的配置,按照集群自身情况
- 注意参数
- installPath - 将ds安装到哪个位置,如:/opt/ds-agent
- zkQuorum - 一定是ip:2181,记得把2181端口带上
- deployUser - 部署用户,需要有操作HDFS的权限
- 要使用HDFS作为资源中心,HA情况下,需要将集群的core-site.xml文件和hdfs-site.xml文件拷贝到conf目录
- 注意参数
部署安装kazoo
- 安装python的zk工具
- CDH集群默认是python2.7
yum -y install python-pip;
pip install kazoo;
- 执行install脚本,sh install.sh
- 在worker和master机器上使用jps查看服务是否启动
- 访问前端
- 用户名admin
- 密码dolphinscheduler123
- dolphin scheduler 1.2.0部署完成
DAG测试
- 创建租户
- 创建用户
- 如果租户创建有问题,请检查是否启用资源中心
- 新建项目并新建工作流
- 运行工作流,查看执行结果
- 至此 Dolphin Scheduler 1.2.0 dag demo测试完成
任何程序错误,以及技术疑问或需要解答的,请添加