Spark调度架构原理详解-创新互联
1.启动spark集群,就是执行sbin/start-all.sh,启动master和多个worker节点,master主要作为集群的管理和监控,worker节点主要担任运行各个application的任务。master节点需要让worker节点汇报自身状况,比如CPU,内存多大,这个过程都是通过心跳机制来完成的

2.master收到worker的汇报信息之后,会给予worker信息
3.driver提交任务给spark集群[driver和master之间的通信是通过AKKAactor来做的,也就是说master是akkaactor异步通信模型中的一个actor模型,driver也是一样,driver异步向mater发送注册信息(registerApplication)异步注册信息]
4.master节点对application预估,7个G的内存完成任务,对任务进行分配,每一个worker节点上都分配3.5G的内存去执行任务,在master就对各个worker上的任务进行整体的监控调度
5.worker节点领到任务,开始执行,在worker节点上启动相应的executor进程来执行,每个executor中都有一个线程池的概念,里面存有多个task线程
6.executor会从线程池中取出task去计算rddpatition中的数据,transformation操作,action操作
7.worker节点向driver节点汇报计算状态
通过本地并行化集合创建RDD
public class JavaLocalSumApp{
public static void main(String[] args){
SparkConf conf = new SparkConf().setAppName("JavaLocalSumApp");
JavaSparkContext sc = new JavaSparkContext(conf);
List list = Arrays.asList(1,3,4,5,6,7,8);
//通过本地并行化集合创建RDD
JavaRDD listRDD = sc.parallelize(list);
//求和
Integer sum = listRDD.reduce(new Function2(){
@Override
public Integer call(Integer v1,Integer v2) throws Exception{
return v1+v2;
}
}
);
System.out.println(sum)
}
}
//java 中的函数式编程,需要将编译器设置成1.8
listRDD.reduce((v1,v2)=> v1+v2) 文章题目:Spark调度架构原理详解-创新互联
标题网址:http://www.jxjierui.cn/article/dshhpc.html


咨询
建站咨询
