gpt4 book ai didi

python-3.x - 从 pydoop 访问 hdfs 集群

转载 作者:行者123 更新时间:2023-12-05 07:21:29 28 4
gpt4 key购买 nike

我在同一个谷歌云平台上有 hdfs 集群和 python。我想从 python 访问 hdfs 集群中存在的文件。我发现使用 pydoop 可以做到这一点,但我可能正在努力为它提供正确的参数。以下是我到目前为止尝试过的代码:-

import pydoop.hdfs as hdfs
import pydoop

pydoop.hdfs.hdfs(host='url of the file system goes here',
port=9864, user=None, groups=None)

"""
class pydoop.hdfs.hdfs(host='default', port=0, user=None, groups=None)

A handle to an HDFS instance.

Parameters

host (str) – hostname or IP address of the HDFS NameNode. Set to an empty string (and port to 0) to connect to the local file system; set to 'default' (and port to 0) to connect to the default (i.e., the one defined in the Hadoop configuration files) file system.

port (int) – the port on which the NameNode is listening

user (str) – the Hadoop domain user name. Defaults to the current UNIX user. Note that, in MapReduce applications, since tasks are spawned by the JobTracker, the default user will be the one that started the JobTracker itself.

groups (list) – ignored. Included for backwards compatibility.


"""

#print (hdfs.ls("/vs_co2_all_2019_v1.csv"))

它给出了这个错误:-

RuntimeError: Hadoop config not found, try setting HADOOP_CONF_DIR

如果我执行这行代码:-

print (hdfs.ls("/vs_co2_all_2019_v1.csv"))

没有任何反应。但是这个“vs_co2_all_2019_v1.csv”文件确实存在于集群中,但在我截图时目前不可用。

我的hdfs截图如下:

HDFS structure

我拥有的凭据如下所示:

enter image description here

谁能告诉我我做错了什么?我需要在 pydoop api 中的哪个位置放置哪些凭据?或者也许有另一种更简单的方法来解决这个问题,我们将不胜感激!!

最佳答案

您尝试过以下方法吗?

import pydoop.hdfs as hdfs
import pydoop

hdfs_object = pydoop.hdfs.hdfs(host='url of the file system goes here',
port=9864, user=None, groups=None)
hdfs_object.list_directory("/vs_co2_all_2019_v1.csv")

或者简单地说:

hdfs_object.list_directory("/")

请记住,pydoop.hdfs 模块与 hdfs 类 (hdfs_object) 没有直接关系。因此,您在第一个命令中建立的连接不会在 hdfs.ls("/vs_co2_all_2019_v1.csv")

中使用

关于python-3.x - 从 pydoop 访问 hdfs 集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56883878/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com