Spark运行架构

  • driver和executor概念

1. 作为两大核心组件,driver是驱动器节点,执行spark的main方法,既启动程序。另外在过程中还能在executor之间调度任务task,跟踪executor的执行情况,在ui页面查看运行情况。

2. executor简单来说就是1)执行任务,并将任务结果返回给driver,2)可以通过自身块block manager为用户程序要求缓存的RDD提供内存存储,RDD是直接缓存在executor进程内的,这样提高运算效率。

细化来说就是集群中工作节点worker的JVM进程,运行task(注,任务是相互独立的),生命周期是spark启动而启动,结束而结束。

3. 常见的生产环境问题:executor节点如果发生故障,spark不会停止,会调度其他的executor来继续运行。如executorlost错误。

4.ApplicationMaster(AM)产生的原因: 

driver和executor负责计算,而资源调用需要另外专业框架(如yarn)来管理,当向yarn集群提交应用程序时,提交的程序应该包含AM,用于向资源调度器申请执行任务task的资源容器containter,把这些资源用来运行自己的程序任务,监控任务的执行,跟踪任务的状态,结果等问题。

作用就是使得计算和资源两大模块解耦,充当中间者的角色。

  • executor和core

executor:集群中工作节点worker的JVM进程,作用是用于计算;

spark-submit --master yarn --deploy-mode cluster --num-executors=23 --conf spark.executor.cores=2 --conf spark.executor.memory=6g

提交任务时,设置executors  cores  memory
资源就是指executors  cores  memory

  • 运行流程

分为两大块,既资源和计算,当申请好资源,把计算交给资源即可。

 

 

  • client和cluster

spark和yarn的相互结合使用,会有两种部署方式,区别在于driver程序运行的节点,运行在集群里面则为cluster,运行在集群之外则client;此处不深究,后期补充

 

该章节后期深入学习再补充!!!

 

 

 


版权声明:本文为Icedeny原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>