前言
随着公司规模的增长,对大数据的离线应用开发的需求越来越多,这些需求包括但不限于离线数据同步(MySQL/Hive/Hbase/Elastic Search 等之间的离线同步)、离线计算(Hive/MapReduce/Spark 等)、定时调度、运行结果的查询以及失败场景的报警等等。
在统一的大数据开发平台产生之前,面临一系列的问题:
-
多个开发和调度入口,不同的业务部门之间的项目或组件很难复用,同时带来繁重的运维成本
-
Hadoop 的环境对业务团队的同事来讲不友好(除了要熟悉业务以外还需要对底层框架有比较深入的了解)
-
重复的开发工作(例如导表、调度等本来可以复用的模块,却需要在多个项目中重复实现)
-
频繁的跨部门需求沟通和讨论
-
互联网科技发展蓬勃兴起,人工智能时代来临,抓住下一个风口。为帮助那些往想互联网方向转行想学习,却因为时间不够,资源不足而放弃的人。我自己整理的一份最新的大数据进阶资料和高级开发教程,大数据学习群: 740041381就可以找到组织学习 欢迎进阶中和进想深入大数据的小伙伴加入
为了解决上述遇到的各类问题,同时参考了业界其他公司的大数据解决方案,我们设计并实现了大数据开发平台(Data Platform,简称 DP),通过可视化的交互界面,解决离线大数据计算相关的各种环境和工具。
本文将介绍 DP 的系统设计以及在有赞的落地情况,内容包括:
-
DP 的系统设计,包括架构设计,以及重点介绍了调度模块的设计
-
目前在有赞的落地现状
-
总结和展望
大数据开发平台的设计
架构设计
图1 DP系统架构图
大数据开发平台包括调度模块(基于开源 airflow 二次开发)、基础组件(包括公共的数据同步模块/权限管理等)、服务层(作业生命周期管理/资源管理/测试任务分发/Slave管理等)和监控(机器资源/日志/基于预测的监控)。这些模块具体功能和职责为:
任务调度模块:支持基于任务优先级的多队列、分布式调