9

谁能解释一下 Spark 上下文中细粒度转换与粗粒度转换之间的区别?我正在阅读有关 RDD 的论文(https://www.cs.berkeley.edu/~matei/papers/2012/nsdi_spark.pdf),并不太清楚粗获得的转换如何以有效的方式提供容错。

4

1 回答 1

17

细粒度更新将是对数据库中一条记录的更新,而粗粒度通常是功能运算符(如在 spark 中使用),例如 map、reduce、flatMap、join。Spark 的模型利用了这一点,因为一旦它保存了您的小 DAG 操作(与您正在处理的数据相比很小),只要原始数据仍然存在,它就可以使用它来重新计算。使用细粒度更新,您无法重新计算,因为保存更新的成本可能与保存数据本身一样多,基本上,如果您分别更新数十亿条记录,则必须保存信息以计算每次更新,而使用粗粒度可以节省一个更新十亿条记录的功能。显然,这是以不如细粒度模型灵活为代​​价的。

于 2014-10-06T19:37:32.027 回答