大数据开发平台(Data Platform)在有赞的最佳实践

前言

随着公司规模的增长,对大数据的离线应用开发的需求越来越多,这些需求包括但不限于离线数据同步(MySQL/Hive/Hbase/Elastic Search 等之间的离线同步)、离线计算(Hive/MapReduce/Spark 等)、定时调度、运行结果的查询以及失败场景的报警等等。

在统一的大数据开发平台产生之前,面临一系列的问题:

  • 多个开发和调度入口,不同的业务部门之间的项目或组件很难复用,同时带来繁重的运维成本

  • Hadoop 的环境对业务团队的同事来讲不友好(除了要熟悉业务以外还需要对底层框架有比较深入的了解)

  • 重复的开发工作(例如导表、调度等本来可以复用的模块,却需要在多个项目中重复实现)

  • 频繁的跨部门需求沟通和讨论

为了解决上述遇到的各类问题,同时参考了业界其他公司的大数据解决方案,我们设计并实现了大数据开发平台(Data Platform,简称 DP),通过可视化的交互界面,解决离线大数据计算相关的各种环境和工具。

本文将介绍 DP 的系统设计以及在有赞的落地情况,内容包括:

  • DP 的系统设计,包括架构设计,以及重点介绍了调度模块的设计

  • 目前在有赞的落地现状

  • 总结和展望

大数据开发平台的设计

架构设计

大数据开发平台(Data Platform)在有赞的最佳实践_第1张图片

 

图1 DP系统架构图

大数据开发平台包括调度模块(基于开源 airflow 二次开发)、基础组件(包括公共的数据同步模块/权限管理等)、服务层(作业生命周期管理/资源管理/测试任务分发/Slave管理等)和监控(机器资源/日志/基于预测的监控)。这些模块具体功能和职责为:

任务调度模块:支持基于任务优先级的多队列、分布式调度。在开源的 airflow 基础上进行了二次开发,主要新增功能包括: 

  • 增加多种任务类型(datax/datay/导出邮件/导出es/Spark等)

  • 根据任务的上下游关系以及重要程度,计算任务的全局优先级,根据全局优先级调度(优先级高的优先执行,低的则进入队列等待)

  • 跨 Dag 的任务依赖关系展示(基于全局 Dag,通过任务的读写Hive表信息建立跨 Dag

你可能感兴趣的:(大数据,spark,sqoop,hadoop,flink)