2013-08-28 29 views
20

Questo è quello che ho visto sul Web UI di recenteChe cosa significa esattamente non DFS utilizzato?

Configured Capacity  : 232.5 GB 
DFS Used : 112.44 GB 
Non DFS Used : 119.46 GB 
DFS Remaining : 613.88 MB 
DFS Used% : 48.36 % 
DFS Remaining% : 0.26 % 

e io sono così confusa che i non-DFS usate occupa più della metà della capacità,

che credo si intende metà dello storage Hadoop è sprecato

Dopo aver passato una ricerca senza senso, ho appena formattato il namenode e ho iniziato da zero.

E poi ho copiato un enorme file di testo (circa 19gigabyte) da locale a HDFS (con esito positivo).

Ora l'interfaccia utente dice

Configured Capacity : 232.5 GB 
DFS Used  : 38.52 GB 
Non DFS Used  : 45.35 GB 
DFS Remaining : 148.62 GB 
DFS Used% : 16.57 % 
DFS Remaining% : 63.92 % 

prima di copiare, DFS, usato e non DFS Usato erano entrambi 0.

Poiché DFS Used è circa il doppio della dimensione del file di testo originale e ho configurato 2 copia,

Immagino che DFS Used sia composto da 2 copie di originale e meta.

Tuttavia, non ho ancora idea di dove sia stato utilizzato DFS non utilizzato e perché questo richiede più di una captità rispetto a DFS Used.

Cosa succede? Ho fatto errore?

risposta

25

"Non DFS usati" è calcolato seguente formula:

non DFS Usato = Capacità Configurato - dello spazio residuo - DFS Usato

E 'ancora confusa, almeno per me.

Perché Capacità configurata = Spazio su disco totale - Spazio riservato.

Così non DFS utilizzato = (totale di spazio su disco - Spazio riservato) - Spazio rimanente - DFS Usato

Facciamo un esempio. Supponendo che abbia un disco da 100 GB e imposto lo spazio riservato (dfs.datanode.du.reserved) a 30 GB.

Nel disco, il sistema e altri file utilizzati fino a 40 GB, DFS utilizzati 10 GB. Se si esegue df -h , lo spazio disponibile è 50 GB per quel volume del disco.

In HDFS utente web, mostrerà

non DFS utilizzato = 100 GB (totale) - 30 GB (Reserved) - 10 GB (DFS usato) - 50GB (residuo) = 10 GB

Quindi in realtà significa che inizialmente si è configurato per riservare 30G per l'utilizzo non dfs e 70 G per HDFS. Tuttavia, risulta che l'utilizzo di non dfs supera la prenotazione di 30G e occupa uno spazio di 10 GB che dovrebbe appartenere a HDFS!

il termine "non DFS usato" in realtà dovrebbe essere rinominato a qualcosa come "Quanta capacità DFS configurata sono occupati da non DFS utilizzare"

E uno dovrebbe smettere di cercare di capire il motivo per cui i non DFS utilizzano sono così in alto dentro hadoop.

Un comando utile è lsof | grep delete, che consente di identificare i file aperti che sono stati eliminati. A volte i processi di Hadoop (come hive, yarn e mapred e hdfs) possono mantenere un riferimento a quei file già eliminati. E questi riferimenti occuperanno spazio su disco.

Anche du -hsx * | sort -rh | head -10 consente di elencare le prime dieci cartelle più grandi.

+0

Posso svuotare dati non-dfs? Se sì come? – Mahesha999

+0

@ Mahesha999: prova a riavviare il datanode. – kholis

7

Non DFS utilizzato è qualsiasi dato nel file system dei nodi di dati che non è in dfs.data.dirs. Ciò include i file di registro, l'output di shuffle mapreduce e le copie locali dei file di dati (se li si inserisce in un nodo dati). Usa du o uno strumento simile per vedere cosa sta occupando lo spazio nel tuo filesystem.

+2

Questo non è corretto, specialmente quando 'dfs.data.dirs' si trova su filesystem separati da quello di'/'. La definizione corretta è: qualsiasi dato che non è scritto da HDFS negli stessi filesystem come 'dfs.data.dirs'. In altre parole, se si usano i comandi di 'hdfs dfs' per copiare i dati, quindi" DFS usage ", e se si usa il comando' cp' per copiare i file in 'dfs.data.dirs', allora diventerà" non- Utilizzo DFS ". – haridsv

+2

Posso svuotare dati non-dfs? Se sì come? – Mahesha999

1

La definizione semplificata corretta è: "Tutti i dati che non è stato scritto da HDFS nello stesso file system (s) come il dfs.data.dirs In altre parole, se si utilizza hdfs dfs i comandi per copiare i dati, finisce sotto dfs.data.dirs ma poi. è considerato "utilizzo DFS" e se si utilizza il comando regolare cp per copiare i file in dfs.data.dirs, diventerà "utilizzo non DFS"

0

I non-dfs saranno alcuni file cache che verranno archiviati da il gestore di nodi È possibile controllare il percorso nella proprietà yarn.nodemanager.local-dirs nel sito filato.xml

È possibile fare riferimento a il valore predefinito yarn-site.xml per i dettagli.

Problemi correlati