hadoopYarn集群性能调优

gcuhipw9  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(322)


我想知道一些参数,以加快Spark作业对我的Yarn集群。
我有以下Spark/Yarn配置到位,但我不满意的执行速度。我有很多未使用的vcores和内存。
spark配置:

- spark.yarn.am.cores = 2
- spark.executor.memory = 5g
- spark.executor.cores = 8

Yarn配置:

- yarn.nodemanager.resource.memory-mb = 31744
- yarn.nodemanager.resource.cpu-vcores = 15
- yarn.scheduler.maximum-allocation-mb = 31744

从图像上看,
在节点3和5上,为什么要使用2gb中的6gb。
节点1、2、4、5、6上的内存根本没有使用
另外,我希望能够在集群中的每个节点上增加更多的容器。
非常感谢你的帮助。

zrfyljdw

zrfyljdw1#

添加这个spark conf,实现了以下技巧:

spark.executor.instances = 6

laik7k3q

laik7k3q2#

要改进Yarn上的Spark作业,可以使用以下参数:
executor.instances:它创建多个执行器(实际上是JVM)以提高性能,如drecute所说。

spark.executor.instances = 6

另外,spark是多线程兼容的。这意味着对于您定义的每个执行器,spark都可以在此执行器上同时处理多个操作。要使用:

spark.executor.cores = $int

在内存中缓存:最后,可以在内存中缓存数据以提高性能。通过使用这个,您可以期望将延迟时间划分为5倍到20倍。要使用此模式,请参阅以下参数:

spark.driver.memory
spark.executor.memory
spark.driver.memory
spark.yarn.memoryOverhead
spark.yarn.driver.memoryOverhead

以下是cloudera的教程,它解释了如何优化spark作业以及如何在内存中缓存数据:
http://blog.cloudera.com/blog/2015/03/how-to-tune-your-apache-spark-jobs-part-2/

相关问题