2016-07-26 7 views
0

In Docker zu schaffen, ich will eine Datei kopieren README.md aus einem bestehenden Verzeichnis /opt/ibm/labfiles auf einen neuen /input/tmp. Ich versuche diesBash nicht in der Lage Verzeichnis

hdfs dfs -put /opt/ibm/labfiles/README.md input/tmp 

ohne Wirkung, weil es scheint, keine/Eingabe-Ordner im Stamm zu sein. Also versuche ich, es zu schaffen:

hdfs dfs -mkdir /input 
mkdir:'/input': File exists 

Allerdings, wenn ich ls gibt es keine Eingabedatei enter image description here oder Verzeichnis enter image description here

Wie kann ich einen Ordner erstellen und kopieren Sie die Datei? Vielen Dank!!

+0

Sie sind verwirrt mit dem, was ist HDFS und lokales Dateisystem –

+1

Und Sie verwenden Spark-Shell nirgends in der Frage, also habe ich –

Antwort

1

Versuchen Sie hdfs dfs -ls /, wenn Sie sehen möchten, gibt es einen Eingabeordner, der in HDFS im Stamm vorhanden ist.

Sie können nicht cd in ein HDFS Verzeichnis

Es ist auch erwähnenswert, dass der führende Schrägstrich wichtig ist. Mit anderen Worten,

Dies wird versuchen, die Datei in HDFS bei /user/<name>/input/tmp

hdfs dfs -put /opt/ibm/labfiles/README.md input/tmp 

zu setzen Während dies die Datei an der Wurzel des HDFS setzt

hdfs dfs -put /opt/ibm/labfiles/README.md /input/tmp 
+0

editiert. Vielen Dank, mit Ihrer Hilfe kann ich sehen, dass ich die Ordner korrekt erstellt habe. Ich konnte jedoch die README.md-Datei dort nicht kopieren. –

+0

Nun, ohne den führenden Schrägstrich zum Eingabeverzeichnis, müssen Sie auch den Benutzerordner erstellen. Normalerweise werfe ich beim Testen einfach Dateien in '/ tmp'. Weniger Buchstaben zum Tippen und es ist garantiert da zu sein –