发出部分结果(指向reducer)
我是Spark和Map Reduce的初学者,由于我了解Spark聚合(ByKey)方法遵循Map Reduce模式,我希望有人帮我确认它是否正确。
- 第一个函数参数"segFunc"获取每个键的数据并且对于每个键并行运行。它就像地图中的map()减少
- 第二个函数参数"combFun"收集数据对于每个键,即使在分区之间,它也不是并行运行的系统保证了联合收割机的同步功能。它就像map reduce中的combiner()
请纠正我,非常感谢。
它遵循map/reduce模式,但您弄错了map/reduze模式。
第一阶段将并行运行,并为每个密钥创建一个记录(这些记录将保存在内存中或溢出到磁盘,具体取决于Spark中的可用资源与Hadoop中保存到磁盘的资源)
然后,下一个阶段也将(或者至少可以)按每个键并行运行。先前创建的数据将被提取并合并,因此每个密钥的数据将到达单个目的地(减少器)
提取阶段称为搅乱
Hadoop中的组合器正在执行类似reduce的行为,并在映射阶段