簡體   English   中英

紗線上火花的作業調度較慢

[英]slower job scheduling in spark on yarn

我有兩個映射器集群,具有以下配置,

cluster 1: hosted on aws, 3 nodes with 32g of memory/32 cores each
cluster 2: hosted on bare-metal servers, 8 nodes with 128g of memory/32 cores each

我在兩個集群上運行跟隨紗線的pyspark代碼

df=hc.sql("select * from hive_table")
df.registerTempTable("df")
df.cache().count()
for: 100times
    result=hc.sql('select xxxx from df')
    result.write.saveAsTable('some hive table', mode='append')

上面的代碼在spark中提交了100個新工作(在紗線上運行)。 在第一組中,整個操作在30分鍾內完成,但在較大的第2組上,完成相同的操作需要90分鍾。 經過檢查,我發現雖然每個作業幾乎都需要大約相同的時間(集群2中的速度稍快一些),但每個作業之間的時間比2中的要高得多。

可能的原因,

  1. 驅動程序和執行程序節點之間的延遲 - 我正在跑步
    紗線客戶模式
  2. 低驅動器內存或我在紗線上啟動火花簇的方式是錯誤的?

我該如何提交工作?

Cluster 1: /opt/mapr/spark/spark-1.6.1/bin/spark-submit --master yarn --deploy-mode client --num-executors 10 --executor-memory 10g --executor-cores 5 --driver-memory 10g --driver-cores 10 --conf spark.driver.maxResultSize="0" --conf spark.default.parallelism="100" --queue default

Cluster 2: /opt/mapr/spark/spark-1.6.1/bin/spark-submit --master yarn --deploy-mode client --num-executors 10 --executor-memory 80g --executor-cores 28 --driver-memory 25g --driver-cores 25 --conf spark.driver.maxResultSize="0" --conf spark.default.parallelism="100" --queue default

PS:只粘貼部分代碼。 代碼中還有其他模塊。 總的來說,集群2處理代碼的速度比集群1快3倍,因此我不認為問題具有“一般”速度。

我的問題更具體到工作之間的“時間”。 例如,上面的代碼運行100個spark-sql作業,每個作業在集群2中平均需要2s,在集群1中需要5s。在集群2中,每個作業之間的時間與集群1相比要高得多。

在您的偽代碼中,我沒有看到任何與驅動程序相關的操作(假設執行程序將數據保存到分布式FS)

請注意:

  1. df.cache()但似乎你沒有使用緩存的df。
  2. 您的紗線客戶端配置似乎有問題。

看起來您正在嘗試使用比可用內存更多的執行程序內存和內核。

在集群#1中,有3個節點具有32GB的RAM,您的執行代碼是: - --num-executors 10 --executor-memory 10g

在最佳情況下,您將擁有9個執行器,每個執行器具有10GB RAM。 每個節點上最多3個執行程序。 我假設你每個節點只能執行2個執行程序(因為32GB的RAM超過2GB將用於紗線,開銷等,因此剩下的不到29GB ==> 2個容器每個10GB)

==>群集#1將有6到9個執行程序

在集群#2中,有5個節點具有128GB的RAM,您的執行代碼是: - --num-executors 10 --executor-memory 80g

最好的情況是你有5個執行器和80GB的RAM。 每個執行器在一個節點上。

由於集群#1有更多的執行程序(即使它們更小),它可能會運行得更快(取決於您的應用程序)

減少集群#2中的執行程序內存和核心以及執行程序數量的增加應該可以提供更好的性能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM