因本项目没有其他文档,请使用者及开发者详细阅读完本readme 文档,后期会以博客的形式对本项目进行详细功能说明
本平台主要目的
- 高效的进行数据采集,构建自己的大数据平台
- 统一数据管理,对数据进行高效分析及对外输出
- 通过工具完成大部分工作,减少开发者的工作量
- 降低使用者标准,通过拖拉拽实现数据的采集(任务依赖关系由自带调度完成-优势)
用户名:zyc
密码:123456
服务器资源有限,界面只供预览,不包含数据处理部分,谢码友们手下留情
zdh 分2部分,前端配置+后端数据ETL处理,此部分只包含前端配置
后端数据etl 请参见项目 https://github.com/zhaoyachao/zdh_server.git
zdh_web 和zdh_server 保持同步 大版本会同步兼容 如果zdh_web 选择版本1.0 ,zdh_server 使用1.x 都可兼容
二次开发同学 请选择dev 分支,dev 分支只有测试通过才会合并master,所以master 可能不是最新的,但是可保证可用性
开箱即用
支持多数据源
高性能数据采集
单独的调度器,调度也可和三方调度器对接airflow,azkaban
二次开发
- 数据采集(本地上传数据,hdfs,jdbc,http,cassandra,mongodb,redis,kafka,hbase,es,sftp,hive)
- 数据加密
- 数据转换,数据离线同步,实时数据同步
- 数据迁移
- 质量检测
- 元数据,指标管理
- drools灵活动态的数据清洗
zdh 主要的作用 是从hdfs,hive,jdbc,http-json接口 等数据源拉取数据,并转存到hdfs,hive,jdbc等其他数据源 支持集群式部署
- 支持sql标准函数
- 支持界面选择配置
- 支持快速复制已有任务
- 支持外部调度工具(需要修改,新增特定接口)
- 弹性扩展(可单机,可集群)
- 支持客户级权限
- 简单易用支持二次开发
- 自带简单调度工具,可配置定时任务,时间序列任务,设定次数
- 调度依赖
- SQL数据仓库数据处理(单一数仓)
- 质量检测,及对应报告
- 支持SHELL 命令,SHELL 脚本,JDBC查询调度,HDFS查询调度
- 支持本地上传,下载文件
- 支持多源ETL
- 任务监控
- 灵活动态drools规则清理
前端:Bootstrap
后端:Springboot+shiro+redis+mybatis
数据ETL引擎:Spark(hadoop,hive 可选择部署)
打开resources/application-dev.properties
1 修改服务器端口默认8081
2 修改数据源连接(默认支持mysql8),外部数据库必须引入
3 修改redis配置
4 修改application-*配置文件中myid(多个集群依次1,2,3,...)
创建需要的数据库配置
1 执行sql脚本db.sql
依赖
1 必须提前安装redis
1 找到项目目录下的release 目录 直接将release 目录拷贝
2 到relase的bin 目录下执行start 脚本(启动脚本必须到bin 目录下执行)
3 执行编译好的包需要提前安装mysql8,redis
清理命令 mvn clean
打包命令 mvn package -Dmaven.test.skip=true
在target 目录下找到zdh_web.jar
执行 java -Dfile.encoding=utf-8 -jar zdh_web.jar
-
sql结构报错 遇到sql 结构报错,可直接在resource目录下找db.sql 文件对比是否增加了字段,db.sql 文件会使用alter 方式增加字段
-
日志级别修改 修改日志文件logback 相关等级即可
-
调度串行并行模式 串行模式:会判断上次任务运行状态 并行模式:不判断上次任务状态,时间会自动生成
-
数据表结构以src/main/resources/db.sql 为准
-
暂不支持读取kerberos 认证的hadoop,hive,hbase 服务,预计在5.x 版本实现kerberos 认证
-
v1.0 支持常用数据jdbc,hive,kafka,http,flume,redis,es,kudu,mongodb,hbase,cassandra,hdfs(csv,json,orc,parquet,xml,excel...),本地上传数据(csv)
-
v1.0 调度支持任务依赖等
-
v1.1 支持clickhouse-jdbc
-
v1.2 支持外部jar etl任务(任务状态需要外部jar 自己跟踪)
-
v1.3 支持drools 数据清理
-
v1.4 支持greenplum-jdbc
-
v2.0 删除外部jar 任务使用ssh 任务代替,ssh任务功能新增
-
v2.0 drools 任务增加支持多源和sql任务
-
v2.0 clickhouse,hive spark数据源优化
-
v2.0 spark sftp数据框架改动,增加sftp excel 和多分隔符支持
-
v2.0 调度重试机制优化,增加节点失败重发功能(任务重启)
-
v2.0 增加调度单独告警机制
-
v2.0 server 模块高可用机制改动为负载高可用
-
v2.0 hbase,drools jar冲突bug 修复
-
v2.0 支持ssh 任务静态脚本,动态脚本
-
v2.0 kafka,flume实时数据源删除必须使用jdbc输出源限制
-
v2.0 修复spark 监控bug,移动spark监控到总监控
-
v2.1 zdh_web 添加redis cluster 支持
-
v2.1 增加jdbc支持presto,mariadb,memsql,华为dws,阿里AnalyticDB,kylin,gbase,kingbase,redshift
-
v2.2 调度机制增加ack,无感故障转移
-
v2.2 优化所有前端界面,增加状态高亮
-
v2.2 sql 编辑支持高亮显示
-
v2.2 手动执行调度改为异步执行
-
v2.2 任务日志获取方式改变(时间获取改为标识符+时间获取)
-
v3.0 前端界面状态可视化优化
-
v3.0 去除task_logs 任务日志表,增加task_log_instance 表作为替换(大变动2.0 版本和3.0 完全不兼容)
-
v3.0 修复favicon显示bug
-
v3.0 增加调度器端的故障转移
-
v3.0 监控界面增加手动重试功能
-
v3.0 拆分quartz_job_info 调度任务表,每次执行调度任务会生成一个当前状态的实例表(重试,故障转移,ack等都基于实例表完成逻辑操作)
-
v3.0 增加单任务并行处理机制接口(只留了实现接口,并未做具体实现,暂不支持单任务并行)
-
v3.0 zdh_web项目增加调度器id(主要用做故障转移,判断任务是否是故障转移触发)
-
v3.0 手动执行删除重置功能(会生成一个实例,所以去掉重置功能)
-
v3.0 手动执行,调度执行都会删除之前的实例依赖(手动执行后,必须手动设置正确的调度时间)
-
v3.0 增加数据采集后端任务杀死功能
-
v3.0 增加超时告警任务-只告警不杀死
-
v3.0 hbase 删除jersey相关jar,解决jar冲突
-
v3.0 批量删除增加确认删除弹框
-
v3.0 修改spark 任务job组说明格式
-
v3.1 任务依赖检查实现方式修改
-
v3.1 增加cron 表达式生成页面
-
v3.1 文件名增加动态设置(根据时间生成特定规则文件名)
-
v3.1 启动时基础参数校验
-
v3.1 quartz 任务优先级设定
-
v3.1 增加支持quartz时间触发(串行+并行方式都支持)
-
v3.1 新增dag 工具类(计划3.2版本支持dag调度)
-
v4.0 实现调度拖拉拽
-
v4.0 重新实现任务发现机制
-
v4.0 增加任务组,子任务概念实现组任务
-
v4.0 实现dag调度
-
v4.0 实现调度流程图
-
v4.0 重新实现任务类型(4.x之前版本不兼容)
-
v4.0 增加greenplum-spark连接器
-
v4.0 全新逻辑,值得一试
-
v4.1 修复4.0 调度重试bug
-
v4.1 修复4.0 调度界面bug
-
v4.1 重新实现时间选取机制,调度性能提高
-
v4.1 修改监控界面去除组任务监控按钮添加子任务监控界面
-
v4.2 修复4.1bug
-
v4.2 sql脚本增加中文说明
-
v4.3 增加部分子任务重试机制
-
v4.3 增加手动执行部分子任务机制
-
v4.3 增加子任务运行时依赖图展示
-
v4.3 任务状态增加跳过状态
-
v4.3 优化logback日志配置
-
v4.3 修复手动重试新版bug
-
v4.3 删除zookeeper工具包
-
v4.3 删除[重复执行]调度任务模式
-
v4.3 删除mq配置信息
-
v4.3 删除netty工具包
-
v4.4 优化前端界面,日志界面每次打开新标签页
-
v4.4 优化超时告警
-
v4.4 修复SSH未结束异常
-
v4.4 删除多余的debug
-
v4.4 调整quartz延迟启动60s->20s
-
v4.4 删除线程池(影响SSH任务-待优化)
-
v4.5 修复检查任务组时空类型异常
-
v4.6 优化日志记录界面,增加日志下载,优化日志展示风格
-
v4.6 补充tidb任务说明
-
v4.6 增加自定义时间参数(高级使用)
-
v4.6 优化调度拖拽逻辑,简化数据结构
-
v4.6 修改jinjava 版本为2.5.6
-
v4.6 增加调度任务禁用功能
-
v4.6 增加调度任务组模块
-
v4.6 增加权限管理功能,功能菜单权限
-
v4.6 增加外部jdbc任务依赖检查
-
v4.7 修复4.6jdbc依赖检查杀死问题
-
v4.7 修复执行器死亡检测不到问题
-
v4.7 修复监控主界面杀死任务组问题
-
v4.7 计划支持滚动升级(目前滚动升级只完成了一键部署和扩容功能,未实现动态管理web节点上下线)
-
v4.7 升级jsch 版本为0.1.55
-
v4.7 优化任务界面模糊查询
-
v4.7 优化日志界面时间
-
v4.7 优化shell脚本特殊符号
-
v4.8 优化滚动升级部分 开发中
-
v4.8 计划支持血缘分析 开发中
- 本地文件
- hive(单集群使用多个远程hive,以及内外部表)
- hdfs(csv,txt,json,orc,parquet,avro)
- jdbc (所有的jdbc,包含特殊jdbc如hbase-phoenix,spark-jdbc,click-house,greenplum,presto,mariadb,memsql,华为dws,阿里AnalyticDB,kylin,gbase,kingbase,redshift)
- hbase
- mongodb
- es
- kafka
- http
- sftp
- cassandra
- redis
- flume
- greenplum
- kudu
- tidb
- shell 命令
- 数据库查询
- 特色开发jar
- 时间序列(时间限制,次数限制)
- 单次执行
详见说明文档
- 1.1 计划支持FTP 调度
- 1.1 计划支持HFILE 直接读取功能
- 1.1 docker 部署
- 2.X 单任务多数据源处理
- 5.X 计划支持kerberos 认证
邮件:1209687056@qq.com