【发布时间】:2014-11-29 11:45:19
【问题描述】:
谁能解释一下 Spark 上下文中细粒度转换与粗粒度转换之间的区别?我正在阅读有关 RDD (https://www.cs.berkeley.edu/~matei/papers/2012/nsdi_spark.pdf) 的论文,并不太清楚粗获得的转换如何以有效的方式提供容错。
【问题讨论】:
标签: hadoop apache-spark rdd
谁能解释一下 Spark 上下文中细粒度转换与粗粒度转换之间的区别?我正在阅读有关 RDD (https://www.cs.berkeley.edu/~matei/papers/2012/nsdi_spark.pdf) 的论文,并不太清楚粗获得的转换如何以有效的方式提供容错。
【问题讨论】:
标签: hadoop apache-spark rdd
细粒度更新是对数据库中一条记录的更新,而粗粒度通常是函数运算符(如在 spark 中使用),例如 map、reduce、flatMap、join。 Spark 的模型利用了这一点,因为一旦它保存了您的小 DAG 操作(与您正在处理的数据相比很小),只要原始数据仍然存在,它就可以使用它来重新计算。使用细粒度更新,您无法重新计算,因为保存更新的成本可能与保存数据本身一样多,基本上,如果您分别更新数十亿条记录,则必须保存信息以计算每次更新,而使用粗粒度可以节省一个更新十亿条记录的功能。显然,这是以不如细粒度模型灵活为代价的。
【讨论】: