我正在优化Spark中的参数,并想确切了解Spark如何进行数据洗牌。
准确地说,我有一个简单的单词计数程序,并想知道spark.shuffle.file.buffer.kb如何影响运行时间。目前,当我将此参数设置得很高时(我猜测这会防止每个任务的缓冲区同时适合内存中),我只看到了减速。
有人能解释一下Spark是如何执行缩减的吗?例如,数据在RDD中被读取和分区,并且当调用“action”函数时,Spark向工作节点发送任务。如果该操作是一个缩减,Spark如何处理它,shuffle文件/缓冲区与此过程有何关系?
Spark
新手,对于句子中的“shipping”一词并不十分理解,即“因此,将M*R
文件发送到相应的Reducer可能会导致显着的开销。”这应该像copy
或move
操作还是其他什么?我之前尝试过搜索,但没有找到合适的描述。 - Bowen Peng