《微店大数据开发平台架构演进》读后感
《微店大数据开发平台架构演进》读后感
《微店大数据开发平台架构演进》这篇文章向我们介绍了八个问题,其中对Mars大数据平台构成、Mars系统架构设计、分布式系统架构、定时、依赖调度、执行任务都做了哪些工作印象比较深刻。
一、Mars大数据平台构成
大数据开发平台建立在HDFS、YARN、HiveMeta的基础服务之上,目前支持通过Hive、Kylin查找数据,后面所有的数据查询入口将都集成在这里,包括:ES、Redis、Hades等,大数据平台目前支持Shell、Hive、MR、Spark四种任务类型。
二、Mars系统架构设计
Mars大数据开发平台依托于Hadoop集群,所有的mars机器都必须安装hadoop、Hive客户端。Mars机器有两个身份:master&worker。master负责管理Job、给worker分配Job;worker负责执行Job,提交Job到Hadoop集群,接收Job执行的日志信息。
三、分布式系统架构
1、谁是master,谁是worker
应用启动时,机器通过抢占的方式争当master,通过在数据库中插入一条记录的方式标识当前谁是master,master每隔一定时间去更新数据库,通过维护一个更新时间间接告知worker它还活着,worker同样每隔一定时间去查询数据库,倘若master的更新时间超过一定时间间隔,worker则认为master故障,第一个发现的worker将当仁不让的成为新的master。
2、master、worker容灾模式
master与worker之间使用基于protobuf的netty进行通信,master会每隔一段时间去检测与worker的连接,若发现worker故障,master将断开与worker的连接,把分配到该故障worker上的任务重新分配到其他worker上去执行;若master故障,worker将使用抢占的方式争当新的master,新的mater将中止所有正在运行的Job,重新分配。
四、定时、依赖调度
1、定时调度
Mars使用Quartz来实现定时调度。Quartz是一个完全由java编写的开源作业调度框架。简单地创建一个实现org.quartz.Job接口的java类。Job接口包含唯一的方法:public void execute(JobExecutionContext context) throws JobExecutionException,在你的Job接口实现类里面,添加业务逻辑到execute()方法。一旦配置好Job实现类并设定好调度时间,Quartz将密切注意剩余时间。当调度程序确定该是通知你作业执行的时候,Quartz框架将调用你的Job实现类(作业类)的execute()方法,去做它该做的事情。
2、依赖调度
依赖调度是指该Job所有依赖的Job全部成功运行完毕时需要被触发的任务类型。当且仅当其所有依赖的任务在当天全部成功运行完毕后,依赖任务将会被触发执行。那么依赖调度是如何实现的?
例如,任务110、112为定时任务,任务119为依赖任务,任务119依赖任务110、112。起初119的状态为:依赖JobId:110、112,已就绪JobId:空。110、112未就绪,119不执行;凌晨2点任务110执行成功,任务119收到110执行成功事件,状态更新为:依赖JobId:110、112,已就绪JobId:110、112未就绪,119此时仍然不执行;凌晨3点任务112执行成功,任务119收到112执行成功事件,状态再次被更新为:依赖JobId:110、112,已就绪JobId:110、112。110、112均已就绪,触发119开始执行。
五、执行任务都做了哪些工作
1、后端
(1)用户在开发中心运行、选中运行或在调度中心手动执行、手动恢复。
(2)Mars worker机器进行预判断,包括权限判断、脚本中是否有参数为替换等。
(3)worker机器向master机器发送执行任务请求。
(4)master机器收到执行任务请求,把任务加入执行队列。
(5)master机器定时扫描执行队列,选择合适的worker(负载均衡)执行此任务。
(6)前置准备。包括:资源文件下载,数据表数据监测等。
执行任务。
(7)后置处理。包括数据浮动检查、旧分区清理、添加执行成功标志等。
(8)如果生成了结果文件,还要上传结果文件到Hadoop,方便以后下载。
2、前端
(1) 用户触发执行任务。
(2) 每隔一段时间请求日志,刷新到前端页面。
(3) 任务执行完毕。
(4) 如果是开发中心有结果数据,则请求Hadoop上的结果数据。
(5) 进行数据展示。
转载于:https://www.cnblogs.com/wxd136/p/11042596.html
《微店大数据开发平台架构演进》读后感相关推荐
- GC13:XO独占游戏《神鬼寓言传奇》公布
作者: 来源: www.bts668.com 微软日前公布了<神鬼寓言传奇>(Fable Legends),该游戏是此系列作品的新作,将作为Xbox One游戏出现. 这款由狮子头工作室开 ...
- Facebook 重金挖不到,ASP.NET 之父,微软大神“红衣教主”传奇
作者 | 伍杏玲 出品 | CSDN (ID:CSDNnews) 2018 年底,微软"王者归来",时隔 16 年市值重返全球第一.人们纷纷用"力挽狂澜"&qu ...
- 乔布斯去世衍生多种周边产品(支持乔布斯请顶)
各种乔布斯肖像 乔布斯公仔 乔布斯立体纸人 不管你是不是狂热的苹果粉丝,是不是拥有n多的苹果产品,苹果帮主乔布斯都应该值得我们纪念. "为什么说乔布斯改变了世界?没有 iPhone,就不会有 ...
- 一战封神!“中国飞人”苏炳添跑出9秒83到底有多牛?
公众号后台回复"图书",了解更多号主新书内容作者:CDA数据分析师来源:CDA数据分析师 [导读] 在刚刚结束的东京奥运会百米飞人大战上,中国选手苏炳添在半决赛跑出9秒83,刷新了 ...
- 乔布斯导演的最后一幕
连作者也说,他仅仅是这本书的写作者,真正的作者是乔布斯."中信出版社总编辑潘岳近日分享了<史蒂夫·乔布斯传>幕后的故事.这本传记预定期已达100万册,预估最终销量将达到500万册 ...
- 30本pdf完整版的经典Linux学习和开发教程和资料下载 android arm java 资料大全
史上最牛的Linux内核学习方法论 点击下载 我的arm_linux移植笔记 点击下载 S3C2440完全开发流程 点击下载 Linux系统命令及其使用详解完整版 点击下载 Linux ...
- 30本pdf完整版的经典Linux学习和开发教程和资料下载 android arm java 资料大全...
史上最牛的Linux内核学习方法论 点击下载 我的arm_linux移植笔记 点击下载 S3C2440完全开发流程 点击下载 Linux系统命令及其使用详解完整版 点击下载 Linux主要shell命 ...
- 养成励志的习惯,一生励志——文指星终极励志
语言的突破全集 卡耐基 --励志经典 点击下载 人性的优点--卡耐基名著--励志经典 点击下载 人生格言精华总集 点击下载 人生定律与原则--励志经典 点击下载 厚黑学 ...
- 养成励志的习惯,一生励志
语言的突破全集 卡耐基 --励志经典 点击下载 人性的优点--卡耐基名著--励志经典 点击下载 人生格言精华总集 点击下载 人生定律与原则--励志经典 点击下载 厚黑学 ...
- 【转】乔布斯经典语录
2011年8月25日消息,乔布斯辞去了苹果公司CEO的职务.10月6日,传来了他去世的消息.在此缅怀乔帮主的同时,与大家分享乔布斯在世时的经典语录.(来自于<乔布斯传>--神一样的传奇的附 ...
最新文章
- 多目录cmake工程 CmakeLists.txt编写
- 挖掘Windows 10看图的习惯用法
- 贤惠限量,请妥善使用
- 牛客 - 收集纸片(最短哈密顿路径-状压dp)
- 浅谈Java中的各种锁
- linux 安装 wkhtmltox
- python删除指定日期前的备份文件
- apt apt 用法_apt命令–实用用法指南
- 自学-Linux-老男孩Linux77期-day2
- 小度wifi当无线网卡
- 微软服务器如何启动tomcat,Windows服务器下重启Tomcat服务步骤
- 生意参谋和数据银行盘点:品牌+市场+产品
- python代码格式化工具下载_python 代码格式化工具:autopep8
- 混沌多项式展开(Polynomial Chaos Expansions,PCE)- 待更
- Fibonacci 斐波那契数列的R语言实现
- element-ui的select组件设置预选项没问题,但重新选中不改变的问题解决
- 叮!丰巢智能柜那些贴心服务的正确打开方式
- python交换数组中的两个元素_Python 交换数组元素
- 使用DXperience开发Asp.net2.0程序——序
- [Python]将一个字典(dict)用npy存储并读取