2016-03-03 4 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

Спасибо и Tobi. Мы действительно учитываем использование подчиненного и общего использования ресурсов кластера. Но часто мы замечаем, что, хотя какая-то работа была активной, долгое время не получалось ресурсов, так как все ресурсы использовались другими работами. В этом случае мы хотим, чтобы все те активные структуры, которым не были выделены какие-либо ресурсы вообще. Простым потоком было 3 искровых разряда и 2 раба. 2 рабочих места заняли все ресурсы этих двух подчиненных, а 3-я работа не получала никаких предложений в течение длительного времени, также загрузка и использование процессора как ведомого устройства были низкими, поэтому никаких указаний там –

+0

Хммм, я сомневаюсь, что это правильный способ сделать это , Вы должны убедиться, что вы ограничены ресурсами исполнителя Spark (см. Http://spark.apache.org/docs/latest/running-on-mesos.html#configuration). В противном случае он будет напрямую принимать все доступные ресурсы ... Взгляните на документы API Mesos, есть конечные точки, которые должны предоставить вам информацию. Но сначала я исправлю поведение Spark. – Tobi

+0

Чтобы добавить: то, что вы на самом деле видите, если вы делаете «верх» на подчиненном устройстве, не обязательно должно быть тем, что вы видите в «used_resources» подчиненного. IMHO Spark захватывает всю имеющуюся память и ядра, что не означает, что использование ОС на 100%. Тем не менее, то, что считается с точки зрения Мезоса, - это ресурсы, взятые задачами Spark ... – Tobi