2017-11-17 6 views
0

면책 조항 : 저는 (아직) Airflow의 사용자가 아니며, 오늘 발견되어 사용 사례에 적합한 지 조사하기 시작했습니다.기류를 사용하여 하나의 워크 플로에서 별개의 작업을 별도의 컴퓨터로 실행하는 방법은 무엇입니까?

여러 작업을 순차적으로 (병렬이 아닌) 실행하는 하나의 데이터 처리 워크 플로가 있습니다. 그러나 일부 작업은 특정 컴퓨터에서 실행해야합니다. 기류로 관리 할 수 ​​있습니까? 이 유스 케이스에 대해 권고 된 구현 모델은 무엇입니까?

감사합니다.

답변

1

예. 공기 흐름에서 queues으로이를 수행 할 수 있습니다. 작업을 특정 대기열에 연결할 수 있습니다. 그런 다음 시스템의 각 작업자에 대해 선택 대기열에서 픽업 태스크 만 설정할 수 있습니다. 코드에서

, 그 결과는 다음과 같습니다

: 당신이 당신의 직원을 시작한다면

# Default queue that tasks get assigned to and that worker listen on. 
default_queue = default 

: airflow.cfg에서이 설정이 있음을

task_1 = BashOperator(
    dag=dag, 
    task_id='task_a', 
    ... 
) 

task_2 = PythonOperator(
    dag=dag, 
    task_id='task_b', 
    queue='special', 
    ... 
) 

Server A> airflow worker 
Server B> airflow worker --queues special 
Server C> airflow worker --queues default,special 

그런 다음 task_1은 서버 A + C에 의해 선택되고 task_2는 서버 B + C에 의해 선택 될 수 있습니다.

+0

감사합니다. 이것은 내가 알아야 할 필요가있는 것입니다. 각 작업자에게 노드 호스트 이름이라는 큐를 할당 할 것입니다. – user2679436