2014-07-10 27 views
1

我想知道Spark如何在多个工作人员之间分割单个作业(使用sbt包构建的scala文件以及使用spark-submit命令运行的jar)。在apache中的多个工作人员上运行单个作业

例如:我有两个工人(每个512MB内存)。我提交一份工作,它只被分配给一名工作人员(如果驱动程序内存小于工作内存)。如果驱动程序内存大于工作内存,则不会分配给任何工作人员(即使两个工人的内存总和高于驱动程序内存),并且会提交提交的状态。只有当具有所需内存的工作人员在群集中可用时,该作业才会进入运行状态。

我想知道一个工作是否可以分散到多个工作人员并且可以并行运行。如果是这样,任何人都可以帮助我参与其中的具体步骤。

注:斯卡拉程序需要大量的JVM内存的,因为我会使用一个大阵缓冲,因此试图将工作在多个工人提前

感谢分裂!

+0

可能的重复http://stackoverflow.com/questions/24167194/why-is-the-spark-task-running-on-a-single-node –

回答

0

确保您的RDD有多个分区(rdd.partitions.size)。确保您有多个执行程序连接到驱动程序(http://localhost:4040/executors/)。

如果这两个都满足,你的工作应该并行运行在多个执行器上。如果没有,请在您的问题中包含代码和日志。

+0

谢谢,我与2名工人尝试,然后它的工作。 。 – csifreeman

相关问题