spark梳理
大数据组件,离线用过hadoop,实时用过spark。 Hadoop现在比较稳定了,面试主要就是问Spark。 包括我工作这么多年,都没搞清过底层到底是怎么运行的,但是有些东西 懂的人一说就通了,优化起来也会有思路。 我下面给spark梳理一下。做个基本概要,方便面试。 一、spark运行原理: 1.提交spark任务,构建spark application运行环境,启动sparkContext。 2.sparkContext向资源管理器(可以使Standalone,Mesos,Yarn)申请运行Executor资源,并启动StandaloneExecutorbackend(后台监控程序)。 注: a.每个节点可以起一个或多个Executor。 3.Executor向SparkContext申请Task。 注: a.每个Executor由若干core组成,每个Executor的每个core一次只能执行一个Task。 b.每个Task执行的结果就是生产了目标RDD的一个partition。 c.这里的core是虚拟机的core而不是机器的物理CPU核,可以理解为就是Executor的一个工作线程。 d.Task被执行并发度(并发度不等于task数量)=Executor数目*每个Executor核数(=core总个数) e.partition数目在map阶段保持不变