2016-03-03 57 views
0

其中HTTP端点将帮助我找到当前资源利用率的所有活动框架?查找活动框架当前资源使用情况

我们需要这些信息是因为我们想要动态缩放Mesos集群,我们的算法需要关于每个活动框架正在使用的资源的信息。

回答

1

我认为专注于框架并不是真的你想要的。什么你以后可能是Mesos从利用率,可以通过调用

http://{mesos-master}:5050/master/state-summary 

在JSON的答案被要求,你会发现一个slaves属性包含从对象的数组:

{ 
    "hostname": "192.168.0.3", 
    "cluster": "mesos-hw-cluster", 
    "slaves": [{ 
     "id": "bd9c29d7-8530-4c5b-8c50-5d2f60dffbf6-S2", 
     "pid": "slave(1)@192.168.0.1:5051", 
     "hostname": "192.168.0.1", 
     "registered_time": 1456826950.99075, 
     "resources": { 
      "cpus": 12.0, 
      "disk": 1840852.0, 
      "mem": 63304.0, 
      "ports": "[31000-32000]" 
     }, 
     "used_resources": { 
      "cpus": 5.75, 
      "disk": 0.0, 
      "mem": 14376.0, 
      "ports": "[31000-31000, 31109-31109, 31267-31267, 31699-31699, 31717-31717, 31907-31907, 31979-31980]" 
     }, 
     "offered_resources": { 
      "cpus": 0.0, 
      "disk": 0.0, 
      "mem": 0.0 
     }, 
     "reserved_resources": {}, 
     "unreserved_resources": { 
      "cpus": 12.0, 
      "disk": 1840852.0, 
      "mem": 63304.0, 
      "ports": "[31000-32000]" 
     }, 
     "attributes": {}, 
     "active": true, 
     "version": "0.27.1", 
     "TASK_STAGING": 0, 
     "TASK_STARTING": 0, 
     "TASK_RUNNING": 7, 
     "TASK_FINISHED": 18, 
     "TASK_KILLED": 27, 
     "TASK_FAILED": 3, 
     "TASK_LOST": 0, 
     "TASK_ERROR": 0, 
     "framework_ids": ["bd9c29d7-8530-4c5b-8c50-5d2f60dffbf6-0000", "bd9c29d7-8530-4c5b-8c50-5d2f60dffbf6-0002"] 
    }, 
    ... 
} 

您可以遍历所有从属对象,并通过总结resources来计算总体资源使用情况,然后减去used_resources的摘要。

+0

感谢ü托比。我们确实考虑了奴隶利用率和整体集群资源利用率。但我们经常观察到,即使有些工作活跃,但由于所有资源都被其他工作所利用,长时间没有获得任何资源。在这种情况下,我们希望所有那些根本没有分配任何资源的活动框架。简单的流程是3个火花和2个奴隶。 2个工作拿走了那些2个奴隶的所有资源,第三个工作长时间没有收到任何提议,同时负载和CPU的利用率都很低,所以没有迹象 –

+0

嗯,我怀疑这是正确的方法来实现这个。您应该确保限制Spark执行程序的资源(请参阅http://spark.apache.org/docs/latest/running-on-mesos.html#configuration)。否则,它将直接获取所有可用的资源......查看Mesos API文档,其中有一些端点应该为您提供信息。但首先我会修复Spark行为。 – Tobi

+0

若要添加:如果您在从属设备上执行“top”,您实际看到的内容不一定是您在slave的used_resources中看到的内容。恕我直言,Spark吸引了所有可用的内存和内核,并非绝对意味着操作系统利用率为100%。尽管如此,从Mesos角度来看,Spark任务所占用的资源...... – Tobi