同步操作将从 lianzt/job-timer 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
定时任务管理工具,目前可管理三类任务:spark job、datax 数据导入/导出任务、shell脚本。
一个任务包含的属性有:标题、说明、类型(spark|datax|shell)、运行参数、开始时间、运行周期
定时任务以组的方式进行管理,进行一次数据分析通常需要多个任务协同工作,比如需要先导出数据到hdfs,然后用spark分析导出的数据,在导出数据时可能还需要做一些文件转移、重命名等操作。
这些任务有严格的执行顺序,这样的一系列任务放做为一个任务组运行。当分析任务比较简单时,也可以一个组中只包含一个任务。
基于 node.js v8.9 开发,由于使用了 async/await 关键字,所以运行环境至少 node.js v8.1 以上。
UI页面基于 vue + elementUI,需chrome 45 版本以上。
项目已在公司的linux服务器上线运行,操作系统理论上可支持 windows与mac,但未经过测试。
基于 apache livy 工具二次开发,通过 livy 向 yarn 提交 jar,需注意 spark 运行的 jar 包要放置在 hdfs 中。
可参考 livy rest api 文档: https://livy.incubator.apache.org/docs/latest/rest-api.html
阿里开源的数据导入、导出工具,可以支持大部分存储介质之间相互提取导入,通常用于把 oracle 中的数据导入到 hive。
依赖 python 2.7
可参考文档:https://github.com/alibaba/DataX
基于 node.js child_process 模块的 execFile 函数开发,系统会将 shell 脚本保存成 sh 文件,然后调用 execFile 函数执行,需注意脚本输出不能大于200k。
默认的超时时间为 10分钟,暂不支持 args 参数列表,options可以使用。
UI界面目录是 /admin 基于VUE开发,是一个 使用 vue-cli 工具创建的项目,如果需要二次开发,参考 vue webpack 模板项目。
在UI界面中,以 iframe 方式加入了 livy 的控制台页面,所以需要配置 livy 的 url 地址,配置项为 LIVY_HOST,开发环境与生产环境分别对应以下两个文件:
后台所有配置都在 /config.js 文件中,系统判断环境变量 RUN_MODULE = proc 为生产环境,其它值或未配置为开发环境,见 config.js 代码。
配置文件中同时保存了开发环境与生产环境的配置,修改配置时需要注意对应环境。所有配置项都是用? :
三元运行符配置的,如果没有表示开发环境与生产环境配置相同。
通常初次配置需要修改的配置项包括:
web ui 使用 vue + elementUi 开发,使用以下命令
# 生产环境
# 启动 livy、mongodb,配置 python、hadoop 环境变量
cd admin
npm install #安装web ui相关包
npm run build #ui系统打包
./publish.sh #部署到 public 目录
cd ..
npm install #安装后台相关包
npm start #运行,或 pm2 start bin/www
# 开发模式
cd admin
npm install #安装web ui相关包
npm run dev #运行 vue 项目,默认占用8080端口,如果8080被占用,会自动调整端口,详细见命令输出
#另开启一个终端运行后台
npm install
npm start
数据库使用的是 mongodb .
任务组
{
_id: '', //mongodb 自动生成
title: '',
description: '',
beginTime: new Date(''), //开始运行的时间
cycle: 10000, //运行周期,单位 ms
status: '1', //状态:0-不可用,1-可用
lastRunTime: Date,
lastLog: '_id of logs',
group: [{ //任务组,顺序执行组中的任务
id: 0, //组中的id,在同一组中不可重复
title: '',
description: '',
type: 'spark | datax | shell', //任务类型,对应不同的执行插件
args: {}, //任务参数
lastRunTime: Date
}, ...]
}
日志
{
_id: '', //mongodb 自动生成
jobId: '_id of jobs',
title: '',
group: [{
id: 0,
title: '',
type: 'spark | datax | shell',
args: {},
log: 'text | file',
begin_time: Date,
end_time: Date
}],
beginTime: Date,
endTime: Date
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。