Questa potrebbe sembrare una domanda stupida ma in Hadoop supponiamo che il blocco sia X (in genere 64 o 128 MB) e un file locale sia Y (dove Y è minore di X). Ora quando copio il file Y sull'HDFS lo consuma un blocco o credi di creare blocchi di dimensioni più piccole?Problema di dimensione del blocco di Hadoop e dimensione del file?
risposta
Un blocco viene consumato da Hadoop. Ciò non significa che la capacità di archiviazione sarà consumata in modo equivalente.
L'uscita durante la navigazione sul web HDFS da assomiglia a questo:
filename1 file 48.11 KB 3 128 MB 2012-04-24 18:36
filename2 file 533.24 KB 3 128 MB 2012-04-24 18:36
filename3 file 303.65 KB 3 128 MB 2012-04-24 18:37
si vede che ogni dimensione del file è inferiore rispetto alla dimensione del blocco, che è di 128 MB. Questi file sono in KB. La capacità HDFS viene consumata in base alle dimensioni effettive del file, ma un blocco viene consumato per file.
Il numero di blocchi disponibili dipende dalla capacità dell'HDFS. Stai sprecando blocchi perché li esaurirai prima di utilizzare tutta la capacità di archiviazione effettiva. Ricorda che Unix filsystem ha anche il concetto di blocchi ma è un numero molto piccolo di circa 512 byte. Questo concetto è invertito in HDFS dove la dimensione del blocco è mantenuta più grande intorno a 64-128 MB.
L'altra questione è che quando si esegue mappa/ridurre i programmi cercherà di deporre le uova mapper per blocco così in questo caso, quando si elaborano tre file di piccole dimensioni, si può finire per la deposizione delle uova tre mapper di lavorare su di essi alla fine. Questo spreca risorse quando i file sono di dimensioni più ridotte. Aggiungete anche latenza dato che ogni mappatore impiega tempo per spawn e quindi alla fine funziona su un file di dimensioni molto ridotte. Devi compattarli in file più vicini a blocchi per sfruttare i mapper che lavorano su un numero minore di file.
Ancora un altro problema con numerosi file di piccole dimensioni è che carica il namenode che mantiene la mappatura (metadati) di ogni blocco e mappatura del blocco nella memoria principale. Con file più piccoli, si riempie questa tabella più velocemente e sarà richiesta più memoria principale man mano che i metadati aumentano.
Leggi il seguente riferimento:
- 1. Modifica Dimensione blocco dei file esistenti in Hadoop
- 2. Dimensione blocco file system
- 3. Come ottenere la dimensione del file
- 4. Qual è la dimensione del blocco del filesystem iphone?
- 5. video calcolo bitrate e dimensione del file
- 6. gitignore per dimensione del file?
- 7. Scarica la dimensione del blocco di sistema in Java
- 8. la dimensione del carattere influisce sull'altezza dell'elemento del blocco?
- 9. Come modificare la dimensione del pulsante del file di input?
- 10. Div Dimensione Dimensione del contenuto automatica
- 11. dimensione della matrice e la dimensione del puntatore carattere carattere
- 12. La dimensione del carattere * è uguale alla dimensione di int *?
- 13. Python ftplib Dimensione blocco ottimale?
- 14. Dimensione del punto 'base' di controllo in ggplot aes (dimensione)
- 15. PhpStorm dimensione del testo
- 16. Ottenere la dimensione del file in Haskell
- 17. Unix trova la dimensione media del file
- 18. NSFileManager - Controlla la dimensione del file?
- 19. javascript: dimensione del file scaricato diversa dalla lunghezza del contenuto
- 20. Impossibile modificare la dimensione del blocco in BorderLayout
- 21. quale dimensione massima del blocco RSA per codificare?
- 22. La dimensione del file PHP è invariata dopo l'aggiunta di
- 23. Ottimizzazione dimensione del pool di thread
- 24. Dimensione massima del pacchetto Webpack
- 25. archivio php zip memoria, ram e dimensione massima del file
- 26. Dimensione dell'immagine GDI + .NET - limitazioni del codec del file
- 27. Attenzione: "Min Dimensione carattere maggiore dimensione del carattere corrente"
- 28. Asp.Net Controllare la dimensione del file prima del caricamento
- 29. Come caricare la dimensione del file prima del caricamento
- 30. Problema nell'adattare la dimensione della cella excel alla dimensione del contenuto quando si utilizza apache poi