2009-09-10 17 views

risposta

9
hdfs dfs -rm -r "/*" 

(la risposta vecchia è stata sconsigliata)

+0

ottengo un errore di eliminazione fallito quando provo questo, posso cancellare sottodirectory, ma non la radice –

+1

'HDFS DFS -rmr' è ora deprecato e anche non funzionerà per'/'. Dovresti provare 'hdfs dfs -rm -r"/* "'. – Mehraban

10
bin/hadoop namenode -format 
+3

Watchout: i vecchi datanode esistenti non funzioneranno con questo dfs appena formattato. Vedere http://issues.apache.org/jira/browse/HDFS-107 – Leonidas

16

Hai bisogno di fare due cose:

  1. Eliminare la directory di archiviazione Hadoop principale da ogni nodo. Questa directory è definita dalla proprietà hadoop.tmp.dir nel tuo hdfs-site.xml.

  2. Riformatta NameNode:

hadoop namenode -format 

Se solo fare (2), rimuoverà solo i metadati memorizzati dal NameNode, ma non sbarazzarsi di tutto lo stoccaggio temporaneo e blocchi datanode.

+0

eliminare la directory di memorizzazione hadoop principale da ogni singolo nodo non è fattibile! – Mehraban

+0

l'esecuzione di namenode -format cancellerà tutti i metadati e renderà il cluster inutilizzabile. Questa non è un'opzione consigliabile. –

+0

Anche se un formato del namenode genererà un nuovo id di cluster per il namenode e tutti gli altri deamon non saranno in grado di comunicare con il namenode. Si prega di aggiornare la risposta per evitare disguidi. Grazie –

3

Quindi questo è quello che ho dovuto fare in passato.

1. Passare alla directory hadoop sul NameNode, quindi interrompere tutti i processi hadoop. Eseguendo lo script predefinito stop-all. Questo fermerà anche DFS. per esempio.

cd myhadoopdirectory 
bin/stop-all.sh 

2. Ora su ogni macchina del cluster (Namenodes, JobTrackers, datanodes ecc) eliminare tutti i file nella miniera di storage Hadoop principale è impostato per la cartella Temp nella cartella principale. I vostri si possono trovare nel file conf hdfs-site.xml nella proprietà hadoop.tmp.dir ad es.

cd /temp/ 
rm -r * 

3. Infine tornare al nodo del nome, e formattarlo andando nella directory di Hadoop e l'esecuzione di 'bin/Hadoop NameNode -format' esempio

cd myhadoopdirectory 
bin/hadoop namenode -format 

4. Avviare nuovamente il cluster eseguendo il seguente comando. Avvierà di nuovo anche DFS.

bin/start-all.sh 

5. E dovrebbe funzionare.

3

Si può emettere

hadoop fs -rmr/

Questo sarebbe eliminare tutte le directory e sottodirectory sotto DFS.

Un'altra opzione è quella di interrompere il cluster e quindi problema:

hadoop namenode -format 

Questo sarebbe cancellare tutti i contenuti su DFS, e quindi avviare di nuovo il cluster.

1
  1. È necessario chiamare bin/stop-all.sh per interrompere dfs e mapreduce.
  2. Elimina la directory di dati che è configurata in conf/hdfs-site.xml e conf/mapred-site.xml.
  3. Assicurarsi di aver eliminato alcuni file temporanei esistenti in/tmp dir.

Dopo tutti i precedenti passaggi, è possibile chiamare per rigenerare un dfs.

0
  1. stop si raggruppa

    ${HADOOP_HOME}/bin/stop-mapred.sh

    ${HADOOP_HOME}/bin/stop-dfs.sh

    o se il suo pseudo distribuita, semplice problema:

    ${HADOOP_HOME}/bin/stop-all.sh

  2. Format tuoi HDFS

    hadoop namenode -format