gpr*_*era 15 executor job-scheduling apache-spark
假设我在Spark Streaming应用程序中有2个或更多执行程序.
我将批处理时间设置为10秒,因此每隔10秒就会启动一个作业,从HDFS读取输入.
如果每个作业持续时间超过10秒,则启动的新作业将分配给免费执行者吗?
即使前一个没完成?
我知道这似乎是一个明显的答案,但我在网站或与Spark Streaming相关的论文中没有找到任何关于作业安排的信息.
如果你知道所有这些事情都被解释的链接,我真的很感激看到它们.
谢谢.
Tat*_*Das 27
实际上,在Spark Streaming的当前实现中并且在默认配置下,只有作业在任何时间点都是活动的(即在执行中).因此,如果一个批处理的处理时间超过10秒,那么下一批处理的作业将保持排队.
这可以通过实验Spark属性"spark.streaming.concurrentJobs"进行更改,默认情况下设置为1.它目前尚未记录(可能我应该添加它).
将其设置为1的原因是并发作业可能潜在地导致奇怪的资源共享,并且这使得难以调试系统中是否有足够的资源来足够快地处理所摄取的数据.只有一次运行一个作业,很容易看出,如果批处理时间<批处理间隔,那么系统将是稳定的.当然,这可能不是在某些条件下最有效地利用资源.我们绝对希望将来能够改进这一点.
在这个聚会幻灯片中有一些关于Spark Streaming内部的材料(对不起,关于无耻的自我广告:)).这可能对你有用.
| 归档时间: |
|
| 查看次数: |
6923 次 |
| 最近记录: |