2017-08-25 135 views
1

在著名的字用于火花流计数例如饥饿的情况下,如下所述火花配置对象被初始化没有设置主人,我没有得到预期的输出,实际上字数不会发生。什么是在火花流

评论说:“主人需要2个核心,以防止饥饿的情况下”这就是为什么他们已经完成setMaster(“本地[2]”)。

有人可以解释为什么它需要2个核心,什么是饥饿情景?

回答

3

documentation

[...]注意,星火工人/执行是一个长期运行的任务,因此它占用分配给星火流应用的核心之一。因此,重要的是要记住,Spark Streaming应用程序需要分配足够的内核(或线程,如果在本地运行)来处理接收到的数据以及运行接收器。

换句话说,一个线程将用于运行接收器,并且至少还需要一个线程来处理接收到的数据。对于集群,分配的内核数量必须大于接收方的数量,否则系统无法处理数据。

因此,在本地运行时,至少需要2个线程,并且在使用集群时至少需要将2个内核分配给系统。


饥饿的情况是指这种类型的问题,其中一些线程不能在所有的执行,而其他取得进展。

在有些情况下饥饿众所周知两种经典的问题: