Se esegui:
hdfs dfs -copyFromLocal foo.txt bar.txt
quindi il file locale foo.txt verrà copiato nella tua directory hdfs /user/popeye/bar.txt
(dove popeye
è il tuo nome utente.) Di conseguenza, quanto segue ottiene lo stesso risultato:
hdfs dfs -copyFromLocal foo.txt /user/popeye/bar.txt
Prima di copiare qualsiasi file in hdfs, assicurati di creare prima la directory principale. Non devi inserire i file in questa directory "home", ma (1) è meglio non ingombrare "/" con tutti i tipi di file e (2) seguire questa convenzione aiuterà a prevenire conflitti con altri utenti.
Il tuo approccio è sbagliato o forse la comprensione è sbagliata
dfs.datanode.data.dir
, è dove vuoi memorizzare i tuoi blocchi di dati
Se digiti hdfs dfs -ls /
otterrai un elenco di directory in hdfs. Quindi puoi trasferire file da locale a hdfs usando -copyFromLocal
o -put
in una particolare directory o utilizzando -mkdir
puoi creare una nuova directory
Fare riferimento al collegamento sottostante per ulteriori informazioni
http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HDFSCommands.html
Come per la prima risposta, la sto elaborando in dettaglio per Hadoop 1.x
-
Supponiamo che tu stia eseguendo questo script su un modello di pseudo distribuzione, probabilmente otterrai uno o due elenchi di utenti (NameNodes) illustrati -
sul nostro modello di distribuzione completo, prima hai i diritti di amministratore per eseguire queste cose e ci sarà un numero N di elenchi di NameNode (utenti).
Quindi ora passiamo al nostro punto -
Per prima cosa raggiungi la tua home directory Hadoop e da lì esegui questo script -
bin/hadoop fs -ls /
Il risultato sarà come questo -
drwxr-xr-x - xuiob78126arif supergroup 0 2017-11-30 11:20 /user
quindi qui xuiob78126arif
è il mio nome node(master/user) e la directory NameNode(user) è -
/user/xuiob78126arif/
ora puoi andare sul tuo browser e cercare l'indirizzo -
http://xuiob78126arif:50070
e da lì puoi ottenere il Cluster Summary, NameNode Storage
, ecc.
Nota:lo script fornirà risultati solo in una condizione, se esiste almeno un file o una directory in DataNode altrimenti otterrai -
ls: Cannot access .: No such file or directory.
quindi, in tal caso, per prima cosa metti qualsiasi file di bin/hadoop fs -put <source file full path>
e lì dopo esegui bin/hadoop fs -ls /
script.
e ora spero che tu abbia capito un po' il tuo problema, grazie.