《微店大数据开发平台架构演进》读后感

《微店大数据开发平台架构演进》这篇文章向我们介绍了八个问题,其中对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

《微店大数据开发平台架构演进》读后感相关推荐

  1. GC13:XO独占游戏《神鬼寓言传奇》公布

    作者: 来源: www.bts668.com 微软日前公布了<神鬼寓言传奇>(Fable Legends),该游戏是此系列作品的新作,将作为Xbox One游戏出现. 这款由狮子头工作室开 ...

  2. Facebook 重金挖不到,ASP.NET 之父,微软大神“红衣教主”传奇

    作者 | 伍杏玲 出品 | CSDN (ID:CSDNnews) 2018 年底,微软"王者归来",时隔 16 年市值重返全球第一.人们纷纷用"力挽狂澜"&qu ...

  3. 乔布斯去世衍生多种周边产品(支持乔布斯请顶)

    各种乔布斯肖像 乔布斯公仔 乔布斯立体纸人 不管你是不是狂热的苹果粉丝,是不是拥有n多的苹果产品,苹果帮主乔布斯都应该值得我们纪念. "为什么说乔布斯改变了世界?没有 iPhone,就不会有 ...

  4. 一战封神!“中国飞人”苏炳添跑出9秒83到底有多牛?

    公众号后台回复"图书",了解更多号主新书内容作者:CDA数据分析师来源:CDA数据分析师 [导读] 在刚刚结束的东京奥运会百米飞人大战上,中国选手苏炳添在半决赛跑出9秒83,刷新了 ...

  5. 乔布斯导演的最后一幕

    连作者也说,他仅仅是这本书的写作者,真正的作者是乔布斯."中信出版社总编辑潘岳近日分享了<史蒂夫·乔布斯传>幕后的故事.这本传记预定期已达100万册,预估最终销量将达到500万册 ...

  6. 30本pdf完整版的经典Linux学习和开发教程和资料下载 android arm java 资料大全

    史上最牛的Linux内核学习方法论   点击下载 我的arm_linux移植笔记   点击下载 S3C2440完全开发流程   点击下载 Linux系统命令及其使用详解完整版   点击下载 Linux ...

  7. 30本pdf完整版的经典Linux学习和开发教程和资料下载 android arm java 资料大全...

    史上最牛的Linux内核学习方法论 点击下载 我的arm_linux移植笔记 点击下载 S3C2440完全开发流程 点击下载 Linux系统命令及其使用详解完整版 点击下载 Linux主要shell命 ...

  8. 养成励志的习惯,一生励志——文指星终极励志

    语言的突破全集 卡耐基 --励志经典     点击下载 人性的优点--卡耐基名著--励志经典     点击下载 人生格言精华总集     点击下载 人生定律与原则--励志经典     点击下载 厚黑学 ...

  9. 养成励志的习惯,一生励志

    语言的突破全集 卡耐基 --励志经典     点击下载 人性的优点--卡耐基名著--励志经典     点击下载 人生格言精华总集     点击下载 人生定律与原则--励志经典     点击下载 厚黑学 ...

  10. 【转】乔布斯经典语录

    2011年8月25日消息,乔布斯辞去了苹果公司CEO的职务.10月6日,传来了他去世的消息.在此缅怀乔帮主的同时,与大家分享乔布斯在世时的经典语录.(来自于<乔布斯传>--神一样的传奇的附 ...

最新文章

  1. 多目录cmake工程 CmakeLists.txt编写
  2. 挖掘Windows 10看图的习惯用法
  3. 贤惠限量,请妥善使用
  4. 牛客 - 收集纸片(最短哈密顿路径-状压dp)
  5. 浅谈Java中的各种锁
  6. linux 安装 wkhtmltox
  7. python删除指定日期前的备份文件
  8. apt apt 用法_apt命令–实用用法指南
  9. 自学-Linux-老男孩Linux77期-day2
  10. 小度wifi当无线网卡
  11. 微软服务器如何启动tomcat,Windows服务器下重启Tomcat服务步骤
  12. 生意参谋和数据银行盘点:品牌+市场+产品
  13. python代码格式化工具下载_python 代码格式化工具:autopep8
  14. 混沌多项式展开(Polynomial Chaos Expansions,PCE)- 待更
  15. Fibonacci 斐波那契数列的R语言实现
  16. element-ui的select组件设置预选项没问题,但重新选中不改变的问题解决
  17. 叮!丰巢智能柜那些贴心服务的正确打开方式
  18. python交换数组中的两个元素_Python 交换数组元素
  19. 使用DXperience开发Asp.net2.0程序——序
  20. [Python]将一个字典(dict)用npy存储并读取

热门文章

  1. HDU 1104 Remainder (BFS)
  2. 公司图纸文档如何管理?图纸管理软件选择方案:
  3. 修改数据库字段名称类型
  4. obs可以装手机吗?_iphonexs max可以装两个微信吗
  5. 基于STM32 + SYN6288语音播报
  6. Redis常用配置详解
  7. vue微信公众号页面分享
  8. 微信公众号开发之-回调的所有类型
  9. java任务项目——学生喂养三种宠物:猫、狗、鸟
  10. DDD领域驱动(二)——之需求梳理