3

我对 Mesos-spark 有几个问题:

  1. 当我在 Mesos 上提交具有不同 spark 上下文的 spark 作业时,它是调用不同的 mesos-spark 框架实例还是使用相同的实例。
  2. 如何确保每次创建不同的 spark 框架。
  3. 我可以指定约束来为特定的 spark 上下文或框架实例保留/预分配 mesos-slave。我知道这有点违背 Mesos 的目的,Mesos 可以保证粗粒度模式下的内存和 CPU。但出于某种原因,我不想共享跨不同 Spark 作业(针对不同用户)运行任务(从属)的物理机器
4

1 回答 1

7

1/2,每个 Spark 上下文将启动一个单独的 Mesos 框架,您应该能够通过导航到 Mesos UI 并查看创建的所有框架来确认这一点,它们应该与您创建的 Spark 上下文一一对应。

  1. 你可以为一组 Spark 任务预留资源,方法是在每个从属服务器上预留一部分资源,并用特定角色标记它们。

例如,如果您想在从属设备上保留 4gb 内存和 2 个内核来运行一组任务,您可以指定 --resources="cpus(spark1):2,mem(spark1):4098,cpus( ):2 ,mem( ):4098" 启动从站时。这给 spark1 角色 4gb 的 ram 和 2 个 cpu,而所有其他框架 2 cpu 和 4gb ram。使用 spark1 角色注册自身的框架将收到保留的资源以及任何可用的通配符 (*) 资源供其使用。

在 Spark 框架方面,我有一个支持注册特定角色的开放 PR(https://github.com/apache/spark/pull/4960),希望很快就会合并。因此,如果您喜欢使用此功能,您现在需要应用此拉取请求并自己构建 Spark。

于 2015-03-31T08:15:28.143 回答