1 场景
业务应用系统想大批量利用数据中心的计算能力跑数,回传结果。比如一个个地区的详情数据。而大数据平台通常是调度平台系统,和业务系统是两个独立的平台系统,如何建立交互方式。
业务有个性化的实验策略,需要组合业务条件达到实验效果。比如捞取不同的数据实验算法策略。
2 问题
2.1业务系统和大数据系统交互
在大数据平台部署一个服务,接收业务系统的请求,转化为内部的一个调度任务。如果业务系统并发太多,不停提交到大数据的调度平台,资源会非常紧张,动不动几十G到几百G的资源使用。
2.2 任务如何生成
所有的任务其实是一个函数,函数又由多个函数组成,只是这些函数是大数据的计算函数,名为算子。算子可以串行,也可以并行。算子如何编排?
2.3任务如何执行
任务可以是一个批任务,比如spark或者hive任务。这个任务是主动触发运行还是周期运行?
3 解决
系统简单,但实用。一个API服务,一个调度任务。
业务系统通过API服务创建任务,即mysql表里的一行数据。包括任务状态、任务配置、启动时间、结束时间等信息。
对于任务的配置,可以实用json数组+Map的组合方式串联,数组的每个节点对应一个处理算子,同时可以传参数。配置好的任务,暴露一个策略名称给外部实用,实际会调用到如下json。
[
{