gpt4 book ai didi

apache-spark - Apache Spark 优化

转载 作者:行者123 更新时间:2023-11-30 09:40:21 25 4
gpt4 key购买 nike

我正在使用 Spark MLlib 和 Pyspark 来完成我的作业,并且需要证明它比传统的机器学习方法更好。我有一个正在运行逻辑回归的数据集,并且正在查找诸如准确度、精确度、召回率等指标。

在 PySpark 和普通 Python 脚本中运行代码时,我意识到普通 Python 脚本会更快地完成执行,但事实不应该是这样,因为数据集中有大量数据。我很快就深入研究,发现 Spark 仅使用 1 个工作线程运行,并且只分配了一个核心。因此,我对 Spark-defaults 进行了以下更改。配置,因为我有一个具有 8 VCPU 和 16 Gb RAM 的虚拟机。

spark.driver.memory 8g
spark.driver.cores 8
spark.executor.instances 8

现在 Spark 在数据上运行 ML 代码所花费的时间已显着减少。我还应该考虑进一步的优化吗?我在独立模式下运行 Spark,即我的主节点和工作线程位于同一节点上。

最佳答案

请记住,Spark 是针对大数据环境的,因此对于小型数据集(大小 < 1GB)来说,它可能不是最快的解决方案,但对于非常大的数据集(大小 > 几 TB)来说,它是必须的。这是由 Spark Java 开销造成的,增加了小型计算的大量复杂性,而在集群环境 (Hadoop) 中,该框架可确保即使某些节点出现故障,您也能够完成任务。对于较小的数据集,所有使用 GPU 的 ML 框架都是 Spark 的竞争对手,但毕竟 Spark 为您提供的不仅仅是 ML。

以下几篇文章可能对调整有用: https://spark.apache.org/docs/latest/tuning.html https://spark.apache.org/docs/latest/sql-performance-tuning.html

我的建议是尽可能使用 Dataframe 而不是 RDD,因为 Catalyst Optimizer 会启动并加快您的工作速度。

关于apache-spark - Apache Spark 优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59130791/

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