2016-11-10 163 views
2

紗線集羣如果我有3級火花的應用都使用相同的紗線集羣,我應該怎麼設置計算yarn.nodemanager.resource.cpu-vcores與多火花客戶

yarn.nodemanager.resource.cpu-vcores

在每個3紗-site.xml?

(每個火花應用程序需要有它的類路徑上自己的紗線的site.xml)

這是否值,即使在客戶端紗的site.xml的關係呢?

如果確實如此:

假設集羣有16個內核。

應該將每個yarn-site.xml中的值設置爲5(總共15個爲系統進程留下1個內核)?或者我應該將每一個設置爲15?

(注:Cloudera公司表示一個核心應該留給系統進程在這裏:http://blog.cloudera.com/blog/2015/03/how-to-tune-your-apache-spark-jobs-part-2/然而,他們沒有進入使用多個客戶端對同一集羣的細節)

假設星火與紗線作爲主運行,並以集羣模式運行。

回答

1

您是否在談論每個YARN節點管理器的服務器端配置?如果是這樣,那麼通常將其配置爲比集羣中每個節點上的CPU核心數量(如果您擁有超線程的虛擬核心數量)少一點。因此,如果您有4個節點,每個節點4個核心,則可以將每個節點的3個節點專用於YARN節點管理器,並且您的羣集總共將有12個虛擬CPU。

然後,在向羣集提交Spark作業(例如參見http://spark.apache.org/docs/latest/submitting-applications.html)時請求所需的資源,YARN將嘗試完成該請求。如果無法完成,您的Spark作業(或應用程序)將排隊,否則最終會超時。

可以在YARN配置不同的資源池內存/ CPU資源的具體數量保證這樣一個游泳池,但更先進一點。

如果您提交在集羣模式下你的星火應用程序,你必須要考慮的是,星火司機將一個羣集節點上運行,而不是本地計算機(即一個提交它)。因此它至少需要1個虛擬CPU。

希望能爲您澄清一些事情。

+0

Spark使用yarn-site.xml進行客戶端配置。我有不同的應用程序提交了多個spark作業,每個應用程序都有自己的客戶端yarn-site.xml。 – jhnclvr

+1

那麼,在這種情況下,如果您使用一個應用程序請求集羣的所有資源,那麼下一個必須排隊等待第一個完成。 – PermaFrost

+0

我唯一擔心的是這個值在客戶端被忽略,並且yarn.nodemanager.resource.cpu-vcores的服務器端yarn-site.xml值是唯一重要的值。我不會有一個集羣再次測試一段時間來確認這種或那種方式,並且博客文章不清楚。 – jhnclvr