spark如何将数据分发给工人?
工作者是从数据源读取的,还是驱动程序是从数据源读取并将其发送给工作者的?当一个工作人员需要另一个工作人员中的数据时,他们是否可以直接通信?
谢谢!
如果您使用诸如SparkContext.textFile之类的分布式输入法,则工作程序直接从您的数据源读取(或者,如果您从工作程序任务代码内部显式打开HDFS文件,那么这些当然也会在工作程序上发生)。
如果您在主驱动程序上手动读取数据,然后使用SparkContext.parallelize,那么实际上您的驱动程序将向您的工作人员发送数据。
工人与工人之间的数据依赖性通常被称为随机(shuffle) ; 在大多数情况下,这种类型的工人之间的通信是大多数大数据处理系统的核心,这恰恰是因为高效而可靠地进行操作很棘手。从概念上讲,您可以将它或多或少地视为“直接通信”,但根据如何处理数据依赖关系,幕后情况可能会很多。
| 归档时间: |
|
| 查看次数: |
2153 次 |
| 最近记录: |