gpt4 book ai didi

python - Spark可调参数特别是执行程序内存

转载 作者:行者123 更新时间:2023-12-02 21:19:21 24 4
gpt4 key购买 nike

time ../bin/spark-submit --master yarn --deploy-mode cluster --driver-memory 2g --executor-memory 3G --num-executors 100 /var/tmp/learning/Movie-Similarities-1m-hdfs.py 260
拍摄:6分5秒9393秒
time ../bin/spark-submit --master yarn --deploy-mode cluster --driver-memory 2g --executor-memory 2G --num-executors 100 /var/tmp/learning/Movie-Similarities-1m-hdfs.py 260
耗时:5分46.234秒
time ../bin/spark-submit --master yarn --deploy-mode cluster --driver-memory 3g --executor-memory 4G --num-executors 100 /var/tmp/learning/Movie-Similarities-1m-hdfs.py 260​
耗时:9分35.313秒

我知道我(故意)对num-executors进行了超额认购,这仅仅是为了充分利用集群。

对这些结果有何看法?

最佳答案

Any observations on these results?



与更少的执行程序(具有更多的内存)相比,使用更多的执行程序(具有更少的内存)可以更快地运行代码。通常,存在最佳平衡,这取决于工作流程和集群的硬件。真正找到最佳点的唯一方法是反复试验。

就是说,我通常发现执行者更少,拥有更多资源通常能表现更好。您尚未尝试控制的一件事是执行程序将使用的CPU内核数。为了启动执行程序,需要有足够的可用内存和足够的CPU内核。如果您的两个测试都受内存限制(例如,资源管理器在耗尽内核之前先耗尽内存),则2G执行程序测试将使用的CPU内核数量是4G测试的两倍。如果两个测试均受CPU内核限制,则4G测试将使用2G测试内存的两倍。

长话短说,值得考虑每个执行者获得的核心数量。我创建了一个 spreadsheet,它可以帮助您管理这些折衷。

关于python - Spark可调参数特别是执行程序内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37862385/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com