, заставь его использовать стабильную ветку
ользую Airflow в кластерной среде, работающей на двух экземплярах AWS EC2. Один для мастера и один для работника. Рабочий узел периодически выдает эту ошибку при запуске «$ airflow worker»:
[2018-08-09 16:15:43,553] {jobs.py:2574} WARNING - The recorded hostname ip-1.2.3.4 does not match this instance's hostname ip-1.2.3.4.eco.tanonprod.comanyname.io
Traceback (most recent call last):
File "/usr/bin/airflow", line 27, in <module>
args.func(args)
File "/usr/local/lib/python3.6/site-packages/airflow/bin/cli.py", line 387, in run
run_job.run()
File "/usr/local/lib/python3.6/site-packages/airflow/jobs.py", line 198, in run
self._execute()
File "/usr/local/lib/python3.6/site-packages/airflow/jobs.py", line 2527, in _execute
self.heartbeat()
File "/usr/local/lib/python3.6/site-packages/airflow/jobs.py", line 182, in heartbeat
self.heartbeat_callback(session=session)
File "/usr/local/lib/python3.6/site-packages/airflow/utils/db.py", line 50, in wrapper
result = func(*args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/airflow/jobs.py", line 2575, in heartbeat_callback
raise AirflowException("Hostname of job runner does not match")
airflow.exceptions.AirflowException: Hostname of job runner does not match
[2018-08-09 16:15:43,671] {celery_executor.py:54} ERROR - Command 'airflow run arl_source_emr_test_dag runEmrStep2WaiterTask 2018-08-07T00:00:00 --local -sd /var/lib/airflow/dags/arl_source_emr_test_dag.py' returned non-zero exit status 1.
[2018-08-09 16:15:43,681: ERROR/ForkPoolWorker-30] Task airflow.executors.celery_executor.execute_command[875a4da9-582e-4c10-92aa-5407f3b46d5f] raised unexpected: AirflowException('Celery command failed',)
Traceback (most recent call last):
File "/usr/local/lib/python3.6/site-packages/airflow/executors/celery_executor.py", line 52, in execute_command
subprocess.check_call(command, shell=True)
File "/usr/lib64/python3.6/subprocess.py", line 291, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command 'airflow run arl_source_emr_test_dag runEmrStep2WaiterTask 2018-08-07T00:00:00 --local -sd /var/lib/airflow/dags/arl_source_emr_test_dag.py' returned non-zero exit status 1.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.6/dist-packages/celery/app/trace.py", line 382, in trace_task
R = retval = fun(*args, **kwargs)
File "/usr/lib/python3.6/dist-packages/celery/app/trace.py", line 641, in __protected_call__
return self.run(*args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/airflow/executors/celery_executor.py", line 55, in execute_command
raise AirflowException('Celery command failed')
airflow.exceptions.AirflowException: Celery command failed
При возникновении этой ошибки задача помечается как сбойная в Airflow и, таким образом, происходит сбой моей группы обеспечения доступности баз данных, когда в задаче ничего не происходит.
Я использую Redis в качестве своей очереди и postgreSQL в качестве мета-базы данных. Оба являются внешними, как сервисы AWS. Я запускаю все это в среде моей компании, поэтому полное имя сервераip-1.2.3.4.eco.tanonprod.comanyname.io
, Похоже, что где-то нужно это полное имя, но я понятия не имею, где мне нужно исправить это значение, чтобы оно получалоip-1.2.3.4.eco.tanonprod.comanyname.io
вместо простоip-1.2.3.4
.
Действительно странной вещью в этом вопросе является то, что это не всегда происходит. Кажется, это происходит случайно, когда я запускаю DAG. Это также встречается на всех моих DAG время от времени, так что это не просто один DAG. Я нахожу странным, однако, как это время от времени, потому что это означает, что другие запуски задач обрабатывают IP-адрес для чего угодно.
Примечание: Я изменил реальный IP-адрес на 1.2.3.4 по соображениям конфиденциальности.
Ответ:
https://github.com/apache/incubator-airflow/pull/2484
Это как раз та проблема, с которой я сталкиваюсь, и другие пользователи Airflow на AWS EC2-Instances также испытывают это.