使用MesosExecutor时,是否可以为DAG的每个运营商指定资源(CPU,内存,GPU,磁盘空间)?
我知道您可以为任务的资源指定全局值.
例如,我有几个CPU很昂贵的运营商而其他运营商没有.我想在第一次执行一次,但许多与非CPU昂贵的并行执行.
从代码(mesos_executor.py 第 67 行)来看,这似乎是不可能的,因为 cpu 和内存值在初始化期间传递给调度程序:
def __init__(self,
task_queue,
result_queue,
task_cpu=1,
task_mem=256):
self.task_queue = task_queue
self.result_queue = result_queue
self.task_cpu = task_cpu
self.task_mem = task_mem
Run Code Online (Sandbox Code Playgroud)
并且这些值无需修改即可使用:
cpus = task.resources.add()
cpus.name = "cpus"
cpus.type = mesos_pb2.Value.SCALAR
cpus.scalar.value = self.task_cpu
mem = task.resources.add()
mem.name = "mem"
mem.type = mesos_pb2.Value.SCALAR
mem.scalar.value = self.task_mem
Run Code Online (Sandbox Code Playgroud)
它需要一个自定义的 Executor 实现来实现
| 归档时间: |
|
| 查看次数: |
219 次 |
| 最近记录: |