我有2个核心在我的流浪开发机器,并希望运行2流应用程序。
如果:
它们都使用两个可用的内核(我没有指定“spark.cores.max”)
他们有15秒的流间隔
5秒就足够进行计算了
Mesos的预期行为是否会在两个应用程序之间改变这两个可用的核心?我希望出现这种行为,因为“mesos在执行作业之前锁定资源”,而在spark流中,一个作业是在批处理间隔内执行的。
否则,如果资源在应用程序的生命周期内被锁定(在spark流中是永远的),那么使用mesos而不是独立的集群管理器有什么好处呢?
我有2个核心在我的流浪开发机器,并希望运行2流应用程序。
如果:
它们都使用两个可用的内核(我没有指定“spark.cores.max”)
他们有15秒的流间隔
5秒就足够进行计算了
Mesos的预期行为是否会在两个应用程序之间改变这两个可用的核心?我希望出现这种行为,因为“mesos在执行作业之前锁定资源”,而在spark流中,一个作业是在批处理间隔内执行的。
否则,如果资源在应用程序的生命周期内被锁定(在spark流中是永远的),那么使用mesos而不是独立的集群管理器有什么好处呢?
1条答案
按热度按时间9nvpjoqh1#
spark流锁定每个流
Reader
到一个核心,另外,在剩下的处理过程中,至少还需要一个其他核心。所以你不能在一台双核机器上同时运行两个作业。mesos在集群中为您提供了更好的资源利用率。单机版更静态。不过,对于固定数量的长时间运行的流,只要您有足够的资源,并且使用建议来限制每个作业可以获取的允许资源(默认值是获取所有内容)。
如果你真的只是在一台机器上运行,使用
local[*]
以避免主守护进程和从守护进程等的开销。