Apache Spark - 控制地图功能的调度

时间:2015-06-04 20:06:56

标签: apache-spark bigdata

我有一个3节点集群,我试图提出一个基准测试。用例是对于应用程序,所有map函数都需要在特定的机器上运行,而所有的reduce函数都需要在另一台机器上运行。

Spark中是否有任何调度属性可以实现此目的。

1 个答案:

答案 0 :(得分:1)

可能有一个非常糟糕的"这样做的方式。

  1. 在m / c A上启动master。启用推测执行。
  2. 在m / c B上开始工作。
  3. 启动您的申请。做地图。确保实现(通过调用rdd.count())以使其实际执行。采取您的指标。
  4. 暂停执行。
  5. 在m / c C
  6. 上启动工作人员

    在特定的m / c上运行Reducer更加棘手。因为你要问的是m / c B是活着的(对于数据)但不参与执行。

    1. 编写一个故意减慢m / c B的函数。此函数还将处理聚合,以便您可以在reduceByKey中使用此函数。
    2. 恢复执行。这次,因为m / c B很慢,Scheduler将被迫以m / c C启动相应的reduce任务。
    3. (Reynold Xin在2014 Spark summit期间用来解决落后者的方法显示了这种技术,但在这里我们用它来创造落后者:))

      正如已经提到的,这打败了Spark的精神。你甚至不应该尝试这样做。提示:Spark!= Hadoop MR:)