【发布时间】:2018-03-29 15:22:10
【问题描述】:
我有一个带有 6 个核心的单个工人的火花设置。现在我向工人广播一个对象 x。 我有三个问题-
对于 map reduce 作业,我的 obj x 将生成 6 个副本,还是 x 的单个副本将由所有内核共享?
x 的生命周期是什么,即;它什么时候会被摧毁。我问是因为这个对象 x 占用了大量的内存。
如果我从文件中读取该对象,是否有其他方法可以在所有 6 个内核之间共享该对象。
【问题讨论】:
-
如果它是一个独立的设置并且你有一台机器..不需要使用广播变量。广播变量通常用于向多个节点发送消息。
-
是的,我明白了。但是,我怎样才能节省内存,因为所有进程都会拥有同一个对象的副本,这会破坏内存。既然是只读对象,有什么办法可以节省内存吗?
标签: apache-spark hadoop mapreduce distributed-computing