2021-09-29--2021SC@SDUSC--DolphinScheduler(1)

2021SC@SDUSC

DolphinScheduler项目综述个人分工与环境搭建

日期:9-30(此为初稿,或许日后进行校验)

本人目前负责

dolphinscheduler-rpc 日志查看。提供日志实时查看rpc功能
dolphinscheduler-dist 与编译、分发相关的模块。

一.项目介绍:

DolphinScheduler项目是一个分布式易扩展的可视化DAG工作流任务调度系统。致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中

其主要功能如下:

1.以DAG图的方式将Task按照任务的依赖关系关联起来,可实时可视化监控任务的运行状态
2.支持丰富的任务类型:Shell、MR、Spark、SQL(mysql、postgresql、hive、sparksql),Python,Sub_Process、Procedure等
3.支持工作流定时调度、依赖调度、手动调度、手动暂停/停止/恢复,同时支持失败重试/告警、从指定节点恢复失败、Kill任务等操作
4.支持工作流优先级、任务优先级及任务的故障转移及任务超时告警/失败
5.支持工作流全局参数及节点自定义参数设置
6.支持资源文件的在线上传/下载,管理等,支持在线文件创建、编辑
7.支持任务日志在线查看及滚动、在线下载日志等
8.实现集群HA,通过Zookeeper实现Master集群和Worker集群去中心化
9.支持对Master/Worker cpu load,memory,cpu在线查看
10.支持工作流运行历史树形/甘特图展示、支持任务状态统计、流程状态统计

二.项目具体情况

项目架构:

在这里插入图片描述

前端:

1.1、环境:

后端:

JDK(1.8.0.1)
Maven(3.3)
本地解压一个hadoop并配上环境变量

前端:

node(Node包下载  https://nodejs.org/download/release/v8.9.4/)
本地环境变量的配置

源码下载:

1.git branch -a #查看分支
2.git checkout dev-db #切换到dev-db分支
3.git pull #同步分支

因为前端的日志模块,用gRPC调用后端,所以先进行编译。

编译项目:

(1.2之后的版本)mvn -U clean package -Prelease -Dmaven.test.skip=true -Dmaven.javadoc.skip=true
(1.2之前的版本)mvn -U clean package assembly:assembly -Dmaven.test.skip=true )
 </font>

2、搭建后端 :

2.1、修改 pom.xml 文件 [采用 mysql 数据库 ]

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>${mysql.connector.version}</version>
    <!--<scope>test</scope>-->
</dependency>

2.2、修改配置

1、dolphinscheduler-common的hadoop.properties主要修改的配置项有:
	fs.defaultFS=hdfs://xxxx
	yarn.resourcemanager.ha.rm.ids=192.168.0.244,192.168.0.245
2、dolphinscheduler-common的common.properties主要修改的配置项为
	res.upload.startup.type=HDFS
3、dolphinscheduler-common的quartz.properties:ds1.2数据库默认使用postgresql,所以如果使用mysql,需要修改mysql的配置
	org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
	org.quartz.dataSource.myDs.driver = com.mysql.jdbc.Driver
4、dolphinscheduler-common的zookeeper.properties:配置连接及路径
5、dolphinscheduler-dao的application-dao.properties修改spring.datasource的相关配置

2.3、数据库初始化

    创建ds数据库CREATE DATABASE dolphinscheduler
    创建表和初始化数据: 修改dao模块resource目录下application.properties文件中的数据库配置信息,然后执行org.apache.dolphinscheduler.dao.upgrade.shell.CreateDolphinScheduler的类,运行完,刷新数据库,表和数据都有了。

2.4、运行前的配置修改

2.4.1、启动MasterServer

org.apache.dolphinscheduler.server.master.MasterServer类main函数增加如下代码:

System.setProperty("spring.profiles.active","master");

修改server模块resources目录下master_logback.xml文件,增加以下代码:

然后执行MasterServer即可。

2.4.2、启动WorkerServer

org.apache.dolphinscheduler.server.worker.WorkerServer类main函数增加如下代码:

System.setProperty("spring.profiles.active","worker");

修改server模块resources目录下worker_logback.xml文件,增加以下代码:

<root level="INFO">
	 <appender-ref ref="TASKLOGFILE"/>
	 <appender-ref ref="WORKERLOGFILE"/>
	 <!-- 增加日志到控制台-->
	 <appender-ref ref="STDOUT"/>
</root>

然后执行WorkerServer即可。

2.4.3、启动CombinedApplicationServer的mian函数下增
System.setProperty("spring.profiles.active","combined");

2.4.4、错误收集:
1、如果报找不到/etc/passwd文件的错误,则定位到指定位置OSUtils.java,从服务器上下载一个passwd文件到本地,修改路径
2、如果无法获取fs文件系统,是因为之前common模块下的hadoop.properties中是配置的
fs.defaultFS=hdfs://xxxx 命名空间,会显示无法解析xxxx,所以将core-site.xml和hdfs-site.xml拷贝到common的resource模块下。

3、搭建前端

3.1、编译

cd apache-dolphinscheduler-1.2.1-src/dolphinscheduler-ui
npm install node-sass --unsafe-perm

3.2、修改配置

/workspace/apache-dolphinscheduler-1.2.1-src/dolphinscheduler-ui/.env下的
API_BASE = http://127.0.0.1:12345
DEV_HOST = 127.0.0.1

3.3启动

npm run dev

项目部分展示:

1.执行项目情况统计图在这里插入图片描述

2.日志查看与分析在这里插入图片描述

3.编译过程和流程介绍在这里插入图片描述
参考链接:
https://gitee.com/dolphinscheduler/DolphinScheduler?utm_source=alading&utm_campaign=repo

https://blog.csdn.net/zhaxiaodong/article/details/105288206?ops_request_misc=&request_id=&biz_id=102&utm_term=dophinscheduler%E6%BA%90%E4%BB%A3%E7%A0%81&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-0-105288206.first_rank_v2_pc_rank_v29&spm=1018.2226.3001.4187

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Apache DolphinScheduler(incubator,原EasyScheduler)是一个大数据分布式工作流任务调度系统,主要解决大数据研发过程中ETL处理错综复杂的依赖关系,而不能直观监控任务健康状态等问题。DolphinScheduler以DAG流式的方式将Task组装起来,可实时监控任务的运行状态,同时支持重试、从指定节点恢复失败、暂停及Kill任务等操作。 设计特点:一个分布式易扩展的可视化DAG工作流任务调度系统。致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用。 其主要目标如下: 1、以DAG图的方式将Task按照任务的依赖关系关联起来,可实时可视化监控任务的运行状态 2、支持丰富的任务类型:Shell、MR、Spark、SQL(mysql、postgresql、hive、sparksql),Python,Sub_Process、Procedure等 3、支持工作流定时调度、依赖调度、手动调度、手动暂停/停止/恢复,同时支持失败重试/告警、从指定节点恢复失败、Kill任务等操作 4、支持工作流优先级、任务优先级及任务的故障转移及任务超时告警/失败 5、支持工作流全局参数及节点自定义参数设置 6、支持资源文件的在线上传/下载,管理等,支持在线文件创建、编辑 7、支持任务日志在线查看及滚动、在线下载日志等 8、实现集群HA,通过Zookeeper实现Master集群和Worker集群去中心化 9、支持对Master/Worker cpu load,memory,cpu在线查看 10、支持工作流运行历史树形/甘特图展示、支持任务状态统计、流程状态统计 11、支持补数 12、支持多租户 13、支持国际化 14、还有更多等待伙伴们探索
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奋斗的仓鼠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值