AirflowException: error del comando Celery: el nombre de host registrado no coincide con el nombre de host de esta instancia

Estoy ejecutando Airflow en un entorno en clúster que se ejecuta en dos instancias de AWS EC2. Uno para el maestro y otro para el trabajador. Sin embargo, el nodo de trabajo genera periódicamente este error al ejecutar "$ 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

Cuando se produce este error, la tarea se marca como fallida en Airflow y, por lo tanto, falla mi DAG cuando nada salió realmente mal en la tarea.

Estoy usando Redis como mi cola y postgreSQL como mi metabase de datos. Ambos son externos como servicios de AWS. Estoy ejecutando todo esto en el entorno de mi empresa, por lo que el nombre completo del servidor esip-1.2.3.4.eco.tanonprod.comanyname.io. Parece que quiere este nombre completo en alguna parte, pero no tengo idea de dónde necesito arreglar este valor para obtenerip-1.2.3.4.eco.tanonprod.comanyname.io en lugar de soloip-1.2.3.4.

Lo realmente extraño de este problema es que no siempre sucede. Parece que ocurre aleatoriamente de vez en cuando cuando ejecuto el DAG. También está ocurriendo esporádicamente en todos mis DAG, por lo que no es solo un DAG. Sin embargo, me parece extraño que sea esporádico porque eso significa que otras ejecuciones de tareas manejan la dirección IP para lo que sea que esté bien.

Nota He cambiado la dirección IP real a 1.2.3.4 por razones de privacidad.

Responder

https: //github.com/apache/incubator-airflow/pull/248

Este es exactamente el problema que estoy teniendo y otros usuarios de Airflow en AWS EC2-Instances también lo están experimentando.

Respuestas a la pregunta(1)

Su respuesta a la pregunta