我正在尝试使用1个主实例和3个私有AWS m3.xlarge实例(每个实例具有4个处理器,15GB RAM)来设置DC / OS Spark-Kafka-Cassandra集群。
我对我几天前所做的一些奇怪行为有疑问。
在每个私有节点上,我都保留了固定资源(我说的是CPU使用情况,内存不是问题)
现在,我想运行2个流式传输作业,以便它们在群集的每个节点上运行。这需要我在 dcos spark run 命令中设置执行器的数量是3(尽管我在集群中有3个节点),以及那个CPU核心数是3(不可能设置) 1或2,因为据我所知,每个执行程序的最小CPU是1)。当然,对于每个流作业,集群中的1个CPU被驱动程序占用。
我看到的第一个奇怪的情况是,Mesos在2个节点上启动2个执行器而不是每个运行3个执行器,其中一个有2个CPU,而另一个有1个CPU。第三个节点上没有启动,即使有足够的资源。如何强制Mesos在集群上运行3个执行程序?
此外,当我运行带有3个CPU的1个管道时,我看到这些CPU被阻止,并且不能被其他流管道重用,即使它们没有做任何工作负载。为什么Mesos无法在应用程序之间转移可用资源?这不是使用Mesos的主要好处吗?或者可能只是没有足够的资源可以转移?
EDITED
另外一个问题是我可以为每个执行程序分配少于一个CPU吗?
最诚挚的问候,
斯尔詹