hadoop:无法使用python连接到hdfs(hadoop)

3mpgtkmj  于 2021-05-31  发布在  Hadoop
关注(0)|答案(1)|浏览(760)

我正在尝试从windows10使用pythonjupyter工具连接到ubuntu的vm中的hdfs。有人能帮我解决下面的连接错误吗。谢谢您。
使用的软件包:pywebhdfs ubuntu 18.0.4 windows 10
'''

from pywebhdfs.webhdfs import PyWebHdfsClient
from pprint import pprint

HDFS_CONNECTION = PyWebHdfsClient(host='localhost',port='9000', user_name='root-sai')

HDFS_CONNECTION.list_dir('hdfs"//localhost:9000/New')

''' error:-

ConnectionError: HTTPConnectionPool(host='localhost', port=9000): Max retries exceeded with url: /webhdfs/v1/hdfs%22//localhost%3A9000/New?op=LISTSTATUS&user.name=root-sai (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000250AB1FF438>: Failed to establish a new connection: [WinError 10061] No connection could be made because the target machine actively refused it'))
k4emjkb1

k4emjkb11#

webhdfs端口与rpc端口不同。默认情况下,它是 50070 .
如果未启用webhdfs(默认情况下,这是启用的),请在中添加此属性 hdfs-site.xml ```

dfs.webhdfs.enabled
true

您可以通过调用 `curl` 请求。
测试 `/tmp` 目录已存在,请更新 `user.name` 按要求。

curl -i "http://localhost:50070/webhdfs/v1/tmp?user.name=hadoop-user&op=GETFILESTATUS"

初始化 `PyWebHdfsClient` ,

HDFS_CONNECTION = PyWebHdfsClient(host='localhost',port='50070', user_name='root-sai')

HDFS_CONNECTION.list_dir('/New')

相关问题