Spark运行时程序调度

一,Spark运行时程序调度

       1,Spark应用程序会在一个物理节点上有驱动程序(Driver)

       2,驱动程序(Driver)会分发每个tasks到Worker节点

       3,Worker节点就会返回result到Dirver节点

二,Spark程序运行流程

      1,分布式文件系统(File system)--加载数据集(RDD)

      2,transformations延迟执行--针对RDD的操作

      3,Action触发执行

三,Spark为何要做缓存

1,lines = sc.textFile(“hdfs://...”)
   加载进来成为RDD
2,errors = lines.filter(_.startsWith(“ERROR”))
   Transformation转换
3,errors.persist()
   缓存RDD
4,Mysql_errors = errors.filter(_.contain(“MySQL”)).count
   Action执行
5,http_errors = errors.filter(_.contain(“Http”)).count
  Action执行

由上面的代码可以看出

1和2是Transformation操作,

4是Action操作就会触发Job,

如果不做3的缓存那一步,5就会找不到errors这个RDD

猜你喜欢

转载自blog.csdn.net/afafawfaf/article/details/81038386