簡體   English   中英

Hadoop:無法使用 python 連接到 HDFS(Hadoop)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM