2014-10-16 144 views
1

我有一個3節點集羣。運行Hadoop 2.4.1和Spark 1.1.0(編譯爲在Hadoop上運行的版本)。當我在紗線客戶端模式下運行我的應用程序(讀取和寫入到HDFS的Spark SQL查詢的結果)時,它完美運行,但是當我在yarn-cluster中運行時,我注意到只有服務器具有執行程序。僅在紗線集羣模式下的服務器上運行的Spark任務

我看到

http://<server>:8088/cluster 

點擊應用程序就可以看到任務的詳細信息,執行時間等,並打開星火應用主跟蹤網址:

http://<server>:8088/proxy/application_id/ 

在這個網址我請注意,在EXECUTORS選項卡中,我只有namenode的執行者

這就是我如何運行我的應用程序

$ bin/spark-submit --class "categoriasFacturas" --master yarn-cluster --num-executors 3 --driver-memory 512m --executor-memory 512m target/scala-2.10/merge-categoria_2.10-1.0.jar 

spark和hadoop中的從站文件列出了相同的3個節點,服務器和其他2臺機器。 HDFS看起來很好配置在

http://<server>:50070/dfshealth.html 

我看到DFS容量是3臺機器的組合大小。活節點列出了3臺機器。

如何確保應用程序的工作負載在整個羣集節點之間分配?

P.S:發佈所有配置文件會混淆問題,所以請。如果您需要更多詳細信息,請詢問我將發表評論。

回答

2

衝突位於yarn-site.xml,它在主節點上配置並在整個羣集中複製。它看起來像這樣:

<property> 
    <name>yarn.resourcemanager.resource-tracker.address</name> 
    <value>localhost:8025</value> 
</property> 
<property> 
    <name>yarn.resourcemanager.scheduler.address</name> 
    <value>localhost:8030</value> 
</property> 
<property> 
    <name>yarn.resourcemanager.address</name> 
    <value>localhost:8050</value> 
</property> 

資源管理器指向localhost而不是namenode。將其更改爲「服務器」。

<property> 
    <name>yarn.resourcemanager.resource-tracker.address</name> 
    <value>server:8025</value> 
</property> 
<property> 
    <name>yarn.resourcemanager.scheduler.address</name> 
    <value>server:8030</value> 
</property> 
<property> 
    <name>yarn.resourcemanager.address</name> 
    <value>server:8050</value> 
</property> 

現在工作負載分佈在集羣中。我現在面臨的麻煩是我看不到Spark Application Master(正在運行的應用程序的詳細信息),但我會看看我能做些什麼。

+0

我做了正確的配置,如上所述,但它仍然只運行在1節點上,你知道爲什麼嗎? – anunixercoder 2016-08-18 10:40:20

相關問題