Доступ к кластеру hdfs из pydoop - PullRequest
2 голосов
/ 04 июля 2019

У меня кластер hdfs и python на одной облачной платформе Google. Я хочу получить доступ к файлам, присутствующим в кластере hdfs, из python. Я обнаружил, что с помощью 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

Кто-нибудь может сказать мне, что я делаю не так? Какие учетные данные мне нужно указать, где в API pydoop? Или, может быть, есть еще один более простой способ обойти эту проблему, любая помощь будет высоко ценится !!

...