在著名的 Spark Streaming 字数统计示例中,Spark 配置对象的初始化如下:
/* Create a local StreamingContext with two working thread and batch interval of 1 second.
The master requires 2 cores to prevent from a starvation scenario. */
val sparkConf = new SparkConf().
setMaster("local[2]").setAppName("WordCount")
在这里,如果我将主控更改local[2]
为local
或不设置主控,我不会得到预期的输出,实际上字数统计根本不会发生。
评论说:
“主人需要 2 个核心来防止饥饿情况”,这就是他们完成 setMaster("local[2]") 的原因。
有人可以解释一下为什么它需要 2 个内核以及什么是饥饿场景吗?