使用MesosExecutor在Airflow上自定义任务资源

时间:2018-05-10 00:22:21

标签: mesos airflow

使用MesosExecutor时,是否可以为DAG的每个运营商指定资源(CPU,内存,GPU,磁盘空间)?

我知道您可以为任务的资源指定全局值。

例如,我有几个运营商的CPU价格昂贵,而另一些则没有。我想在第一次执行一次,但很多并行执行非CPU昂贵的。

1 个答案:

答案 0 :(得分:1)

code(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

和那些values are used没有修改:

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

需要自定义Executor实现才能实现