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 )
2、搭建后端 : 2.1、修改 pom.xml 文件 [采用 mysql 数据库 ]
2.2、修改配置 1、dolphinscheduler-common的hadoop.properties主要修改的配置项有:mysql mysql-connector-java${mysql.connector.version}
fs.defaultFS=hdfs://xxxx yarn.resourcemanager.ha.rm.ids=192.168.0.244,192.168.0.2452、dolphinscheduler-common的common.properties主要修改的配置项为
res.upload.startup.type=HDFS3、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.Driver4、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、启动WorkerServerorg.apache.dolphinscheduler.server.worker.WorkerServer类main函数增加如下代码:
System.setProperty("spring.profiles.active","worker");
修改server模块resources目录下worker_logback.xml文件,增加以下代码:
然后执行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-perm3.2、修改配置
/workspace/apache-dolphinscheduler-1.2.1-src/dolphinscheduler-ui/.env下的 API_base = http://127.0.0.1:12345 DEV_HOST = 127.0.0.13.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



