gpt4 book ai didi

apache-spark - Spark集群中的任务是如何分布的?

转载 作者:行者123 更新时间:2023-11-30 08:32:26 26 4
gpt4 key购买 nike

所以我有一个输入,其中包含一个数据集和几个使用 scikit-learn 的 ML 算法(带有参数调整)。我已经尝试了很多关于如何尽可能有效地执行此操作的尝试,但目前我仍然没有适当的基础设施来评估我的结果。然而,我缺乏这方面的一些背景,我需要帮助来解决问题。

基本上,我想知道如何以尽可能多地利用所有可用资源的方式分配任务,以及实际上隐式完成了什么(例如通过 Spark)以及没有隐式完成什么。

这是我的场景: enter image description here

我需要训练许多不同的决策树模型(与所有可能参数的组合一样多)、许多不同的随机森林模型等等......

在我的一种方法中,我有一个列表,它的每个元素对应于一个 ML 算法及其参数列表。

spark.parallelize(algorithms).map(lambda algorihtm: run_experiment(dataframe, Algorithms))

在此函数 run_experiment 中,我使用其参数网格为相应的 ML 算法创建一个 GridSearchCV。我还设置了 n_jobs=-1 以便(尝试)实现最大并行度。

在这种情况下,在我的具有几个节点的 Spark 集群上,执行看起来像这样有意义吗?

enter image description here

或者可以有一个决策树模型和一个随机森林模型在同一节点中运行?这是我第一次使用集群环境,所以我对如何期望事情正常工作有点困惑。

另一方面,如果我使用 for 循环来顺序遍历我的列表,而不是使用 parallelize 的第一种方法,那么执行方面究竟会发生什么变化算法并使用 databricks 的 spark-sklearn 创建 GridSearchCV Spark 和 scikit-learn 之间的集成?文档中的说明方式看起来像这样:

enter image description here

最后,对于第二种方法,使用相同的 ML 算法,但使用 Spark MLlib 而不是 scikit-learn,是否可以处理整个并行化/分布?

很抱歉,如果其中大部分内容有点天真,但我真的很感谢对此的任何答案或见解。我想在集群中实际测试和使用任务调度参数之前了解基础知识。

<小时/>

我不确定这个问题在这里更合适还是在CS stackexchange上更合适。

最佳答案

spark.parallelize(算法).map(...)

来自ref ,“集合的元素被复制以形成可以并行操作的分布式数据集。”这意味着您的算法将分散在节点中。从那里开始,每个算法都将执行。

如果算法及其各自的参数以这种方式分散,您的方案可能是有效的,我认为您就是这种情况。

关于使用您的所有资源,非常擅长这一点。但是,您需要检查任务之间的工作负载是否平衡(每个任务执行相同的工作量),以获得良好的性能。

<小时/>

What changes if instead of the first approach with parallelize, I use a for loop?

一切。您的数据集(您的情况下的算法)不是 RDD,因此不会发生并行执行。

.. and also using databricks's spark-sklearn integration between Spark and scikit-learn?

这个article描述了如何实现随机森林:

“Spark 的 scikit-learn 包提供了交叉验证算法的替代实现,该算法在 Spark 集群上分配工作负载。每个节点使用 scikit-learn 库的本地副本运行训练算法,并报告最好的模型返回给大师。”

我们可以将其推广到您的所有算法,从而使您的方案变得合理。

<小时/>

Spark MLlib instead of scikit-learn, would the whole parallelization/distribution be taken care of?

是的,会的。他们对这个库的想法是为我们照顾一切,让我们的生活更轻松。

<小时/>

我建议您一次问一个大问题,因为现在的答案太宽泛,但我会尽量简洁。

关于apache-spark - Spark集群中的任务是如何分布的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44202084/

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