相关疑难解决方法(0)

Airflow记录BrokenPipeException

我正在使用集群Airflow环境,其中我有四个用于服务器的AWS ec2实例.

EC2-实例

  • 服务器1:Web服务器,调度程序,Redis队列,PostgreSQL数据库
  • 服务器2:Web服务器
  • 服务器3:工人
  • 服务器4:工人

我的设置已经完美地工作了三个月了,但偶尔每周一次,当Airflow试图记录某些东西时,我得到了一个断管异常.

*** Log file isn't local.
*** Fetching here: http://ip-1-2-3-4:8793/log/foobar/task_1/2018-07-13T00:00:00/1.log

[2018-07-16 00:00:15,521] {cli.py:374} INFO - Running on host ip-1-2-3-4
[2018-07-16 00:00:15,698] {models.py:1197} INFO - Dependencies all met for <TaskInstance: foobar.task_1 2018-07-13 00:00:00 [queued]>
[2018-07-16 00:00:15,710] {models.py:1197} INFO - Dependencies all met for <TaskInstance: foobar.task_1 2018-07-13 00:00:00 [queued]>
[2018-07-16 00:00:15,710] {models.py:1407} INFO - 
--------------------------------------------------------------------------------
Starting attempt 1 of 1
--------------------------------------------------------------------------------

[2018-07-16 00:00:15,719] {models.py:1428} INFO - Executing <Task(OmegaFileSensor): task_1> on 2018-07-13 00:00:00
[2018-07-16 00:00:15,720] {base_task_runner.py:115} …
Run Code Online (Sandbox Code Playgroud)

logging broken-pipe python-3.x airflow

10
推荐指数
1
解决办法
1234
查看次数

AirflowException:Celery 命令失败 - 记录的主机名与此实例的主机名不匹配

我在两个 AWS EC2 实例上运行的集群环境中运行 Airflow。一份给主人,一份给工人。不过,工作节点在运行“$airflowworker”时会定期抛出此错误:

[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 …
Run Code Online (Sandbox Code Playgroud)

airflow airflow-scheduler

8
推荐指数
2
解决办法
1万
查看次数

Python socket.gethostname

我正在尝试用python编写小型Web服务器的代码以捕获HTTP帖子。但是我的socket.gethostname部分有问题

这是我的示例代码

import socket

serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serversocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
serversocket.bind((socket.gethostname(), 8089))
serversocket.listen(1)


while True:
    connection, address = serversocket.accept()
    buf = connection.recv(164)
    print buf
Run Code Online (Sandbox Code Playgroud)

如果我改变

serversocket.bind((socket.gethostname(), 8089))
Run Code Online (Sandbox Code Playgroud)

serversocket.bind(("localhost", 8089))
Run Code Online (Sandbox Code Playgroud)

一切都可以通过telnet进行,但是我需要能够从Internet上的其他Web服务器进行连接,因此我需要使用socket.gethostname,但这会阻塞我的telnet。

python sockets

3
推荐指数
1
解决办法
1万
查看次数