![](/img/trans.png)
[英]Python and Hadoop - fetch and write data directly to hdfs using python?
[英]Hadoop: Failed to connect to HDFS(Hadoop) using python
我正在嘗試使用 windows10 中的 python jupyter 工具連接到 HDFS,它位於 VM 中,帶有 Ubuntu。 任何人都可以幫助我解決以下連接錯誤。 謝謝你。
Package 使用: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')
''' 錯誤:-
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')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.