我正在尝试使用Windows10中的python jupyter工具连接到具有Ubuntu的VM中的HDFS。任何人都可以通过以下连接错误帮助我。谢谢。
使用的软件包:-pywebhdfsUbuntu版本:-18.0.4Windows 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')
'''错误:-
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'))
webhdfs端口与RPC端口不同。默认情况下,它是50070
。
如果未启用webhdfs(默认情况下已启用),请在hdfs-site.xml
中添加此属性
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
您可以通过调用curl
请求来测试是否启用了webhdfs。
测试/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')