Socket gaierror errno 11004 getaddrinfo failed python

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

Parsely / pykafka Public archive

socket.gaierror: [Errno 11004] getaddrinfo failed #418

socket.gaierror: [Errno 11004] getaddrinfo failed #418

Comments

>>> from pykafka import KafkaClient >>> client = KafkaClient(hosts='10.43.159.127:9092') Traceback (most recent call last): File "", line 1, in File "E:\Python27\lib\site-packages\pykafka\client.py", line 73, in __init__ source_address=self._source_address File "E:\Python27\lib\site-packages\pykafka\cluster.py", line 191, in __init__ self.update() File "E:\Python27\lib\site-packages\pykafka\cluster.py", line 390, in update self._update_brokers(metadata.brokers) File "E:\Python27\lib\site-packages\pykafka\cluster.py", line 315, in _update_brokers source_port=self._source_port File "E:\Python27\lib\site-packages\pykafka\broker.py", line 140, in from_metadata source_port=source_port) File "E:\Python27\lib\site-packages\pykafka\broker.py", line 92, in __init__ self.connect() File "E:\Python27\lib\site-packages\pykafka\broker.py", line 200, in connect self._connection.connect(self._socket_timeout_ms) File "E:\Python27\lib\site-packages\pykafka\connection.py", line 82, in connect (self.source_host, self.source_port) File "E:\Python27\lib\socket.py", line 553, in create_connection for res in getaddrinfo(host, port, 0, SOCK_STREAM): socket.gaierror: [Errno 11004] getaddrinfo failed 

The text was updated successfully, but these errors were encountered:

Thank you!@emmett9001
The output is [(2, 0, 0, », (‘10.43.159.127’, 9092))]

>>> import socket >>> socket.getaddrinfo('10.43.159.127', 9092) [(2, 0, 0, '', ('10.43.159.127', 9092))] 

When i stop the kafka server,it’s output are:

>>> client = KafkaClient(hosts="10.43.159.127:9092") No handlers could be found for logger "pykafka.cluster" Traceback (most recent call last): File "", line 1, in File "d:\pykafka-master\pykafka\client.py", line 73, in __init__ source_address=self._source_address File "d:\pykafka-master\pykafka\cluster.py", line 191, in __init__ self.update() File "d:\pykafka-master\pykafka\cluster.py", line 379, in update metadata = self._get_metadata() File "d:\pykafka-master\pykafka\cluster.py", line 286, in _get_metadata 'Unable to connect to a broker to fetch metadata. See logs.') RuntimeError: Unable to connect to a broker to fetch metadata. See logs. 

And when i start the kafka server,it’s ouput are ‘socket.gaierror: [Errno 11004] getaddrinfo failed’

Читайте также:  Цвета

Looks like this line is failing for one reason or another. There’s nothing in your example code that indicates that you’re doing anything wrong, so I’m left to guess that it’s some firewall configuration that’s not allowing your pykafka machine to talk to kafka. For some more information, you could add this to your test script:

import logging as log log.basicConfig(level=log.DEBUG)

You can post the full output from that test run here, it may give us something more off of which to work.

@emmett9001 I had closed the firewall:

ip6tables 0:off 1:off 2:off 3:off 4:off 5:off 6:off iptables 0:off 1:off 2:off 3:off 4:off 5:off 6:off 
DEBUG:pykafka.connection:Connecting to 10.43.159.115:9092 DEBUG:pykafka.connection:Successfully connected to 10.43.159.115:9092 INFO:pykafka.handlers:RequestHandler.stop: about to flush requests queue INFO:pykafka.cluster:Discovered 1 brokers DEBUG:pykafka.cluster:Discovered broker id 159115: centos115:9092 DEBUG:pykafka.connection:Connecting to centos115:9092 INFO:pykafka.handlers:RequestHandler worker: exiting cleanly Traceback (most recent call last): File "test.py", line 5, in client = KafkaClient(hosts="10.43.159.115:9092") File "d:\pykafka-master\pykafka\client.py", line 73, in __init__ source_address=self._source_address File "d:\pykafka-master\pykafka\cluster.py", line 191, in __init__ self.update() File "d:\pykafka-master\pykafka\cluster.py", line 387, in update self._update_brokers(metadata.brokers) File "d:\pykafka-master\pykafka\cluster.py", line 314, in _update_brokers source_port=self._source_port File "d:\pykafka-master\pykafka\broker.py", line 140, in from_metadata source_port=source_port) File "d:\pykafka-master\pykafka\broker.py", line 92, in __init__ self.connect() File "d:\pykafka-master\pykafka\broker.py", line 200, in connect self._connection.connect(self._socket_timeout_ms) File "d:\pykafka-master\pykafka\connection.py", line 82, in connect (self.source_host, self.source_port) File "E:\Python27\lib\socket.py", line 553, in create_connection for res in getaddrinfo(host, port, 0, SOCK_STREAM): socket.gaierror: [Errno 11004] getaddrinfo failed 

By the way,i can use kafka-python to connect to kafka,so maybe firewall configuration is not the problem?
Thank you very much!

Can it be the kafka broker configuration?
You connect by IP, but then if the metadata is fetched from the broker about all kafka brokers, and this can return some name that is, e.g. not resolvable, from the client (pykafka) host.
Maybe it worth looking at hostname of the kafka host, and if it is resolvable from pykafka client host.
Just in case, in server.properties , you also have advertised.host.name= parameter.
Not sure though.

Читайте также:  Adding elements to arrays in php

@Emor93 I agree with @tigran-a that this is likely to be related to either the advertised.host.name or host.name property in your broker configuration. Check out your server.properties , and also try running this from your pykafka machine:

import socket socket.getaddrinfo('centos115', 9092)

If it fails, that strongly indicates that you need to change the advertised hostname of your broker to something that your pykafka machine can resolve.

I was considering catching errors like this and attempting to run with less than the full set of brokers, but I actually don’t think that’s a great idea. It’s fine for pykafka to assume that the list of brokers it gets back from the metadata request are all accessible, and if this isn’t the case it makes sense that the user should know about it.

Источник

Socket gaierror errno 11004 getaddrinfo failed python

Ошибка Python Socket Errno 11004

Представим что у нас следующий Python скрипт test_app.py с таким содержимым:

import socket
host = socket.gethostname()
idress = socket.gethostbyname(host)
port = 2021
server_socket = socket.socket()
server_ssocket.bind((host, port))
server_socket.listen(1)
. и т.д.

На одном ПК данный код успешно выполняется, отрабатывает как следует, а при запуске этого же скрипта на другом ПК, появляется непредвиденная ошибка:

Traceback (most recent call last):
File “test_app.py”, line X1, in
File “test_app.py”, line X2, in server_programm
socket.gaierror: [Errno 11004] getaddrinfo failed
[4044] Failed to execute script test_app

Будь у нас в указанных строках указан сразу IP адрес или URL, было бы понятно что не определяется или IP или URL указан не верно, но в данном случае то определяется HOST устройства, причем того, на котором запускается скрипт.

Ошибка Python Socket Errno 11004

В данном случае ларчик открывался просто, однако решение проблемы было выявлено лишь после долгих разбирательств, увы разобрался не сразу.

Проблема в названии имени ПК. Если имя компьютера или другого устройства, содержит в своем названии символы кириллицы, при попытке определения имени хосты будет выдана ошибка. Если компьютер переименовать используя только символы латиницы, данная ошибка должна пропасть. Например ПК называется «Домашний», переименовываем его в»Home» ну или по аналогии.

Источник

Python-сообщество

[RSS Feed]

  • Начало
  • » Python для новичков
  • » [SOCKET] Проблема с [Errno 11004] getaddrinfo failed
Читайте также:  Найти целые числа javascript

#1 Апрель 16, 2015 09:24:52

[SOCKET] Проблема с [Errno 11004] getaddrinfo failed

Здравствуйте, подскажите. Как правильно прописать URL, для SOCKET-соединения?

sock = socket.socket() sock.connect(('http://IP_ADDRESS/socket.php', 8000)) sock.send('hello, world!') data = sock.recv(1024) sock.close() print data 
gaierror: [Errno 11004] getaddrinfo failed 

По прямому адресу, запрос проходит.

sock.connect(('http://IP_ADDRESS', 8000)) 

Отредактировано Unnamed001 (Апрель 16, 2015 09:25:51)

#2 Апрель 16, 2015 09:39:42

JOHN_16 От: Россия, Петропавловск-Камчатск Зарегистрирован: 2010-03-22 Сообщения: 3292 Репутация: 221 Профиль Отправить e-mail

[SOCKET] Проблема с [Errno 11004] getaddrinfo failed

вы пытаетесь через чистые сокеты работать с HTTP. Это не правильно, в мире вещи работают по другому. Если вы хотите работать с HTTP, посмотрите в сторону модуля requests.

_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

#3 Апрель 16, 2015 09:54:07

[SOCKET] Проблема с [Errno 11004] getaddrinfo failed

JOHN_16
вы пытаетесь через чистые сокеты работать с HTTP. Это не правильно, в мире вещи работают по другому. Если вы хотите работать с HTTP, посмотрите в сторону модуля requests.

Отредактировано Unnamed001 (Апрель 16, 2015 10:01:18)

#4 Апрель 16, 2015 10:32:35

JOHN_16 От: Россия, Петропавловск-Камчатск Зарегистрирован: 2010-03-22 Сообщения: 3292 Репутация: 221 Профиль Отправить e-mail

[SOCKET] Проблема с [Errno 11004] getaddrinfo failed

ээээ…может вы задачу опишите, а то, честно говоря, попахивает дурно.

_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

#5 Апрель 16, 2015 10:55:35

[SOCKET] Проблема с [Errno 11004] getaddrinfo failed

Возможно и попахивает ))) Вот, что я делаю:

Через Pyhon соединяюсь для SOCKET-запроса, на адрес MY_DOMAIN.RU, у меня проблема в том, что мне нужно на MY_DOMAIN.RU отдавать как статику/динамику страниц для работы сайта и одновременно, если это будет SOCKET-запрос обработать его. Главный вопрос из темы, как раз про это, куда мне запихнуть socket.php (если он только на главной индексной странице может работать при запросе через Python) и на главной странице выводить основной сайт..

Вот так.
___
XEN-сервер, CentOS 6 (x86), nginx + php-fpm + apc

Отредактировано Unnamed001 (Апрель 16, 2015 11:02:35)

#6 Апрель 16, 2015 11:41:27

[SOCKET] Проблема с [Errno 11004] getaddrinfo failed

В сокетах нет понятия URL.

Там есть только соединение и пересылка/приём данных.
Пример

Отредактировано py.user.next (Апрель 16, 2015 11:44:29)

Источник

Оцените статью