繁体   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