connectionerror(maxretryerror(“httpconnectionpool max retries exceeded using pywebhdfs”)

oknwwptz  于 2021-06-02  发布在  Hadoop
关注(0)|答案(4)|浏览(716)

嗨,我正在使用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)

抛出:
requests.exceptions.connectionerror:httpconnectionpool(host='masterdns',port=50070):url超过最大重试次数:/webhdfs/v1/user/hadoop/data/myfile.txt?op=create&user.name=hadoop(由newconnectionerror引起(':建立新连接失败:[errno 115]操作正在进行',))

zlwx9yxi

zlwx9yxi1#

我也有这个问题。我发现出于某种原因
发送(self,request,stream=false,timeout=none,verify=true,cert=none,proxies=none):
传递的超时值为0,这将导致send抛出
最大重试错误
总之,我发现如果你只设置timeout=1,它工作得很好:
hdfs=pywebhdfsclient(host='yourhost',port='50070',user\u name='hdfs',timeout=1)
希望这对你也有用。

unguejic

unguejic2#

请检查您的连接状态。运行以下命令以查看webhdfs端口是否在主机上工作:

netstat -an | grep 50070 | grep LIST

请注意:
如果启用ssl,则端口将为50470。 hdfs namenode -format 不应该从节点运行,因为它格式化了namenode,并且会丢失所有内容。

ohtdti5x

ohtdti5x3#

可能,webhdfs服务没有在您指定的主机上运行。您可以检查集群以查看哪个主机正在运行webhdfs服务。

bvn4nwqk

bvn4nwqk4#

格式化namenode多次解决了这个问题。

hdfs namenode -format

相关问题