Spark的工作机制

Spark的执行模式

1、Local,本地执行,通过多线程来实现并行计算。
2、本地伪集群运行模式,用单机模拟集群,有多个进程。
3、Standalone,spark做资源调度,任务的调度和计算。部署繁琐。
4、Yarn, Mesos,通用的统一资源管理机制,可以在上面运行多种计算框架。
Spark主要包括 调度与任务分配、I/O模块、通信控制模块、容错模块 、 Shuffle模块。
Spark 按照 ①应用 application ②作业 job ③ stage ④ task 四个层次进行调度,采用经典的FIFO和FAIR等调度算法。

--进入hdfs用户
su - hdfs
--首先打包到目录里面,然后运行下面语句(参数可调节)
spark2-submit --master yarn --deploy-mode client --num-executors 11 --executor-memory 20G --executor-cores 3 --driver-memory 2G --conf spark.default.parallelism=500  --conf spark.yarn.executor.memoryOverhead=1000m --class data_proc.sharp_stop_cal /home/black_point_ana.jar
  • 执行流程解释
    Application的调度
    多用户需要共享集群资源时,可以依据集群管理者的配置,分配资源
    YARN:配置每个应用分配的executor数量,每个executor占用的的内存大小和CPU核数
    Job的调度
    Job的调度符合FIFO, 调度池里面是很多任务集,任务集有两个ID ,JOBID 和stageID,ID小的先执行。 JOB: FIFO
    stage: DAGScheduler

Stage的调度
Stage的DAG以最后执行的 Stage为根进行广度优先遍历,遍历到最开始执行的Stage执行。DAGScheduler中还维持了几个重要的Key-Value集 :
waitingStages中记录仍有未执行的父Stage,防止过早执行;
runningStages中保存正在执行的Stage,防止重复执行;
failedStages中保存执行失败的Stage,需要重新执行。

猜你喜欢

转载自blog.csdn.net/Alien_lily/article/details/82108692