zoukankan      html  css  js  c++  java
  • 微店大数据开发平台架构演进

    一、为什么需要大数据开发平台

    传统的数据开发流程

    开发人员通过公共账号登录安装了Hive、Hadoop客户端的gateway机器;

    编写自己的脚本,调试代码,完成后通过crontab配置脚本定时执行;

    为了防止脚本被其他同事修改,一些谨慎的同事会在每次开发完自己的脚本后同步一份到本机,后面为了实现版本控制,把脚本同步到了git;

    传统的开发流程面临的问题

    效率低下。

    脚本或代码没有版本控制,开发人员想回滚到以前的版本很不方便。

    若开发人员疏忽,添加新的需求后未经过调试,将可能会影响生成的数据,进而影响线上业务。

    任务缺乏权限控制,可登陆gateway的任何人都可修改、运行脚本。

    对于脚本中依赖的表,只能预估它每天产生的时间,一旦它产出延迟,将影响数据的产出。

    任务失败无任何报警,只能依靠人工发现。

    任务失败重新恢复后无法自动通知依赖下游重新生成。

    任务失败要逐层向上游查找最源头的任务失败原因,排查异常繁琐。

    一旦gateway机器故障,所有的任务都将灰飞烟灭,毫无疑问这将是一场灾难。

    二、大数据开发平台应具备的功能特征

    Mars具备的功能特性:

    引入版本控制,方便开发人员回滚到之前版本,快速恢复线上调度的任务。

    规范大数据开发、测试、上线的流程。

    权限控制,任务的所有人、管理员才可以操作任务。

    依赖调度,所有依赖的任务执行成功,自动触发自身执行。

    任务执行失败,发送执行失败消息给任务所有人,人工介入。

    手动恢复任务,恢复成功后,自动通知下游的任务重新执行。

    任务依赖图谱,成功失败用不同颜色区分,失败源头一目了然。

    任务信息存储在数据库,Mars机器采用分布式系统架构,即使单台机器故障也不会影响使用。

    输入输出检测,判断输入表是否准备好,检测输出表数据是否完整。

    合理使用Hadoop资源。用户只能使用所属团队指定的hadoop队列。

    本文参考链接:https://mp.weixin.qq.com/s?__biz=MzIzMDEyNzM4NQ==&mid=2650956332&idx=1&sn=9fe0952942de8f96d9a1d12f66dcd462&chksm=f34ee05ac439694cb02b8e389f35e201aafea966f51c3a594dacdd29a4d22cde32954bd5bfc4&scene=21#wechat_redirect

  • 相关阅读:
    HTML表格布局例子
    WCF分布式开发必备知识(2):.Net Remoting (转)
    WCF分布式开发必备知识(1):MSMQ消息队列(转)
    WCF数据契约与序列化(转)
    Asp.net中图片存储数据库以及页面读取显示通用方法详解附源码下载
    2010年初的一点随想
    Windows7旗舰版磁盘分区详解—附分区步骤截图
    AjaxControltoolkit(工具包)安装步骤说明
    Windows7安装IIS中关于Windows 系列于谷歌Chrome系统争议一点联想
    Oracle 10G中关于约束在表和列中使用详解.
  • 原文地址:https://www.cnblogs.com/zyt-bg/p/10989282.html
Copyright © 2011-2022 走看看