
Spark
yanxiangtianji
这个作者很懒,什么都没留下…
展开
-
利用coalesce加速Spark迭代计算
问题:join导致partition数量膨胀 Spark把每一个RDD分割为若干个partition,每一个partition上的计算是一个独立的task。每个task在执行的时候都是独立schedule的,都需要执行一遍完整的排序、系列化、计算、反序列化工作。 这其中很大一部分工作的开销基本都是恒定的,不随partition中数据的多少而变化。所以当一个RDD的partition过多的时候,计算时会有很大的overhead。 在计算的过程中,我们经常需要把两个或更多的变量放在一起做些计算,我们通常会用到j原创 2020-10-13 07:39:02 · 431 阅读 · 0 评论 -
巧用localCheckpoint加速Spark上的迭代计算(break lineage)
Spark和迭代计算 Spark是一个基于lineage的计算框架。 它通过lineage记录了数据从加载以来的所有操作,这样一方面让spark可以轻松地实现lazy execution,另一方面当发生问题的时候,可以准确地进行数据恢复。 我们可以这样理解:Spark把一个数据X抽象为一个RDD。在这个RDD里面Spark不仅记录了X的值X.data,还通过一个DAG记录了它是怎么计算得来的X.lineage。 这种设计非常适合对于普通的数据处理任务,但是对于数据需要不断循环优化的分析任务(特别是迭代优化类原创 2020-10-09 13:00:27 · 926 阅读 · 0 评论