网心-Angela基于spark的实时开发系统
角色
设计开发负责人
背景
sparkSQL实时开发每次都要写代码,打包,调试,发布,上线比较繁琐,耗时长。
所有的逻辑都是读取kafka,关联维表,计算,写入mysql,tidb,kudu或者clickhouse。
实时计算的代码不好管理,和血缘关系,数据治理割裂开了。
开发一个实时计算框架,可以管理实时计算任务,便于管理,便于开发,提高开发效率。
开发工具
- 后台开发语言: scala,java,sparksql
- 工具脚本语言: python
- 配置管理平台: python,flask,vue,elmentui
整体架构
功能模块
- 配置管理模块:负责实时sql任务配置,数据源配置,目标表配置,维表配置,属性配置,spark参数配置
- 监控重启模块:负责周期启动监控任务是否在运行,是否堆积,是否失败进行相关干预和告诫
- angela计算模块:负责根据api拉取sparksql配置,解析配置,生成计算任务
使用情况
运行管理25个实时计算任务,主要用于带宽,节点,状态码等的实时监控,配合grafana做监控大屏