Hadoop YARN群集性能调优

时间:2015-11-09 06:24:30

标签: hadoop apache-spark yarn

enter image description here

我想知道一些参数来加速我的YARN群集上的Spark作业。

我有以下Spark / YARN配置,但我对执行速度不满意。我有很多未使用的vcores和内存。

Spark配置:

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

YARN configs:

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

从图像中,

    节点3上的
  1. & 5,为什么使用6gb的2gb。
  2. 节点1,2,4,5,6上的内存未全部使用
  3. 此外,我希望能够在群集中为每个节点分配更多容器。

    非常感谢。

2 个答案:

答案 0 :(得分:1)

添加这个火花conf,做了诀窍:

spark.executor.instances = 6

enter image description here

答案 1 :(得分:0)

要在Yarn上改进Spark Jobs,您可以使用以下参数:

spark.executor.instances :它创建了几个执行器(实际上是JVM),以便改进drecute这样的执行。

spark.executor.instances = 6

spark.executor.cores:此外,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/