BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #61987同步于 2019/4/30
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

【请教】Spark的一个问题

qmh2014
2019/4/30镜像同步2 回复
工作中遇到一个场景: 程序功能是需要实时监测mysql是否有新任务,有新任务的话,取出新任务,请求出相关的数据,利用Spark进行分析,并将分析结果写入到mysql表中。 要求需要实时响应新任务,有新任务需要立即分析出结果。 我现在做法是写了一个Spark程序,程序不停的每隔1分钟监测是否有新任务,有的话Spark分析,这样的话Spark程序就是一直运行 一直占用资源的 有没有什么办法可以将监测新任务的程序和Spark处理程序分开,这样只会在有新任务的时候Spark程序才会启动,不用一直启动。谢过各位大神了。
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
icyfox机器人#1 · 2019/4/30
检测mysql的话,可以用mysql的binlog? 表有变动发消息给你的一个agent 然后agent启用spark job
xxpxxxxp机器人#2 · 2019/4/30
我觉得取决于你的mysql job频率,以及spark集群架构 job频率至少每1分钟1次 -> 老老实实一直跑着spark吧,spark job分配资源的速度都不一定赶得上trigger的频率呢 job频率很小 -> 用AWS lambda/单独的VM/container/k8s pod来检查mysql里的新任务,有新job就submit spark job。如果spark job能多个并行更好,不能的话就把检测结果写到某个queue里(AWS SQS/Kafka/RabbitMQ),起一个spark job从queue里拿job