ConnectionError(MaxRetryError("HTTPConnectionPool Максимальное количество повторных попыток превышено с использованием pywebhdfs
Привет, я использую pywebhdfs python lib. Я подключаю EMR, позвонив и пытаясь создать файл на HDFS. Я получаю исключение ниже указанного уровня, которое кажется неуместным в отношении того, что я выполняю, поскольку здесь я не нарушаю никаких ограничений соединения это из-за того, как работает webhdfs
from pywebhdfs.webhdfs import PyWebHdfsClient
hdfs = PyWebHdfsClient(host='myhost',port='50070', user_name='hadoop')
my_data = '01010101010101010101010101010101'
my_file = 'user/hadoop/data/myfile.txt'
hdfs.create_file(my_file, my_data)
request.exceptions.ConnectionError: HTTPConnectionPool(host='masterDNS', port=50070): максимальное количество повторных попыток превышено с помощью url: /webhdfs/v1/user/hadoop/data/myfile.txt?op=CREATE&user.name=hadoop (вызвано NewConnectionError(': не удалось установить новое соединение: [Errno 115] Операция сейчас выполняется',))
2 ответа
У меня тоже была эта проблема. Я обнаружил, что почему-то позвонил:
send (self, request, stream = False, timeout = None, verify = True, cert = None, прокси = Нет):
передается тайм-аут 0, и это вызывает отправку, чтобы бросить
MaxRetryError
В итоге, я обнаружил, что если вы просто установите timeout = 1, он работает нормально:
hdfs = PyWebHdfsClient (host = 'yourhost', port = '50070', user_name = 'hdfs', timeout = 1)
Надеюсь, что это работает и для вас.
Пожалуйста, проверьте статус вашего подключения. Выполните команду ниже, чтобы узнать, работает ли порт webhdfs с вашего хоста:
netstat -an | grep 50070 | grep LIST
Пожалуйста, обратите внимание:
- Если SSL включен, порт будет 50470.
hdfs namenode -format
не должен запускаться из узла, потому что он форматирует ваш namenode, и вы теряете все.
Форматирование namenode несколько раз решало для меня эту проблему.
hdfs namenode -format
Возможно, служба webhdfs не работает на указанном вами хосте. Вы можете проверить свой кластер, чтобы увидеть, на каком хосте запущена служба webhdfs.