SparkContext.setCheckpointDir()

class SparkContext extends Logging with ExecutorAllocationClient

Main entry point for Spark functionality.

spark功能函数的主入口。

def parallelize[T](seq: Seq[T], numSlices: Int = defaultParallelism)(implicit arg0: ClassTag[T]): RDD[T]

Distribute a local Scala collection to form an RDD.

将一个本地Scala collection 格式化为一个RDD。

Note

Parallelize acts lazily. If seq is a mutable collection and is altered after the call to parallelize and before the first action on the RDD, the resultant RDD will reflect the modified collection. Pass a copy of the argument to avoid this.

注意

Parallelize是懒动作函数.如果参数seq是一个易变的collection,并且在调用parallelize之后但又在一个对RDD的action之前的期间会被修改,那么所得的RDD将会反应出被修改的collection,导致结果可能会不可预料。所以,向本函数的参数seq传递一个副本。

checkpoint(self)

Mark this RDD for checkpointing. It will be saved to a file inside the checkpoint directory set with SparkContext.setCheckpointDir() and all references to its parent RDDs will be removed. This function must be called before any job has been executed on this RDD. It is strongly recommended that this RDD is persisted in memory, otherwise saving it on a file will require recomputation.

checkpoint(self)

标记当前RDD的校验点。它会被保存为在由SparkContext.setCheckpointDir()方法设置的checkpoint目录下的文件集中的一个文件。简而言之就是当前RDD的校验点被保存为了一个文件,而这个文件在一个目录下,这个目录下有不少的这样的文件,这个目录是由SparkContext.setCheckpointDir()方法设置的。并且所有从父RDD中引用的文件都将被删除。这个函数必须在所有的job前被调用,运行在这个RDD上。它被强烈的建议保存在内存中,否则,也就是从内存转出存入文件,则需要重新计算它。

scala:

def setCheckpointDir(directory: String): Unit

Set the directory under which RDDs are going to be checkpointed. The directory must be a HDFS path if running on a cluster.

设置一个目录,用来让RDD们可以在其下被checkpoint。如果是跑在一个集群上,这个目录必须是一个HDFS路径。

时间: 2024-12-10 13:10:52

SparkContext.setCheckpointDir()的相关文章

Checkpoint

应用的场景 1)DAG中Lineage过长,如果要重新计算的,则开销会很大(如在PageRank中). 2)在Shuffle Dependency上采用Lineage的话,由于子RDD分区中的一个分区可能依赖于父RDD的中所有分区,所以需要对父RDD中的每个区进行计算,因为在子RDD中有可能其它分区也依赖于父RDD中的多个分区,这样就会造成很大的冗余计算开销. 传统方式 在RDD计算中,通过检查点机制进行容错,传统做检查点有两种方式: 1)通过冗余数据.在RDD中的doCheckPoint方法相

spark的调优

一.持久化 1.概念 一个RDD,执行多次操作,每次操作都需要计算得到这个RDD, 持久化就是第一次计算的时候,把这个执行多次的RDD持久化到内存或磁盘,这个RDD就只计算一次,以后的多次操作都只需要从内存或磁盘读取这个RDD就可以了 那么我们就不需要多次计算同一个RDD,从而在很多场景下,可以大幅度提升我们spark应用程序的性能 官方文档说,合理使用RDD持久化机制,甚至可以提升spark应用程序的性能,10倍 2.实现持久化的方法 RDD.cache() cache()的底层就是调用了pe

揭秘Spark应用性能调优

引言:在多台机器上分布数据以及处理数据是Spark的核心能力,即我们所说的大规模的数据集处理.为了充分利用Spark特性,应该考虑一些调优技术.本文每一小节都是关于调优技术的,并给出了如何实现调优的必要步骤.本文选自<Spark GraphX实战>. 1 用缓存和持久化来加速 Spark 我们知道Spark 可以通过 RDD 实现计算链的原理 :转换函数包含在 RDD 链中,但仅在调用 action 函数后才会触发实际的求值过程,执行分布式运算,返回运算结果.要是在 同一 RDD 上重复调用

Spark Shuffle 详解(1)

版本:1.6.2 不管是hadoop中map/reduce还是spark中各种算子,shuffle过程都是其中核心过程,shuffle的设计是否高效,基本确定了整个计算过程是否高效. 设计难点在于shuffle过程涉及到大数据的IO操作(包括本地临时文件IO和网络IO),以及可能存在的cpu密集型排序计算操作. 在spark1.6.2版本,spark针对大型数据有三种shuffle 机制,即"sort-based shuffle","hash-based shuffle&qu

spark 笔记 6: RDD

了解RDD之前,必读UCB的论文,个人认为这是最好的资料,没有之一. http://www.cs.berkeley.edu/~matei/papers/2012/nsdi_spark.pdf A Resilient Distributed Dataset (RDD), the basic abstraction in Spark. Represents an immutable,* partitioned collection of elements that can be operated o

Spark MLlib LDA 源代码解析

1.Spark MLlib LDA源代码解析 http://blog.csdn.net/sunbow0 Spark MLlib LDA 应该算是比較难理解的,当中涉及到大量的概率与统计的相关知识,并且还涉及到了Spark GraphX图计算方面的知识.要想明确当中的原理得要下一番功夫. LDA源代码解析前的基础知识: 1)LDA主题模型的理论知识 參照:LDA数学八卦 2)SparkGraphX 基础知识 http://blog.csdn.net/sunbow0/article/details/

Spark CheckPoint彻底解密(41)

一.Checkpoint到底是什么? 1, Spark在生产环境下经常会面临Tranformations的RDD非常多(例如一个Job中包含1万个RDD)或者具体Tranformation产生的RDD本身计算特别复杂和耗时(例如计算时常超过1个小时),此时我们必须考虑对计算结果数据的持久化: 2, Spark是擅长多步骤迭代,同时擅长基于Job的复用,这个时候如果能够对曾经计算的过程产生的数据进行复用,就可以极大的提升效率: 3, 如果采用persist把数据放在内存中的话,虽然是最快速的但是也

大数据计算平台Spark内核全面解读

1.Spark介绍 Spark是起源于美国加州大学伯克利分校AMPLab的大数据计算平台,在2010年开源,目前是Apache软件基金会的顶级项目.随着Spark在大数据计算领域的暂露头角,越来越多的企业开始关注和使用.2014年11月,Spark在Daytona Gray Sort 100TB Benchmark竞赛中打破了由Hadoop MapReduce保持的排序记录.Spark利用1/10的节点数,把100TB数据的排序时间从72分钟提高到了23分钟. Spark在架构上包括内核部分和4

[pySpark][笔记]spark tutorial from spark official site在ipython notebook 下学习pySpark

+ Spark Tutorial: Learning Apache Spark This tutorial will teach you how to use Apache Spark, a framework for large-scale data processing, within a notebook. Many traditional frameworks were designed to be run on a single computer. However, many data