1 Star 0 Fork 55

czmqlgr / job-timer

forked from lianzt / job-timer 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

job-timer

定时任务管理工具,目前可管理三类任务:spark job、datax 数据导入/导出任务、shell脚本。

一个任务包含的属性有:标题、说明、类型(spark|datax|shell)、运行参数、开始时间、运行周期

定时任务以组的方式进行管理,进行一次数据分析通常需要多个任务协同工作,比如需要先导出数据到hdfs,然后用spark分析导出的数据,在导出数据时可能还需要做一些文件转移、重命名等操作。

这些任务有严格的执行顺序,这样的一系列任务放做为一个任务组运行。当分析任务比较简单时,也可以一个组中只包含一个任务

功能模块

  • 任务组的增、删、改、查操作
  • 集成了livy控制台
  • 文件上传,可将文件直接上传到 hdfs
  • 状态监控 × 定时器模块

任务说明

spark job

基于 apache livy 工具二次开发,通过 livy 向 yarn 提交 jar,需注意 spark 运行的 jar 包要放置在 hdfs 中。

可参考 livy rest api 文档: https://livy.incubator.apache.org/docs/latest/rest-api.html

搭建过程:http://note.youdao.com/noteshare?id=ca7126842d0abc74c52998fab8e27306&sub=D7CED5916C2748A7BBAA6072297F5174

datax job

阿里开源的数据导入、导出工具,可以支持大部分存储介质之间相互提取导入,通常用于把 oracle 中的数据导入到 hive。

依赖 python 2.7

可参考文档:https://github.com/alibaba/DataX

shell job

基于 node.js child_process 模块的 execFile 函数开发,系统会将 shell 脚本保存成 sh 文件,然后调用 execFile 函数执行,需注意脚本输出不能大于200k。

参考文档:http://nodejs.cn/api/child_process.html#child_process_child_process_execfile_file_args_options_callback

默认的超时时间为 10分钟,暂不支持 args 参数列表,options可以使用。

运行

web ui 使用 vue + elementUi 开发,使用以下命令

cd admin

npm install		#安装web ui相关包

npm run build  #ui系统打包

./publish.sh   #部署到 public 目录

cd ..

npm start   #运行

配置文件

见 config.js 文件,会根据环境变量加载开发环境配置或生产环境配置, RUN_MODULE=proc 为生产环境。

config.js文件中使用了 ?: 三元运算符,同时配置了开发与生产环境的配置。

依赖

  • node.js v8.1 以上
  • mongodb 3.4 以上
  • apache livy 0.5
  • datax 3.0
  • chome浏览器 65
  • linux 操作系统
  • spark 2.0x
  • hadoop 2.7.x
  • 其它依赖见 package.json 与 admin/package.json

表结构

jobs

任务组

{
	_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
	}, ...]
}

logs

日志

{
	_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
}

空文件

简介

定时任务管理工具,可提供spark、yarn大数据平台分析任务的运行与日志收集;集成阿里 datax 3.0 ETL工具,并提供图形界面的管理;集中式管理操作 shell 脚本的运行与日志收集。 提供以任务组的方式管理定时任务,可将前后连接比较紧密的任务放入一个组中,系统将按照顺序依次执行。 展开 收起
NodeJS
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
NodeJS
1
https://gitee.com/linkilife/job-timer.git
git@gitee.com:linkilife/job-timer.git
linkilife
job-timer
job-timer
master

搜索帮助