Un blocco nel file system distribuito Hadoop memorizza più file di piccole dimensioni oppure un blocco memorizza solo un file?File piccoli e blocchi HDFS
risposta
Più file non vengono memorizzati in un unico blocco. A proposito, un singolo file può essere memorizzato in più blocchi. La mappatura tra il file e gli id di blocco è persistente nel NameNode.
Secondo la Hadoop : The Definitive Guide
differenza di un file system per un singolo disco, un file in HDFS che è minore di un unico blocco non occupa valore di un blocco pieno di storage sottostante.
HDFS è progettato per gestire file di grandi dimensioni. Se ci sono troppi file piccoli, il NameNode potrebbe essere caricato poiché memorizza lo spazio dei nomi per HDFS. Controlla questo article su come alleviare il problema con troppi file di piccole dimensioni.
Bene, è possibile farlo utilizzando il filesystem HAR (Hadoop Archive) che tenta di comprimere più file di piccole dimensioni nel blocco HDFS del file di parti speciali gestito dal filesystem HAR.
Un blocco memorizzerà un singolo file. Se il file è più grande di BlockSize (64/128/..), verrà partizionato in più blocchi con rispettivi BlockSize.
La necessità punto principale di comprendere in HDFS, file is partioned into blocks based on size
e non che ci saranno alcuni blocchi di memoria, in cui sono memorizzati file (questo è equivoco)
Fondamentalmente più file non sono memorizzati in un unico blocco (a meno che non si tratti di file Archive o Har).
La dimensione del blocco Hadoop è Hadoop Storage Concept. Ogni volta Quando si archivia un file in Hadoop, questo verrà suddiviso nelle dimensioni dei blocchi e, in base al fattore di replicazione e alla località dei dati, sarà distribuito sul cluster.
Per Dettagli:
Quando si preme un file a HDFS, esso sarà diviso in blocchi. Ogni blocco è come un singolo file con una dimensione massima come descritto dalla dimensione del blocco.
Ogni blocco conterrà un file .meta insieme ad esso, per memorizzare le informazioni sui metadati del blocco su Hadoop.
Se il file è molto piccolo, l'intero file sarà in un blocco e il blocco (un file di archiviazione) avrà le stesse dimensioni del file e un Meta File.
alcuni comandi:
- collegarsi a qualsiasi nodo di dati nel cluster [se si ha accesso;)]. Quindi vai alle directory di archiviazione per quel nodo e puoi vedere i blocchi effettivi memorizzati sul nodo dati come di seguito.
(Dir di sono come per il mio gruppo -/data2/dfs/dn /):
Dimensione blocco: 1 GB
cd/dati/DFS/dn -> corrente -> finalizzato -> subDir0 -> (qui è l'oro)
Block utilizzato solo KB di memoria per i file di piccole dimensioni o potrebbe essere, quando la dimensione del file è la mia dimensione del blocco + di qualche KB
-rw-r - r-- 1 HDFS HDFS 91K 13 Settembre 16:19 blk_1073781504
-rw-r - r-- 1 HDFS HDFS 19K 13 Settembre 16:21 blk_1073781504_40923.meta
Quando il file è più grande, allora la dimensione del blocco del blocco sarà simile a qualcosa, come di seguito
-rw-r - r-- 1 HDFS HDFS 1.0G 31 Agosto 00:03 blk_1073753814
-rw -r - r-- 1 hdfs hdfs 8.1M Aug 31 12:04 blk_1073753814_12994.meta
Spero che spiegherà il materiale di archiviazione del blocco. Se si vuole conoscere il dettaglio come i file vengono memorizzati in blocchi quindi eseguire
HDFS -blocks fsck -Locations
Fatemi sapere se ho perso qualcosa qui.
- 1. Esecuzione Map-Reduce lavoro su alcuni file/blocchi in HDFS
- 2. Unione di file hdfs
- 3. Come eliminare file da HDFS?
- 4. Trasferimento file da HDFS
- 5. Come riparare i file corrotti HDFS
- 6. Hadoop: File HDFS Scrive & Legge
- 7. Modifica fattore di replica HDFS
- 8. Recupera file da HDFS remoto
- 9. Differenza tra HDFS e NFS?
- 10. Fattore di replica ridotto HDFS
- 11. Aggiornamento di un file HDFS hadoop
- 12. Errore HDFS: "input": nessun file o directory
- 13. Scrittura di file su HDFS utilizzando Java
- 14. Pyspark: recupera file/directory sul percorso HDFS
- 15. Comportamento del parametro "mapred.min.split.size" in HDFS
- 16. Come dividere routes.rb in file più piccoli
- 17. Esiste un comando hdfs per elencare i file nella directory HDFS come da timestamp
- 18. Un grande file css vs più piccoli file css
- 19. Fattore di replica HDFS
- 20. Come dividere un file mp3 in file più piccoli?
- 21. mutex e blocchi
- 22. blocchi sincronizzati e dispatch_async
- 23. blocchi e oggetti
- 24. Come vengono scritti i dati su HDFS?
- 25. Remove Duplicate e piccoli vettori dall'elenco
- 26. Memoria File mappati e scritture atomiche di blocchi singoli
- 27. E 'possibile codificare in base64 un file in blocchi?
- 28. hdfs dfs -put con sovrascrittura?
- 29. Il modo più veloce per dividere un testo enorme in blocchi più piccoli
- 30. Write Log4j uscita per HDFS
Sai come trovare i mapping dei blocchi ai file? 'hadoop fsck/-files -blocks -locations -racks' fornisce il file alla mappatura dei blocchi ma non dice in quale directory sul filesystem reale si trova il blocco (cioè è nella sottodirectory9 o nella sottodirectory61). – Eugen
La proprietà 'dfs.datanode.data.dir' determina dove sul filesystem locale un nodo dati DFS dovrebbe memorizzare i suoi blocchi. Se questo è un elenco di directory delimitato da virgole, i dati verranno archiviati in tutte le directory con nome, in genere su dispositivi diversi. Le directory che non esistono vengono ignorate. –
No, intendevo quando i blocchi fisici sono archiviati, potrebbero essere memorizzati in 'dfs.datanode.data.dir' o in sottodirectory in quella directory (creata dal Datanode). C'è un modo per trovare quale blocco è memorizzato dove (come un file di livello superiore o all'interno di qualche sottodirectory)? – Eugen