Apache Airflow 1.10.10,Remote Worker和S3日志

时间:2020-07-08 04:41:55

标签: airflow airflow-worker

我最近将气流从1.10.0升级到1.10.10。当前设置是Web,Worker,Scheduler和Flower在同一台计算机上。当运行DAG的第一步时,它将启动DAG的新EMR,以及一个仅运行工作进程的工作节点。我们正在使用芹菜执行器。该工作节点发送任务以在EMR群集上运行。运行任务后,接下来的步骤是终止EMR和终止此工作程序实例。每个工作日志都存在于此工作节点上。只要任务正在运行或工作程序节点正在运行,我就可以在Web UI上看到日志。但是,一旦工作人员终止,我将无法查看日志。配置是将日志上传到s3。我在S3上看到startEMR和startWorker的日志,因为这些日志是主要的气流实例(所有4个进程都在运行) 这是airflow.cfg的配置代码段

base_log_folder = /home/deploy/airflow/logs
remote_logging = True
remote_base_log_folder = s3://airflow-log-bucket/airflow/logs/
remote_log_conn_id = aws_default
encrypt_s3_logs = False
s3_log_folder = '/airflow/logs/'
executor = CeleryExecutor

为DAG初始化工作程序实例并且在该节点上仅启动工作程序进程时,会设置相同的配置文件。 这是工作节点终止时来自任务的日志。

*** Log file does not exist: /home/deploy/airflow/logs/XXXX/XXXXXX/2020-07-07T23:30:05+00:00/1.log
*** Fetching from: http://ip-10-164-62-253.ap-southeast-2.compute.internal:8799/log/XXXX/XXXXXX/2020-07-07T23:30:05+00:00/1.log
*** Failed to fetch log file from worker. HTTPConnectionPool(host='ip-10-164-62-253.ap-southeast-2.compute.internal', port=8799): Max retries exceeded with url: /log/xxxx/XXXXXX/2020-07-07T23:30:05+00:00/1.log (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f6750ac52b0>: Failed to establish a new connection: [Errno 113] No route to host',))

所以基本上-

  1. 这在气流1.10.1中有效(我不需要添加remote_logging = True)
  2. 将日志复制到S3以进行EMR启动和工作节点启动步骤,并显示在Web UI上。
  3. 仅在远程工作节点上运行的任务不会复制到S3。

有人可以让我知道在配置上缺少与airflow1.10.0上使用的配置相同的内容

1 个答案:

答案 0 :(得分:0)

我发现我正在做的错误。正在通过新的pip而不是pip3来安装要在新的工作程序节点上安装的S3模块。气流服务器从pip3进行了此安装。 我必须做的另一个配置更改是在airflow.cfg文件的webserver部分中。

worker_class = sync

以前是gevent。