Spark開發-控制操作
控制操作 control operation
1、cache(): this.type
2、persist(): this.type
3、persist(newLevel: StorageLevel, allowOverride: Boolean): this.type
在spark中對RDD進行持久化操作是一項非常重要的功能,可以將RDD持久化在不同層次的儲存介質中,以便後續的操作能夠重複使用,這對iterative和interactive的應用來說會極大地提高效能,
checkpoint
checkpoint介面是將RDD持久化在HDFS上,其與persist(如果也持久化在磁碟上)的一個區別是checkpoint將會切斷之前的依賴關係,二persist介面依然保留著RDD的依賴關係,checkpoint的主要作用有如下2點
1、如果一個spark的程式會長時間駐留執行(如sparkstreaming),過長的依賴將會佔用很多資源,那麼定期地將RDD進行checkpoint操作,能夠有效地節省系統資源
2、維護過長的依賴關係還會出現一個問題,如果spark在執行過程中出現節點失敗的情況,那麼RDD進行容錯重算的成本非常高
scala> val rdd=sc.makeRDD(1 to 4,1)
rdd: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[11] at makeRDD at <console>:27
scala> val flatMap=rdd.flatMap(x=>Seq(x,x))
flatMap: org.apache.spark.rdd.RDD[Int] = MapPartitionsRDD[12] at flatMap at <console>:29
scala> sc.setCheckpointDir("temp")
17/10/09 00:31:07 WARN spark.SparkContext: Checkpoint directory must be non-local if Spark is running on a cluster: temp
scala> flatMap.checkpoint()
scala> flatMap.dependencies.head.rdd
res15: org.apache.spark.rdd.RDD[_] = ParallelCollectionRDD[11] at makeRDD at <console>:27
scala> flatMap.collect()
res16: Array[Int] = Array(1, 1, 2, 2, 3, 3, 4, 4)
scala> flatMap.dependencies.head.rdd
res17: org.apache.spark.rdd.RDD[_] = ReliableCheckpointRDD[13] at collect at <console>:32
相關文章
- Spark開發-transformations操作SparkORM
- Spark開發-Action操作Spark
- Spark操作開窗函式Spark函式
- Spark開發-Spark核心細說Spark
- Spark開發-spark環境搭建Spark
- StreamAnalytix Visual Spark Studio (二)!Spark開發史上最強大的神器,只需拖拽控制元件即可完成Spark開發,造福國內的Spark開發者!Spark控制元件
- Spark開發-SparkSql的開發SparkSQL
- Spark開發-spark執行原理和RDDSpark
- Spark開發-Local模式Spark模式
- Spark開發-Standalone模式Spark模式
- Spark面試題(七)——Spark程式開發調優Spark面試題
- Spark開發-Spark執行模式及原理一Spark模式
- 【Spark篇】---Spark中控制運算元Spark
- Spark開發-Yarn cluster模式SparkYarn模式
- Spark開發-Shuffle優化Spark優化
- Spark 系列(十四)—— Spark Streaming 基本操作Spark
- spark2.2.0 配置spark sql 操作hiveSparkSQLHive
- Spark 從零到開發(五)初識Spark SQLSparkSQL
- Spark開發-廣播變數Spark變數
- Spark Basic RDD 操作示例Spark
- IDEA開發Spark應用並提交本地Spark 2.1.0 standIdeaSpark
- Spark 效能調優--開發階段Spark
- Spark開發-RDD介面程式設計Spark程式設計
- Spark開發-WordCount詳細講解Spark
- Spark開發-HA環境的搭建Spark
- 如何用 Spark 快速開發應用?Spark
- Spark操作Hive分割槽表SparkHive
- Spark2 Dataset聚合操作Spark
- spark 基礎開發 Tips總結Spark
- 在Intellij中開發Spark--demoIntelliJSpark
- Spark開發-RDD分割槽重新劃分Spark
- Spark開發-WordCount流程詳細講解Spark
- 大資料開發-Spark-初識Spark-Graph && 快速入門大資料Spark
- Spark Streaming中的Window操作Spark
- Spark 簡單例項(基本操作)Spark單例
- Spark基礎-Scala檔案操作Spark
- Learning Spark——使用Intellij Idea開發基於Maven的Spark程式SparkIntelliJIdeaMaven
- Spark2.4.5叢集安裝與本地開發Spark