tôi đã trình phục vụ hoạt động đúng, và tập tin luồng không khí-scheduler.service của tôi bắt đầu lên lịch và nó tìm thấy DAG của tôi vv Tuy nhiên, nhiệm vụ không chạy:Airflow systemd lên lịch làm việc không
tôi thấy thông báo lỗi về/bin/sh
ERROR - failed to execute task Command 'exec bash -c run'
tôi có tập tin sysconfig tôi:
#!/bin/bash
PATH=/opt/anaconda/anaconda3/envs/airflow_env/bin/airflow
AIRFLOW_CONFIG=/mnt/var/airflow/airflow.cfg
AIRFLOW_HOME=/mnt/var/airflow
Và tập tin luồng không khí-scheduler.service tôi:
#!/bin/bash
[Unit]
Description=Airflow scheduler daemon
After=network.target postgresql.service
Wants=postgresql.service
[Service]
EnvironmentFile=/etc/sysconfig/airflow
User=airflow
Group=airflow
Type=simple
ExecStart=/opt/anaconda/anaconda3/envs/airflow_env/bin/airflow scheduler
Restart=always
RestartSec=5s
[Install]
WantedBy=multi-user.target
Đây là mẩu tin journalctl trong đó cho thấy các lỗi bash Tôi nhận:
[2017-10-30 18:36:13,764] {base_executor.py:50} INFO - Adding to queue: airflow run user_presence_raw_etl transform_raw_user_presence 2017-10-30T14:00:00 --local -sd /mnt/var/airflow/dags/bin/user_p
Oct 30 18:36:13 airflow[4742]: [2017-10-30 18:36:13,765] {jobs.py:1443} INFO - Heartbeating the executor
Oct 30 18:36:13 airflow[4742]: [2017-10-30 18:36:13,783] {local_executor.py:45} INFO - LocalWorker running airflow run user_presence_raw_etl transform_raw_user_presence 2017-10-30T14:00:00 --local -sd /mnt/var/airflow/dags/bin/us
Oct 30 18:36:13 airflow[4742]: /bin/sh: 1: exec: bash: not found
Oct 30 18:36:13 airflow[4742]: [2017-10-30 18:36:13,865] {local_executor.py:52} **ERROR - failed to execute task Command 'exec bash -c 'airflow run** user_presence_raw_etl transform_raw_user_presence 2017-10-30T14:00:00 --local -sd /mnt/var/airf
Oct 30 18:36:14 airflow[4742]: [2017-10-30 18:36:14,786] {jobs.py:1407} INFO - Heartbeating the process manager
Oct 30 18:36:14 airflow[4742]: [2017-10-30 18:36:14,786] {dag_processing.py:559} INFO - Processor for /mnt/var/airflow/dags/bin/prod/hourly_agent_dag.py finished
Oct 30 18:36:14 airflow[4742]: [2017-10-30 18:36:14,789] {dag_processing.py:627} INFO - Started a process (PID: 5425) to generate tasks for /mnt/var/airflow/dags/bin/prod/daily_agent_email_dag.py - logging into /mnt/var/airflow/l
Oct 30 18:36:14 airflow[4742]: [2017-10-30 18:36:14,831] {jobs.py:1000} INFO - No tasks to send to the executor
Oct 30 18:36:14 airflow[4742]: [2017-10-30 18:36:14,832] {jobs.py:1443} INFO - Heartbeating the executor
Oct 30 18:36:14 airflow[4742]: [2017-10-30 18:36:14,833] {jobs.py:1195} INFO - Executor reports user_presence_raw_etl.transform_raw_user_presence execution_date=2017-10-30 14:00:00 as failed
Vâng, tôi có một môi trường (anaconda). Thông thường tôi chạy luồng không khí bằng cách tạo ra một màn hình, sau đó nguồn kích hoạt luồng không khí_env, sau đó luồng không khí lên lịch. Điều này làm việc 100% thời gian. Tệp .service của tôi trỏ đến môi trường ảo - có lẽ nó không được kích hoạt? Tôi nên thay đổi điều gì? – trench
Bạn có thể thấy trong ví dụ của tôi, tệp dịch vụ trỏ tới tệp sysconfig trỏ đến PATH =/opt/anaconda/anaconda3/envs/luồng không khí_env/bin/luồng không khí. Đó là con đường anaconda mà tôi thường chạy lên lịch với trên màn hình. – trench
Bạn có thể thử liên kết tượng trưng '/ opt/anaconda/anaconda3/envs/luồng không khí_env/bin/luồng không khí vào thư mục tồn tại trong' $ PATH', ví dụ: '/ usr/local/bin'? Chỉ để xác nhận rằng một khi luồng không khí thực thi mọi thứ hoạt động như mong đợi. Sau đó, chúng tôi có thể tập trung vào cách khắc phục sự cố cho định nghĩa dịch vụ của bạn. – s7anley