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
|