Apache spark 火花资源分配

Apache spark 火花资源分配,apache-spark,pyspark,Apache Spark,Pyspark,我们正在评估Apache Spark(pySpark)作为我们机器学习管道的框架。 它包括(在高层次上)两个步骤: 一个预处理步骤(当我们处理音频数据时,子步骤是例如功率谱的计算),它更适合在CPU节点上运行 有一个训练步骤,在该步骤中,模型得到构建,并针对GPU节点进行了优化。我们希望以这样的方式分配工作,第一步(数据预处理)在CPU集群上运行,第二步(模型训练)在GPU集群上运行,而无需在步骤1和步骤2之间手动干预 问题: Spark是组织处理不同集群的正确地点,还是必须在其他地方进行(例如

我们正在评估Apache Spark(pySpark)作为我们机器学习管道的框架。
它包括(在高层次上)两个步骤:

  • 一个预处理步骤(当我们处理音频数据时,子步骤是例如功率谱的计算),它更适合在CPU节点上运行
  • 有一个训练步骤,在该步骤中,模型得到构建,并针对GPU节点进行了优化。我们希望以这样的方式分配工作,第一步(数据预处理)在CPU集群上运行,第二步(模型训练)在GPU集群上运行,而无需在步骤1和步骤2之间手动干预
  • 问题:

  • Spark是组织处理不同集群的正确地点,还是必须在其他地方进行(例如在Mesos级别)
  • 如果Spark是正确的位置,我们如何使用Spark组织它,以便第一步在CPU集群上运行,第二步在GPU集群上运行
  • 我最初的想法是创建多个SparkContext,但似乎不鼓励这样做,例如:


    非常感谢您的帮助。

    Spark有一个独立的调度程序,因此您不需要Mesos。您似乎将Spark代码的开发方面与集群维护混为一谈。@cricket\u 007:谢谢您的评论。Mesos只是一个例子。对我们来说,主要的问题是我们如何在资源之间分配我们的工作,即模型培训到GPU,预处理到CPU。Spark是否需要成为完整的工作流程?你可以使用一个Spark作业将一个文件输出到磁盘上,然后另一个进程(不需要是Spark,因为我不知道GPU上有Spark)可以读取这些文件。这不是必须的,但会使事情变得简单,因为研究人员只定义作业的所有元素,其他的一切都会处理。你知道还有其他框架可以提供这样的功能吗?我并不是说Spark不可能,我只是从来没有尝试过在GPU上运行(或使用Tensorflow),但我个人会首先考虑这一点