嗨,我正在使用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]操作正在进行',))
4条答案
按热度按时间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)
希望这对你也有用。
unguejic2#
请检查您的连接状态。运行以下命令以查看webhdfs端口是否在主机上工作:
请注意:
如果启用ssl,则端口将为50470。
hdfs namenode -format
不应该从节点运行,因为它格式化了namenode,并且会丢失所有内容。ohtdti5x3#
可能,webhdfs服务没有在您指定的主机上运行。您可以检查集群以查看哪个主机正在运行webhdfs服务。
bvn4nwqk4#
格式化namenode多次解决了这个问题。