4

嗨,我正在使用 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): Max retries exceeded with url: /webhdfs/v1/user/hadoop/data/myfile.txt?op=CREATE&user.name=hadoop(由NewConnectionError(': 无法建立新连接: [Errno 115] Operation now in progress',))

4

4 回答 4

0

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

netstat -an | grep 50070 | grep LIST

请注意:

  • 如果启用 SSL,则端口将为 50470。
  • hdfs namenode -format不应从节点运行,因为它会格式化您的名称节点并且您会丢失所有内容。
于 2020-08-08T20:12:18.200 回答
0

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

hdfs namenode -format
于 2019-09-19T10:39:58.617 回答
0

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

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

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

最大重试错误

底线,我发现如果你只是设置 timeout = 1,它工作正常:

hdfs = PyWebHdfsClient(host='yourhost', port='50070', user_name='hdfs', timeout=1)

希望这也适用于你。

于 2016-03-19T06:04:02.400 回答
-1

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

于 2017-03-28T10:06:01.087 回答