【问题标题】:Hadoop: Failed to connect to HDFS(Hadoop) using pythonHadoop:无法使用 python 连接到 HDFS(Hadoop)
【发布时间】:2020-07-19 23:46:15
【问题描述】:

我正在尝试使用 windows10 中的 python jupyter 工具连接到带有 Ubuntu 的 VM 中的 HDFS。任何人都可以帮助我解决以下连接错误。谢谢。

使用的包: pywebhdfs Ubuntu 18.0.4 窗户 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 webhdfs


    【解决方案1】:

    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')
    

    【讨论】:

    • 感谢您的帮助。进行上述更改后,出现错误.. {"RemoteException":{"exception":"FileNotFoundException","javaClassName":"java.io.FileNotFoundException","message":"文件不存在:/tmp "}}
    • 我相信您在尝试执行 curl 时遇到了该错误。您可以将目录从 /tmp 更改为您知道存在的其他目录。
    • 是的...''' curl -i "localhost:50070/webhdfs/v1//usr/local/Hadoop/etc/…" ''' 。错误是同一个文件不存在..请帮助..这对我的职业生涯很有价值。
    • 您应该在 hdfs 中传递一个有效目录。假设你在 hdfs 中有一个目录/New,试试curl -i localhost:50070/webhdfs/v1/New?user.name=hadoop-user&amp;op=GETFILESTATUS
    • 我更改了它 新文件夹已存在于 hdfs 中.. 但我得到了同样的错误.. 我真的希望你可以通过我的 facebook-Harsha Ragyari 与我联系来解决这个问题
    猜你喜欢
    • 2012-01-31
    • 2020-10-29
    • 1970-01-01
    • 2014-10-04
    • 2017-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-25
    相关资源
    最近更新 更多