一、前言

在大数据平台,随着业务发展,每天承载着成千上万的ETL(Extract-Transform-Load 数据抽取,转换,装载)任务调度,这些任务集中在hive,shell脚本调度。怎么样让大量的ETL任 务准确的完成调度而不出现问题,甚至在任务调度执行中出现错误的情况下,任务能够完成自我恢复甚至执行错误告警与完整的日志 查询。hera任务调度系统就是在这种背景下衍生的一款分布式调度系统。随着hera集群动态扩展,可以承载成千上万的任务调度。 它是一款原生的分布式任务调度,可以快速的添加部署wokrer节点,动态扩展集群规模。支持shell,hive,spark脚本调度,可以动态的扩展支持python等服务器端脚本调度。

Hera源码下载:https://github.com/chenxingxing6/hera/tree/hera-2.4.1

赫拉(hera)分布式任务调度系统之操作文档
赫拉(hera)分布式任务调度系统之架构,基本功能(一)
赫拉(hera)分布式任务调度系统之项目启动(二)
赫拉(hera)分布式任务调度系统之开发中心(三)
赫拉(hera)分布式任务调度系统之版本(四)
赫拉(hera)分布式任务调度系统之Q&A(五)


二、架构

赫拉系统只是负责调度以及辅助的系统,具体的计算还是要落在hadoop、hive、yarn、spark等集群中去。所以此时又一个硬性要求,如果要执行hadoop,hive,spark等任务,我们的hera系统的worker一定要部署在这些集群某些机器之上。如果仅仅是shell,那么也至少需要linux系统。对于windows系统,可以把自己作为master进行调试。

主节点:任务调度触发与任务分发器,从节点:具体的任务执行器


三、功能

在了解之前,最后先了解过大数据,Hadoop集群,MaperReduce这些东西都有玩过。

  1. 支持任务的定时调度、依赖调度、手动调度、手动恢复 支持丰富的任务类型:shell,hive,python,spark-sql,java
  2. 可视化的任务DAG图展示,任务的执行严格按照任务的依赖关系执行某个任务的上、下游执行状况查看,通过任务依赖图可以清楚的判断当前任务为何还未执行,删除该任务会影响那些任务。
  3. 支持上传文件到hdfs,支持使用hdfs文件资源 支持日志的实时滚动 支持任务失败自动恢复实现集群HA,机器宕机环境实现机器断线重连与心跳恢复与hera集群HA,节点单点故障环境下任务自动恢复,master断开,worker抢占master
  4. 支持对master/work 负载,内存,进程,cpu信息的可视化查看
  5. 支持正在等待执行的任务,每个worker上正在执行的任务信息的可视化查看
  6. 支持实时运行的任务,失败任务,成功任务,任务耗时top10的可视化查看 支持历史执行任务信息的折线图查看具体到某天的总运行次数,总失败次数,总成功次数,总任务数,总失败任务数,总成功任务数
  7. 支持关注自己的任务,自动调度执行失败时会向负责人发送邮件 对外提供API,开放系统任务调度触发接口,便于对接其它需要使用hera的系统组下任务总览、组下任务失败、组下任务正在运行 支持map-reduce任务和yarn任务的实时取消。 支持任务超时提醒
  8. 支持用户与组的概念 支持任务操作历史记录查看与恢复 支持任务告警定位到个人 告警类型支持邮箱以及自定义的钉钉、企业微信、短信、电话等
  9. 支持任务各种条件的模糊搜索 支持阿里云emr的自动创建、销毁 支持亚马逊emr的自动创建、销毁、弹性伸缩

四、脚本

4.1 启动脚本
#!/bin/shJAVA_OPTS="-server -Xms4G -Xmx4G -Xmn2G -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:CMSFullGCsBeforeCompaction=5 -XX:+CMSParallelInitialMarkEnabled -XX:CMSInitiatingOccupancyFraction=80  -verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:/opt/logs/spring-boot/gc.log -XX:MetaspaceSize=128m -XX:+UseCMSCompactAtFullCollection -XX:MaxMetaspaceSize=128m -XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/logs/spring-boot/dump"log_dir="/opt/logs/spring-boot"
log_file="/opt/logs/spring-boot/all.log"
jar_file="/opt/app/spring-boot/hera.jar"#日志文件夹不存在,则创建
if [ ! -d "${log_dir}" ]; thenecho "创建日志目录:${log_dir}"mkdir -p "${log_dir}"echo "创建日志目录完成:${log_dir}"
fi#父目录下jar文件存在
if [ -f "${jar_file}" ]; then#启动jar包 错误输出的error 标准输出的lognohup java $JAVA_OPTS -jar ${jar_file} 1>"${log_file}" 2>"${log_dir}"/error.log &echo "启动完成"exit 0
elseecho -e "\033[31m${jar_file}文件不存在!\033[0m"exit 1
fi
4.2 关闭脚本
#!/bin/bash
pid=`ps | grep java | grep hera | awk '{print $1}'`[ ! $pid ] && echo "找不到hera的进程,请确认hera已经启动" && exit 0res=`kill -9 $pid`echo 关闭hera成功,pid:$pid


五、Hera管理后台

5.1 任务基本信息

  1. 任务id :系统自动生成,任务的唯一标识 名称:新建任务时用户填写,最好见名知意,尽可能短
  2. 任务类型:编辑任务时可选shell、hive、spark三种类型 自动调度: 自动调度是否开启,可以通过右侧的开启/关闭按钮来操作
  3. 任务优先级:编辑任务时可选low,medium,high,当队列中任务很多时会根据该优先级进行分发任务执行 描述:必填项,任务信息的描述
  4. 调度类型:编辑任务时可选定时调度、依赖调度,定时调度时需要填写cron 表达式,依赖调度时需要选择所依赖的任务 ID
  5. 定时表达式:调度类型为定时调度时所填写的 cron 表达式 依赖任务:调度类型为依赖调度时所选择的依赖任务 ID 的列表
  6. 重试次数:任务自动调度/手动恢复失败时重试的次数 重试间隔:任务自动调度/手动恢复失败后需要等待多久进行重试
  7. 预计时长:整数,0表示无限大。当任务执行超出预计时长时会进行告警
  8. 报警类型:任务任务自动调度/手动恢复失败,并且重试次数已经用完进行邮件、企业微信、电话告警,告警级别依次升高。当选择电话告警时,三种告警都会触发
  9. 所有人:任务创建者所属的用户组
  10. 关注人员:任务失败后告警的人员,默认是任务的创建者。其它用户也可以在这里点击关注或者管理员在监控管理界面添加
  11. 管理员:该任务还允许哪些用户组的用户操作,可以通过操作按钮的配置管理员进行添加
  12. 重复执行:是否运行同一时间允许两个或两个以上实例执行。比如:每个小时触发的任务,任务的执行时间超出了一个小时,如果设置为否,则下个小时的任务不会执行,直到漏跑检测到才会执行
  13. 机器组:该任务需要在哪个机器组执行。机器组的创建请参考上面的机器组管理 区域:任务需要在哪个区域执行。默认是 all ,如果你们的hera 数据库做了多区同步,那么可以选择需要执行的区域,在不是所选择的区域执行该任务时会直接设置为成功。

大数据任务调度系统-Hera相关推荐

  1. 新一代大数据任务调度系统 - Apache DolphinScheduler 1.3.4 发布,推荐下载

    | 本文编辑:朱桐 新一代大数据任务调度 - Apache DolphinScheduler(incubator) 在经过社区 30 多位小伙伴的贡献与努力下于发布了 1.3.4 版本,1.3.4 作 ...

  2. PiFlow大数据流水线系统v0.9源码

    介绍: PiFlow是一个简单易用,功能强大的大数据流水线系统.包含丰富的处理器组件,提供Shell.DSL.Web配置界面.任务调度.任务监控等功能. 特性: 1.简单易用 可视化配置流水线. 监控 ...

  3. 当我们在聊「开源大数据调度系统Taier」的数据开发功能时,到底在讨论什么?

    原文链接:当我们在聊「开源大数据调度系统Taier」的数据开发功能时,到底在讨论什么? 课件获取:关注公众号__ "数栈研习社",后台私信 "Taier"__ ...

  4. 浅谈大数据任务调度平台

    谈到大数据,避免不了hadoop, hive, spark 这些基础套件,但是在整个大数据开发的时候,我们面对的基本上都是数据开发平台和任务调度系统.数据开发平台一般直接面对业务同学,很大程度上影响业 ...

  5. 大数据任务调度工具 Apache DolphinScheduler

    文章目录 大数据任务调度工具 Apache DolphinScheduler 项目亮点 DolphinScheduler 简介 调度系统选型 为什么大数据要选择 DolphinScheduler Do ...

  6. 【2016年第4期】大数据应用系统的消息驱动架构

    贵芳1,李廉1,杨静1,武永卫2 1.合肥工业大学计算机与信息学院,安徽 合肥 230009: 2.清华大学计算机科学与技术系,北京 100084 摘要:基于消息驱动框架的软件开发成为大数据应用系统的 ...

  7. 互联网金融时代下机器学习与大数据风控系统

    机器学习在互联网金融行业中的应用 在企业数据的应用的场景下,人们最常用的主要是监督学习和无监督学习的模型,在金融行业中一个天然而又典型的应用就是风险控制中对借款人进行信用评估.因此互联网金融企业依托互 ...

  8. PiFlow v0.5 发布:大数据流水线系统

    开发四年只会写业务代码,分布式高并发都不会还做程序员?   PiFlow是一个基于分布式计算框架Spark开发的大数据流水线系统.该系统将数据的采集.清洗.计算.存储等各个环节封装成组件,以所见即所得 ...

  9. 大数据可视化系统开发的作用

    在大数据快速发展的今天,数据正在呈指数快速增长.那么随着数据的积累,如何在海量的数据当中,快速找到并理解数据的信息规律,如何对数据进行归纳总结,这是大数据可视化系统需要解决的问题,下面中琛魔方就带着大 ...

最新文章

  1. 将日志中的指定字段对齐显示输出
  2. Java问题排查工具箱
  3. Typescript中class的extends码源分析
  4. Windows Phone 如何振动手机?
  5. juc原子类之五:AtomicLongFieldUpdater原子类
  6. 实现nav_微信小程序——沉浸式导航栏实现(含iphoneX适配和组件封装)
  7. 拓端tecdat|R语言使用K-Means聚类可视化WiFi访问
  8. 山西特岗考试计算机专业真题,山西特岗教师招聘考试模拟题_信息技术选择题...
  9. c++ 链表快速查找
  10. 微信小程序显示空格符
  11. -- 27、 查询出只有两门课程的全部学生的学号和姓名(不重点)(自己做出)
  12. 05_ue4进阶_材质UV缩放
  13. Ubuntu18.04安装交叉编译工具链gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf
  14. 干货!!史上最全Java学习视频
  15. Python NLP入门教程
  16. 宜家开发中心东亚区完成了在中国的全新升级,实践“民主设计”
  17. HackTheBox-baby WAFfles order
  18. 从 1 秒到 10 毫秒!在 APISIX 中减少 Prometheus 请求阻塞
  19. ZBlog源码资源站整站打包-带天兴娱乐资源主题+墨初用户中心插件
  20. vscode 连接mysql

热门文章

  1. 真想做一名普通的大学老师
  2. XPath实例教程十六、following轴
  3. UNetbootin安装linux
  4. SQL2008精简安装
  5. 电子书上新,年卡一键开通免费看
  6. Testin实验室发布中国安卓游戏指数(8月报):欢乐斗地主夺冠
  7. C#实践笔记5_2 多线程的同步操作锁
  8. Oracle约数,oracle 约束
  9. Word Ladder系列
  10. merge java方法_Java HashMap merge() 方法