源码分享-基于Spring Boot为美柚大数据研发的大数据任务调度平台
此项目为美柚大数据研发的大数据任务调度平台,提供Spark、Flink等离线任务的调度以及实时任务的监控,并具有批次积压报警、任务异常重启、重复应用监测、大内存应用监测等功能。
Big Whale - 任务调度平台
Big Whale(巨鲸),为美柚大数据研发的大数据任务调度平台,提供Spark、Flink等离线任务的调度以及实时任务的监控,并具有批次积压报警、任务异常重启、重复应用监测、大内存应用监测等功能。 服务基于Spring Boot 2.0开发,部署方便,功能强大,打包后即可运行。
部署
1.准备
- Java 1.8+
- Mysql 5.1.0+
- 下载项目或git clone项目
- 为解决 github README.md 图片无法正常加载的问题,请在hosts文件中加入相关域名解析规则
2.安装
- 创建数据库:big-whale
- 运行数据库脚本:big_whale_tables_mysql.sql
- 根据Spring Boot环境,配置相关数据库账号密码,以及SMTP信息
- 配置:big-whale.properties配置项说明ssh.user: 拥有脚本执行权限的ssh用户(平台会使用该用户作为统一的脚本执行用户)ssh.password: 拥有脚本执行权限的ssh用户密码dingding.enabled: 是否开启钉钉告警dingding.watcher-token: 钉钉公共群机器人Tokenyarn.app-memory-threshold: Yarn应用内存上限,-1禁用监测yarn.app-white-list: 白名单列表(列表中的应用申请的内存超过上限,不会进行报警)
- 修改:$FLINK_HOME/bin/flink(flink提交任务时,只能读取本地jar包,故需要在执行flink提交命令时从hdfs上下载jar包并替换脚本的jar包路径参数,参考:flink)
- 服务打包:mvn clean package
3.启动
- 检查端口17070是否被占用,被占用的话,关闭占用的进程或修改项目端口号配置重新打包
- 拷贝target下的big-whale.jar,执行命令:java -jar big-whale.jar
4.初始配置
- 输入账号admin,密码admin
- 点击:权限管理->用户管理,修改当前账号的邮箱为合法且存在的邮箱地址,否则会导致邮件发送错误、执行状态更新失败等问题
- 添加集群集群管理->集群管理->新增
- “yarn管理地址”为ResourceManager的WEB UI地址需要为Spark或Flink任务设置“程序包存储目录”,如:/data/big-whale/storage“支持Flink任务代理用户”“流式任务黑名单”和“批处理任务黑名单”为内部定制的任务分配规则,可不填
- 添加设备
- 集群管理->设备管理->新增
- 选择集群后,会作为该集群下提交Spark或Flink任务的客户机之一(注意!!!当有多台机器属于同个集群的时,会随机选择客户机提交任务)
- 添加集群用户集群管理->集群用户->新增
- “用户”为平台用户,“代理用户”为运行Spark的代理用户,该配置的语义为:平台用户在所选集群下可使用的Yarn资源队列和代理用户(proxyuser)
- 添加计算框架版本集群管理->版本管理->新增
- 同一集群下不同版本的Spark或Flink提交任务的命令可能有所不同,如Spark:1.6.0版本的提交命令为spark-submit,2.1.0版本的提交命令为spark2-submit
使用
1.新建脚本
- 脚本管理->新增
- “类型”有shell、spark实时、spark离线、flink实时、flink离线,示例为:spark实时
- 因为当前用户为超级管理员,可为所有用户创建脚本,故需要选择“用户”
- “程序包”应上传与脚本类型相应的Spark流式任务打成的jar包
- “资源选项”可不填
- 代码有两种编辑模式,“可视化视图”和“代码视图”,可互相切换
2.执行脚本
- 脚本管理
点击执行上一步新建的脚本
执行成功后在详情中便可查看到Yarn应用详情的链接(提交Yarn任务的日志级别请设置为:INFO)
3.实时监控
- 对于类型为“spark实时”和“flink实时”的脚本,可以通过添加此功能来实时监控任务的运行情况
4.离线调度
- 对于类型为“shell”、“spark离线”和“flink离线”的脚本,可通过添加此功能实现定时执行,通过添加子脚本的形式可实现串行任务调度
- 说明:平台提交saprk或flink任务的时候默认都会以“后台”的方式执行,对应spark配置:--conf spark.yarn.submit.waitAppCompletion=false,flink配置:-d,但是基于后台任务监测的实现,通过回调实现串行任务调度的时候会等待真正运行的任务完成后再执行下一脚本
源码获取方式:扫描下方二维码
源码分享-基于Spring Boot为美柚大数据研发的大数据任务调度平台相关推荐
- (附源码)基于Spring Boot的ERP仓储管理信息系统设计与实现 毕业设计150958
基于Spring Boot的ERP仓储管理信息系统设计与实现 摘 要 科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用.信息时代的 ...
- (附源码)基于Spring Boot的宠物猫店管理系统的设计与实现 毕业设计140909
springboot宠物猫店管理系统的设计与实现 摘 要 在信息飞速发展的今天,网络已成为人们重要的信息交流平台.宠物猫店管理系统公司每天都有大量的信息需要通过网络发布,为此,本人开发了一个基于B/S ...
- (附源码)基于Spring boot开发电子宿舍管理系统 毕业设计132056
摘 要 科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用.信息时代的到来已成为不可阻挡的时尚潮流,人类发展的历史正进入一个新时代. ...
- 招聘管理系统软件java源码_基于Spring Boot的java开源招聘源码-铭阳招聘管理系统...
铭阳招聘管理系统 铭阳招聘管理系统,采用流行的框架Spring Boot+mybatis+ehcache开发,实现了权限管理,solr全文搜索引擎,系统具执行效率高.模板自由切换.后台管理功能灵活等诸 ...
- Tomcat8源码分析系列-spring boot集成tomcat
前言 本文基于 spring boot 1.5.9 spring boot 支持目前主流的 servlet 容器,包括 tomcat.jetty.undertow,可以在我们的项目中方便地集成这些 s ...
- springboot 微信太阳码_WxJava基于Spring Boot开发微信公众号手机注册码
WxJava基于Spring Boot开发微信公众号手机注册码 Szx • 2019 年 05 月 18 日 第一步先下载官方Demo https://github.com/binarywang/we ...
- (附源码)APP+spring boot基于Android智能手机的微课程学习系统设计与实现 毕业设计100909
摘 要 随着现在网络的快速发展,网络的应用在各行各业当中它很快融入到了许多学校的眼球之中,他们利用网络来做这个微课程学习系统的网站,随之就产生了"智能手机的微课程学习系统 ",这 ...
- 文件管理系统源码_基于Spring Cloud微服务构建多平台功能完善小说弹幕网站源码分享...
致力于打造一个完整的可商用.可学习的小说门户平台,重新进行了数据库设计.代码重构和功能增强,提升了程序整体的可读性和性能,增加了很多商用特性. 是一个多平台(web.安卓app.微信小程序).功能完善 ...
- RocketMQ 源码分析 —— 集成 Spring Boot
点击上方"芋道源码",选择"设为星标" 做积极的人,而不是积极废人! 源码精品专栏 原创 | Java 2020 超神之路,很肝~ 中文详细注释的开源项目 RP ...
最新文章
- 融合应用11.1.8安装,一步一步的引导
- 学习前端工程师手册--学习记录
- [第180期]我在51CTO的提问:如何做好企业信息安全管理
- .重要开源协定的比较以及区别
- a标签,选中当前菜单后高亮
- 定时执行程序-Quartz简单实例
- JVM 调优参数详解
- C# WPF发票打印
- HEU 5039 Move Woods
- NLP系列学习:CRF条件随机场(2)
- jquery ajax提交表单数据的两种方式
- [c/c++]可变参数加法
- Webpack配置问题
- 使用wav2sbc.exe无法转换WAV文件问题
- 多个服务器数据互通_8月6日部分服务器数据互通公告!
- 微信小程序之九宫格布局方案
- 初学者这样玩 TypeScript,迟早进大厂系列!
- magento怎么修改货币符号,在之前加上国家缩写
- python离线安装tensorflow_TensorFlow的离线安装
- JAVA调用有道API接口对数据库中的中文语句进行翻译