joblib和气流中的其他并行任务

zpgglvta  于 2021-09-08  发布在  Java
关注(0)|答案(0)|浏览(273)

我以前使用过joblib和airflow,没有遇到过这个问题。我正在尝试通过气流运行作业,该气流使用joblib运行并行计算。当气流作业启动时,我看到以下警告

UserWarning: Loky-backed parallel loops cannot be called in a multiprocessing, setting n_jobs=1

将警告追溯到源代码,我在lokybackend类的joblib包中看到以下函数触发(multiprocessingbackend类中也有类似的逻辑)

def effective_n_jobs(self, n_jobs):
    """Determine the number of jobs which are going to run in parallel"""
    if n_jobs == 0:
        raise ValueError('n_jobs == 0 in Parallel has no meaning')
    elif mp is None or n_jobs is None:
        # multiprocessing is not available or disabled, fallback
        # to sequential mode
        return 1
    elif mp.current_process().daemon:
        # Daemonic processes cannot have children
        if n_jobs != 1:
            warnings.warn(
                'Loky-backed parallel loops cannot be called in a'
                ' multiprocessing, setting n_jobs=1',
                stacklevel=3)
        return 1

问题是我以前在joblib和airflow中运行过类似的函数,但没有触发此条件设置 n_jobs 等于1。想知道这是否是某种类型的版本控制问题(使用airflow 2.x和joblib 1.x),或者airflow中是否有可以解决此问题的设置。我查看了joblib的旧版本,甚至降级到了joblib 0.4.0,但这并没有解决任何问题。由于api、数据库连接等方面的差异,我更不愿意降级气流。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题