Spark调度架构原理详解-创新互联

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

创新互联专业为企业提供夏邑网站建设、夏邑做网站、夏邑网站设计、夏邑网站制作等企业网站建设、网页设计与制作、夏邑企业网站模板建站服务,10余年夏邑做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

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<Integer> list = Arrays.asList(1,3,4,5,6,7,8);
		//通过本地并行化集合创建RDD
		JavaRDD <Integer> listRDD = sc.parallelize(list);
		//求和
		Integer sum = listRDD.reduce(new Function2<Integer,Integer,Integer,Integer>(){
			@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调度架构原理详解-创新互联
文章分享:https://www.cdcxhl.com/article32/dshhpc.html

成都网站建设公司_创新互联,为您提供网站排名虚拟主机网站设计公司企业网站制作网站建设搜索引擎优化

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

微信小程序开发