学习过程中,看过很多讲作业提交和任务调度的原理,包括中英文版本,知道个大概,但有些细的东西总感觉不清晰,
比如drvier程序具体是什么?
一个application有多个job,每个action动作会触发一个job,为什么?
一个job内有多个stage,如何划分?stage有不同类型么?
一个stage内的task数量如何确定?
task具体是什么?
什么是shuffle map任务?shuffle操作具体怎么实现的?
什么是result map任务?
数据集存储中内存中,具体哪些数据在内存中,哪些不在内存中?
带着如上诸多疑问,尝试着去阅读spark的源码。接触scala不久,其语法感觉还是有点不好理解,很多语法细节不明了,忽略之,直接看核心逻辑。1天下来,虽然只看了一小部分,但明显的有豁然开朗的感觉,一下子明白了很多原理,明白了很多原来如此。现将了解到了记录下来,加深记忆,同时便于以后复习,或者纠正。
提交
spark-submit命令其实是一个shell脚本,它的作用主要包括加载和设置环境变量,启动