开发者学堂课程【大数据实时计算框架 Spark 快速入门: SparkPi 代码剖析4】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/100/detail/1679
SparkPi代码剖析4
内容介绍:
一、Speculation 机制
二、Taskscheduler 与 DAGscheduler
三、Job 调度流程
四、SparkPi 代码
一、Speculation 机制
spark 起同样的一个 task ,二者同时运行。
二、Taskscheduler 与 DAGscheduler
Taskscheduler 不知道每一个 stage 分别来自哪一个 job,
只把stage ,TaskSet 运行完,对于 DAGscheduler 才整体知道 job 的调度。
三、Job 调度流程
四、 SparkPi 代码
object SparkPi {
def main (args: Array [String]) {
val conf = new SparkConf().setAppName("Spark Pi")
val spark = new Sparkcontext (conf)
val slices = if (args. length > 0) args (0). toInt else 2
val n = math.min(100000L* slices,Int.MaxValue).toInt // avoid overflow
val count = spark. parallelize (1 until n, slices). map {i = >
val x = random*2-1
val y = random*2-1
if (x* x+ y y < 1) 1 else 0
}.reduce(_+_)
println ("Pi is roughly"+ 4.0* count/n)
spark. stop ()
}
}