1 RDD 持久化
- 跨操作进行RDD的内存式存储;
- 持久化 RDD时,节点上的每个分区都会保存到内存中;
- 缓存技术是迭代计算和交互式查询的重要工具;
- 使用
persist()
和cache()
进行 RDD 的持久化,cache()
是perisit()
的一种; - action 第一次操作时会发生
persist()
- spark的
cache
是容错的,如果RDD的任何一个分区丢失了,都可以通过最初创建 的RDD 重新计算; persist
可以使用不同的存储级别进行持久化;
1.1 删除持久化数据
rdd.unpersist()
2 Spark累加器,广播变量
- 启动集群
- spark shell 连接到集群
2.1 数据传递
map,filter
等的高阶函数中访问的对象被串行化到各个节点。每个节点都有一份拷贝- 变量值并不会回传到 driver 程序
2.2 共享变量
- spark 通过广播变量和累加器实现共享变量
- 累加器