2025.2.12(寒假第二十四天)

RDD 的故障恢复与容错机制
学习目标:
理解 RDD 的容错机制。
学习 RDD 的 lineage(血统)机制。
模拟 RDD 的故障恢复过程。

// 创建 SparkContext
val sc = new SparkContext("local[*]", "RDD Fault Tolerance")

// 创建一个 RDD
val data = Array(1, 2, 3, 4, 5)
val distData = sc.parallelize(data)

// 设置 checkpoint 目录
sc.setCheckpointDir("hdfs://localhost:9000/checkpoint")

// 创建一个复杂的 RDD
val squared = distData.map(x => x * x)
val filtered = squared.filter(x => x > 10)

// 保存 RDD 的状态
filtered.checkpoint()

// 模拟节点故障(手动删除某个分区的数据)
// 重新计算 RDD
val recovered = filtered

// 打印恢复后的 RDD 内容
println(recovered.collect().mkString(", ")) // 输出: 16, 25

// 停止 SparkContext
sc.stop()
实验总结:
理解 RDD 的容错机制,基于 lineage 机制的故障恢复。
学会使用 checkpoint 方法保存 RDD 的状态。
模拟故障恢复过程,验证 RDD 的容错能力。

posted @ 2025-02-13 22:07  kuku睡  阅读(27)  评论(0)    收藏  举报