第一阶段:Spark streaming、spark sql、kafka、spark内核原理(必须有一个大型项目经验);
第二阶段:spark运行的各种环境,各种故障的解决,性能优化(精通spark内核、运行原理);
第三阶段:流处理、机器学习为鳌头,需要首先掌握前两个阶段的内容;
跟随王家林老师的零基础讲解,注重动手实战,成为spark高数,笑傲大数据之林!
本期内容:
1 通过手动绘图的方式解密Spark内核架构
2 通过案例来验证Spark内核架构
3 Spark架构思考
一、详细剖析Spark运行机制
(1)Driver端架构
Driver部分代码包含了SparkConf+SparkContext,基本一切应用程序代码由Driver端的代码和分布在集群其他机器上的Executor代码组成(textFile flatMap map),Executor(executor是运行在worker上的进程里的对象)是由线程池并发执行和线程的覆用,线程处理task任务,task从disk和mem上读取数据。
SparkApplication的运行不依赖于ClusterManager,也就是说运行时不需要ClusterManager的参与(粗粒度分配资源即一次性分配完成)。
Driver运行程序的时候创建了SparkContext并且有main方法,SparkContext本身是程序调度器(分高低度调度器DAGScheduler和TaskScheduler)。Driver端是用来提交Spark程序的机器,这台机器一般和Spark cluster集群在相同的网络环境下,因为要保证Driver和Executor进行频繁的通信,并且Driver的机器配置基本和Worker相同,Driver的机器安装了Spark,但不属于Spark集群的范围。Application提交的时候使用spark-submit(可配置运行时的参数MEM、