【问题标题】:Fine grained transformation vs coarse grained transformations细粒度变换与粗粒度变换
【发布时间】:2014-11-29 11:45:19
【问题描述】:

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

【问题讨论】:

    标签: hadoop apache-spark rdd


    【解决方案1】:

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

    【讨论】:

    • 感谢您的回答。它有帮助。我可以通过哪些不同的方式将 spark 制作成细粒度模型?基本上我想构建一个在单元级别而不是表级别工作的 DAG。更新单元格后,我想根据 DAG 在多个表中触发其他单元格级别更新。如果您有意见,请告诉我。
    猜你喜欢
    • 1970-01-01
    • 2016-05-23
    • 1970-01-01
    • 1970-01-01
    • 2018-04-24
    • 1970-01-01
    • 1970-01-01
    • 2012-02-20
    • 2012-09-05
    相关资源
    最近更新 更多