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

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

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

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

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

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

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

暂无答案!

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

相关问题