-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
关于第三章的有些疑问 #31
Comments
@about17ka stage2中的两个lineage也是并发执行的,一共生成4个tasks,每个task执行一条黑色的线 stage1和stage2都是stage0的parent stage,stage0等待stage1和stage2都完成任务后,才能执行,之前stage0状态一直是pending。激发很容易,就是一个栈,stage0在栈底,上面是stage0和stage1 |
@JerryLead |
“在资源足够的情况下,stage1与stage2中的所有task,只要没有依赖关系,都可以并发执行”。正确。 “这种并发执行是否需要我们编写并行的scala程序才能实现?还是我们只需要写顺序的书写程序,而spark会调度程序并发的执行?”, 我们写的Scala程序只specify RDD之间的关系(也就是logic plan),Spark负责将logic plan转换成上面的physical plan,然后并发执行task,我们只能控制task的个数(也就是partition个数),其他并发由框架完成。 |
非常感谢您的回答 |
你好,在第三章中第三页的图中有一幅插图我不太理解。
图中stage1和stage2的任务是并发执行的吗?之前参考了http://dongxicheng.org/framework-on-yarn/apache-spark-multi-threads-model/ 这篇博客,得出多作业在spark中是可以并发执行的,然而图中stage1与stage2似乎也是并发关系,此外stage2中的两个lineage也是并发执行的吗?如果是,是不是表示在一个stage中的不同task也可以并发的执行?
此外,如果多作业在spark中能够并发执行,那么前后的数据依赖关系怎么处理?(举个例子,现在的资源够图中3个stage同时开始运算,然而stage0的计算需要stage1和stage2的计算结果,那么stage0是否是先判断自己做计算所需的rdd不足,然后再等待stage1和stage2完成任务?而且stage0是怎么被激发的?是在stage1结束之后被激发的吗?)
初学spark,很多不理解,希望能解惑,非常感谢
The text was updated successfully, but these errors were encountered: