我现在正在使用 Spark Streaming + Kafka 来构建我的消息处理系统。但是我有一点技术问题,我将在下面描述它:
例如,我想每10 分钟做一次 wordcount ,所以,在我最早的代码中,我将 Batch Interval 设置为 10 分钟。代码如下:
val sparkConf = new SparkConf().setAppName(args(0)).setMaster(args(1))
val ssc = new StreamingContext(sparkConf, Minutes(10))
但我认为这不是一个很好的解决方案,因为 10 分钟是一个很长的时间和大量的数据,我的内存无法承受这么多数据。所以,我想将批处理间隔减少到 1 分钟,例如:
val sparkConf = new SparkConf().setAppName(args(0)).setMaster(args(1))
val ssc = new StreamingContext(sparkConf, Minutes(1))
那么问题来了:十个‘1分钟’怎么能总结出10分钟的结果呢?我认为这个词只能在驱动程序而不是工人程序中完成,我该怎么办?
我是 Spark Streaming 的新学习者。任何人都可以帮我一把吗?