2016-10-18 54 views
2

這個問題可能是由Mesos和Marathon out of sync引起的,但是在GitHub上提到的解決方案對我來說不起作用。如何刪除Apache Mesos中的孤立任務?

當我發現孤立的任務:

enter image description here

我要做的就是:

  1. 重啓馬拉松

  2. 馬拉松賽並沒有同步孤立的任務,但開始新任務。

  3. 孤立任務仍佔用資源,所以我必須刪除它們。

  4. 我找下框架ef169d8a-24fc-41d1-8b0d-c67718937a48-0000所有孤立的任務,

    curl -XGET `http://c196:5050/master/frameworks 
    

    展示該框架是unregistered_frameworks

    { 
        "frameworks": [ 
         ..... 
        ], 
        "completed_frameworks": [ ], 
        "unregistered_frameworks": [ 
         "ef169d8a-24fc-41d1-8b0d-c67718937a48-0000", 
         "ef169d8a-24fc-41d1-8b0d-c67718937a48-0000", 
         "ef169d8a-24fc-41d1-8b0d-c67718937a48-0000" 
        ] 
    } 
    
  5. 嘗試通過框架ID(以便刪除框架下框架的任務會也可刪除)

    curl -XPOST http://c196:5050/master/teardown -d 'frameworkId=ef169d8a-24fc-41d1-8b0d-c67718937a48-0000' 
    

    但得到No framework found with specified ID

那麼,如何刪除孤立的任務是什麼?

回答

1

有兩個選項

  1. 與同一框架ID寄存器架構。做和解並殺死你收到的所有任務。例如,你可以做到這一點在下列方式

    • 下載代碼git clone https://github.com/janisz/mesos-cookbook.git
    • 更改目錄cd mesos-cookbook/4_understanding_frameworks
    • scheduler.go更改主你的URL
    • 如果你想模仿一些其他的框架創建/tmp/framework.json和用FrameworkInfo填寫數據:

      { 
          "id": "<mesos-framewokr-id>", 
          "user": "<framework-user>", 
          "name": "<framework-name>", 
          "failover_timeout": 3600, 
          "checkpoint": true, 
          "hostname": "<hostname>", 
          "webui_url": "<framework-web-ui>" 
      } 
      
    • 運行它的所有任務go run scheduler.go scheduler.pb.go mesos.pb.go

    • 獲取列表curl localhost:9090
    • ,捲曲刪除任務-X DELETE 「http://10.10.10.10:9090/?id=task_id
  2. 等待,直到failover_timeout所以Mesos會刪除這個任務給你。