一、Spark Streaming
1. 什么是Spark Shuffle
Wide Dependencies
*ByKey: groupByKey,reduceByKey
关联操作:join,cogroup
窄依赖:
父RDD的每个分区的数据,仅仅只会给子RDD的一个分区。
Spark性能优化:
开发优化:
依据业务场景及数据,使用较好的RDD的方法
(1)能使用reduceByKey不要使用groupByKey
(2)适当的时候已经处理的数据RDD,进行重新分区
repartition
reduceByKey(func, numPartitions)
coalse
SCALA中的拉链编程
val rdd = sc.parallelize(List(1,2,3,4,5))
val rdd2 = sc.parallelize(List("aa", "bb", "cc", "dd", "ee"))
rdd.zip(rdd2)
rdd.zip(rdd2).collect
2. MapReduce Shuffle
Spark Stages
(1)ResultStage
Stage阶段运行Jobs输出结果
ResultTask
(2)ShuffleMapStage
Stage阶段的RDD会发生Shuffle过程,
ShuffleMapTask
每个Stage中的所有任务的逻辑处理相同(functions)
Spark Scheduler
RDD Objects -> DAGScheduler -> TaskScheduler -> Worker
时间: 2024-11-13 00:46:46