2016-04-02 14 views
1

Wie finde ich das Hadoop HDFS-Verzeichnis auf meinem System? Ich muss das folgende Befehl ausgeführt werden soll -Wie finde ich Hadoop hdfs Verzeichnis auf meinem System?

hadoop dfs -copyFromLocal <local-dir> <hdfs-dir> 

In diesem Befehl ich KNON nicht mein hdfs-dir.

nicht sicher, ob seine hilfreich oder nicht, aber ich lief folgenden Befehl ein und bekam diese Ausgabe -

hdfs dfs -ls 
-rw-r--r-- 3 popeye hdfs 127162942 2016-04-01 19:47 . 

In hdfs-site.xml fand ich folgenden Eintrag -

<property> 
     <name>dfs.datanode.data.dir</name> 
     <value>/hadoop/hdfs/data</value> 
     <final>true</final> 
</property> 

Ich habe versucht, laufen folgenden Befehl ein, aber es gibt Fehler -

[[email protected] try]# hdfs dfs -copyFromLocal 1987.csv /hadoop/hdfs/data 
copyFromLocal: `/hadoop/hdfs/data': No such file or directory 

FYI - ich alles auf Hortonworks tue Sandbox auf azurblauer Server.

Antwort

5

Ihr Ansatz falsch ist oder sein Verständnis falsch ist

dfs.datanode.data.dir, können Sie Ihre Datenblöcke

speichern möchten Wenn Sie hdfs dfs -ls / geben Sie Liste der Verzeichnisse in hdfs bekommen. Dann können Sie Dateien aus lokalen Transfer zum hdfs mit -copyFromLocal oder -put zu einem bestimmten Verzeichnis oder -mkdir verwenden Sie neues Verzeichnis erstellen

untenstehenden Link Weitere Informationen dazu finden

http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HDFSCommands.html

+0

Sie meinen, dass ich versuchen sollte, Dateien im Popeye-Verzeichnis zu kopieren? –

+0

Ich habe den Befehl "hdfs dfs -ls /" verwendet und konnte Dateien in das Verzeichnis kopieren, das von diesem Befehl aufgelistet wird. –

0

Wenn Sie laufen:

hdfs dfs -copyFromLocal foo.txt bar.txt 

dann wird die lokale Datei foo.txt in Ihr eigenes hdfs-Verzeichnis /user/popeye/bar.txt kopiert (popeye ist Ihr Benutzername) Als Ergebnis erreicht die folgende gleich:.

hdfs dfs -copyFromLocal foo.txt /user/popeye/bar.txt 

Bevor jede Datei in hdfs Kopieren, nur sicher sein, zuerst das übergeordnete Verzeichnis zu erstellen. Sie müssen keine Dateien in dieses "Home" -Verzeichnis legen, aber (1) besser nicht "/" mit allen Arten von Dateien durcheinander bringen, und (2) die Einhaltung dieser Konvention wird dazu beitragen, Konflikte mit anderen Benutzern zu verhindern.

1

Gemäß der ersten Antwort, ich habe es in der detaillierten bin Ausarbeitung für Hadoop 1.x -

Angenommen, Sie dieses Skript läuft auf Pseudo-Verteilungsmodell, werden Sie wahrscheinlich eine oder zwei Liste der Benutzer erhalten (NameNodes) dargestellt -

In unserem Vollverteilungsmodell haben Sie zuerst die Administratorrechte, um diese Dinge auszuführen, und es wird N Anzahl der Liste der NameNodes (Benutzer) geben.

So, jetzt wir unseren Punkt bewegen -

Erste Reichweite zu Ihrem Hadoop Home-Verzeichnis und von dort diesen Skript ausführen -

bin/hadoop fs -ls/

Ergebnis wird so -

drwxr-xr-x - xuiob78126arif supergroup   0 2017-11-30 11:20 /user 

so Hier ist xuiob78126arif mein Name Knoten (Master/Benutzer) und das NameNode (Benutzer) Verzeichnis ist -

/user/xuiob78126arif/ 

jetzt können Sie in Ihrem Browser gehen und die Adresse suchen -

http://xuiob78126arif:50070 

und von dort aus können Sie die Cluster Summary, NameNode Storage usw.

Hinweis erhalten: das Skript in einem Zustand nur Ergebnisse liefern, wenn mindestens eine Datei oder ein Verzeichnis in DataNode existieren sonst werden Sie bekommen -

ls: Cannot access .: No such file or directory. 

so, in diesem Fall, dass Sie die erste Stelle setzen jede Datei von bin/hadoop fs -put <source file full path>

und danach das Skript bin/hadoop fs -ls / ausführen.

und jetzt hoffe ich, Sie haben ein bisschen auf Ihr Problem bekommen, danke.