我们正在尝试在纱线上运行我们的火花集群。我们遇到了一些性能问题,特别是与独立模式相比。
我们有一个由 5 个节点组成的集群,每个节点都有 16GB RAM 和 8 个核心。我们在yarn-site.xml中将最小容器大小配置为3GB,最大容器大小为14GB。当将作业提交到yarn-cluster时,我们提供执行器数量= 10,执行器内存= 14 GB。根据我的理解,我们的工作应该分配4个14GB的容器。但 Spark UI 仅显示 3 个容器,每个容器 7.2GB。
我们无法确保分配给它的集装箱数量和资源。与独立模式相比,这会导致性能下降。
您能否指出如何优化纱线性能?
这是我用于提交作业的命令:
$SPARK_HOME/bin/spark-submit --class "MyApp" --master yarn-cluster --num-executors 10 --executor-memory 14g target/scala-2.10/my-application_2.10-1.0.jar
经过讨论,我更改了我的yarn-site.xml 文件以及spark-submit 命令。
这是新的yarn-site.xml代码:
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hm41</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>14336</value>
</property>
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>2560</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>13312</value>
</property>
Spark 提交的新命令是
$SPARK_HOME/bin/spark-submit --class "MyApp" --master yarn-cluster --num-executors 4 --executor-memory 10g --executor-cores 6 target/scala-2.10/my-application_2.10-1.0.jar
With this I am able to get 6 cores on each machine but the memory usage of each node is still around 5G. I have attached the screen shot of SPARKUI and htop.
您在 SparkUI 中看到的内存 (7.2GB) 是spark.storage.memoryFraction,默认情况下为 0.6。至于丢失的执行程序,您应该查看 YARN 资源管理器日志。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)