Hadoop:无法使用python连接到HDFS(Hadoop)

问题描述 投票:1回答:1

我正在尝试使用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'))
python hadoop hdfs bigdata data-science
1个回答
0
投票

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')
© www.soinside.com 2019 - 2024. All rights reserved.