2017-02-13 96 views
0

我有一個具有3個代理節點的DCOS集羣;我很少有像DCOS上運行火花的服務。DCOS集羣縮放

  1. 如果我擴大我的DCOS集羣,做我需要擴展我的火花以及 (因爲如果我添加了一個4節點DCOS集羣,當我運行的火花 工作,主機可分配資源火花作業在 第四個節點上運行,火花沒有安裝,因此會失敗)?

在我的觀察,我發現,作業提交到Mesos主看到任何節點。

  1. 有沒有一種方法可以指定Spark作業不在某些節點上運行?
+0

至於downvote沒有解釋供給,我upvoting回零。 – ImDarrenG

回答

1
  1. 缺省情況下,這樣你纔會有規模的火花。在這個範圍內,我指的是添加更多的執行者。不需要執行任何額外的軟件包安裝來支持這一點。

動態分配可能會有幫助,但我從來沒有使用過它:

http://spark.apache.org/docs/latest/running-on-mesos.html#dynamic-resource-allocation-with-mesos

http://spark.apache.org/docs/latest/job-scheduling.html#dynamic-resource-allocation

  • 您可以控制工作在馬拉松跑,但據我所知不是Spark,通過DCOS。我認爲你將能夠在底層Mesos配置中實現它,但不推薦。您可以在一個集羣DCOS內創建多個星火「集羣」,並選擇其中的火花實例提交:
  • 要安裝DC/OS星火包裝的多發的情況下,每個 service.name設置一個唯一名稱(例如:「火花開發」)在您的JSON 配置文件,在安裝過程中:

    { 
        "service": { 
        "name": "spark-dev" 
        } 
    } 
    

    從DC/OS星火CLI使用特定星火實例:

    $ dcos config set spark.app_id <service.name>

    https://docs.mesosphere.com/1.8/usage/service-guides/spark/install/

    +0

    在1上,我期望DCOS能夠自動理解Spark的安裝位置並相應地分配資源。否則,如果我有500個節點的DCOS羣集,我可能不得不在每個節點都安裝Spark,這是不好的。你認爲在這種情況下服務發現會有所幫助嗎? – learninghuman

    +0

    如果您使用DCOS,則不需要在每個節點上手動安裝Spark,而是使用DCOS CLI安裝Spark'包',該DCOS CLI負責手動提升。道歉,如果我誤導你。 Spark發行版由Docker鏡像處理。至少在默認的DCOS安​​裝上它有。 – ImDarrenG

    +0

    如果我在DC/OS上安裝Spark軟件包,我已經看到它根據所需實例的數量安裝在集羣中的節點上。 Spark不會安裝在所有節點上,也就是說,如果羣集中有100個節點,並且如果我只安裝5個實例的火花,那麼它將只安裝在最多5臺機器上。現在的問題是,當Spark作業被提交時,Mesos會將資源分配給Spark未安裝的節點。因此它失敗了。我已經看到了這種情況,我希望DC/OS只在安裝了Spark的節點上分配資源。思考? – learninghuman