Spark调度架构原理详解-创新互联-成都快上网建站

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 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调度架构原理详解-创新互联
当前URL:http://kswjz.com/article/dshhpc.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流