首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >星火流中的饥饿场景是什么?

星火流中的饥饿场景是什么?
EN

Stack Overflow用户
提问于 2017-08-25 03:40:15
回答 1查看 744关注 0票数 3

在著名的火花流字计数示例中,火花配置对象初始化如下:

代码语言:javascript
复制
/* 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,或者没有设置主程序,我就得不到预期的输出,而且实际上根本不进行单词计数。

评论说:

“主服务器需要两个核心来防止饥饿情况”,这就是为什么他们要执行setMaster("local2")。

有人能解释一下为什么需要两个内核吗?饥饿的情况是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-25 03:54:10

来自文档

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

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

因此,在本地运行时,至少需要2个线程,当使用集群时,至少需要为系统分配两个核心。

饥饿场景指的是这种类型的问题,其中一些线程根本无法执行,而其他线程则取得进展。

有两个经典的饥饿问题是众所周知的:

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45874103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档