ConnectionError(MaxRetryError("使用 pywebhdfs 超出 HTTPConnectionPool 最大重试次数

Sam*_*Sam 5 hadoop webhdfs pyhdfs-client

你好,我正在使用 pywebhdfs python lib。我通过调用并尝试在 HDFS 上创建文件来连接 EMR。我遇到了异常,这似乎与我正在执行的操作无关,因为我在这里没有达到任何连接限制。是因为 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)
Run Code Online (Sandbox Code Playgroud)

抛出:

requests.exceptions.ConnectionError: HTTPConnectionPool(host='masterDNS', port=50070): 超过 url 的最大重试次数:/webhdfs/v1/user/hadoop/data/myfile.txt?op=CREATE&user.name=hadoop (由NewConnectionError(': 无法建立新连接: [Errno 115] 操作正在进行中',))

Gre*_*reg 0

我也有这个问题。我发现由于某种原因,调用:

发送(自我,请求,流=假,超时=无,验证=真,证书=无,代理=无):

超时时间为 0,这会导致send抛出

最大重试错误

最重要的是,我发现如果你只设置 timeout = 1,它就可以正常工作:

hdfs = PyWebHdfsClient(主机='yourhost',端口='50070',user_name='hdfs',超时=1)

希望这也适合您。