2017-02-18 32 views
2

我是Spark的新手,我正在尝试了解使用单播封装的广播变量的优点。 我知道Spark还试图使用高效的广播算法来分发广播变量以降低通信成本 - 但是让我们假设这种情况只发生在长时间的活动应用程序上,因此不是开销。火花广播与Singleton封装

每个任务都会持有singelton的副本还是只有执行者本身?

我想了解它如何与单身人士合作并将其与广播进行比较。

如果这个问题重演,请让我知道,因为我没有找到答案。

回答

0

每个任务都会持有singelton的副本还是只有执行者本身?

每位工作人员都保存广播变量的单个缓存副本。所有需要访问广播变量的任务都会查询该工作人员驻留的相同副本。是的,它是每个工作人员的单个副本,但不是JVM级别的单身人员,因为它的生命周期由BroadcastManagerContextCleaner管理。

这本书在这里很好地描述了https://jaceklaskowski.gitbooks.io/mastering-apache-spark/content/spark-broadcast.html看看它在那张图中描绘得有多好。