为什么cloudera推荐他们在spark中选择执行器、内核和ram的数量

prdp8dxp  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(299)

在博客中:
http://blog.cloudera.com/blog/2015/03/how-to-tune-your-apache-spark-jobs-part-2/
我是用天真的方式说的:
给定16核,64 ram,8线程-使用15核,63 ram,6个执行器。
相反,他们推荐17个执行器、5个内核和19个ram。我看到他们有一个ram的方程,但我不知道发生了什么。
如果您只在一台机器上运行它(而不是通过hdfs),这是否仍然适用?
谢谢你的帮助

q35jwt9p

q35jwt9p1#

我认为他们在解释原因方面做得很好:(请看从幻灯片5开始的幻灯片)。例如,他们建议每个执行器不超过5个内核,因为很多内核会导致hdfs i/o吞吐量降低。
他们建议按如下方式决定ram:一旦你有了每个节点的执行者数量(在本文中,它是3),你就得到了总内存并除以执行者/节点。因此,每个节点有63 gb ram/3个执行器=21 gb(去掉一点,得到19 gb—不清楚为什么这样做)。
在为应用程序主机/开销留下一些资源时,您的想法当然是正确的!
这些选项针对集群计算进行了优化。但这是有意义的,因为spark是一个集群计算引擎。

相关问题