Преамбула
Еще один поток задач, не получая выполненный вопрос ...
В моем опыте с воздушным потоком все шло более-менее нормально, вплоть до этих выходных, пока все не пошло под откос.
Я проверил все стандартные вещи, например, как указано в этом полезном посте .
Я перезагружал весь экземпляр несколько раз, пытаясь заставить его работать должным образом, но я полностью проиграл битву.
Окружающая среда
- версия: воздушный поток 1.10.2
- os: centos 7
- питон: питон 3,6
- virtualenv: да
- Исполнитель: LocalExecutor
- Бэкэнд БД: mysql
Проблема
Вот что происходит в моем устранении неисправностей бесконечного цикла / повторяющегося кошмара.
- Я сбрасываю базу метаданных (или, возможно, весь virtualenv, config и т. Д.) И повторно вводю информацию о соединении.
- Задачи будут выполнены один раз. Они могут преуспеть. Если я что-то пропустил в настройке, задача может завершиться неудачей.
- Когда задача не выполняется, она переходит в состояние повтора.
- Я исправляю проблему с (например, забыл ввести соединение) и вручную очищаю экземпляр задачи.
- Очищенные экземпляры задач не запускаются, а просто находятся в состоянии «нет»
- Попытки снова запустить dag не удаются.
До того, как у меня возникла эта проблема, после очистки экземпляра задачи она всегда очень быстро поднималась и выполнялась снова.
Но теперь очистка экземпляра задачи обычно приводит к зависанию экземпляра задачи в очищенном состоянии. Он просто сидит там.
Хуже того, если я попытаюсь завершить работу с меткой и всеми экземплярами и снова вызвать метку вручную, экземпляры задачи будут созданы, но останутся в состоянии «нет». Перезапуск планировщика не помогает.
Другие наблюдения
Это, вероятно, красная сельдь, но одна вещь, которую я заметил недавно, это то, что когда я нажимаю на иконку, представляющую экземпляры задачи, застрявшие в состоянии «нет», это приводит меня к фильтру представления «экземпляры задачи», который имеет неправильный фильтр; фильтр установлен на "строка равна нулю".
Но вам нужно переключить его на «string empty yes», чтобы он действительно возвращал экземпляры задачи, которые застряли.
Я предполагаю, что это просто несоответствующая ошибка пользовательского интерфейса, насколько я понимаю, красная сельдь, но я решил упомянуть об этом на всякий случай.
Редактировать 1
Я замечаю, что происходит какой-то "нулевой оператор":

Редактировать 2
Является ли null
допустимым значением состояния экземпляра задачи? Или это показатель того, что что-то не так.

Редактировать 3
Подробнее none
шт.
Вот некоторые биты со страницы сведений об экземпляре задачи. Многие атрибуты none
:
Task Instance Details
Dependencies Blocking Task From Getting Scheduled
Dependency Reason
Unknown All dependencies are met but the task instance is not running. In most cases this just means that the task will probably be scheduled soon unless:
- The scheduler is down or under heavy load
- The following configuration values may be limiting the number of queueable processes: parallelism, dag_concurrency, max_active_dag_runs_per_dag, non_pooled_task_slot_count
- This task instance already ran and had its state changed manually (e.g. cleared in the UI)
If this task instance does not start soon please contact your Airflow administrator for assistance.
Task Instance Attributes
Attribute Value
duration None
end_date None
is_premature False
job_id None
operator None
pid None
queued_dttm None
raw False
run_as_user None
start_date None
state None
Обновление
Я, наконец, могу что-то ...
После моего кошмарного , марафона, сеанса устранения неполадок в застрявшей сумеречной зоне, я поднял руки и решил использовать докер-контейнеры вместо того, чтобы запускаться самостоятельно. Это было слишком странно. Вещи просто не имели смысла. Мне нужно было перейти в докер, чтобы среда могла полностью контролироваться и воспроизводиться.
Итак, я начал работать над настройкой докера на основе puckel / docker-airflow. Это тоже не было тривиальной задачей, потому что я решил использовать переменные окружения для всех параметров и соединений. Не все хуки разбирают URI соединения одинаково, поэтому вы должны быть осторожны, посмотреть на код и сделать несколько проб и ошибок.
Итак, я сделал это, и наконец-то настроил докер локально.Но когда я решил создать образ на своем экземпляре EC2, я обнаружил, что диск заполнен .И это было в немалой степени из-за журналов воздушного потока, что оно было заполнено.
Итак, моя новая теория заключается в том, что нехватка дискового пространства, возможно, как-то связана с этим.Я не уверен, смогу ли я найти дымящийся пистолет в бревнах, но я посмотрю.