Voglio misurare il throughput su ciascun datanode misurando il tempo impiegato per ogni operazione di lettura/scrittura. È molto difficile leggere le milioni di funzioni e scoprire dove sta accadendo. Qualcuno potrebbe elencare la serie di chiamate fatte durante la lettura/scrittura di un blocco di dati? sto usando la versione 1.0.1. In alternativa, se esiste già un'API che misura questo al data-an, potrei usare quell'informazione.Misurazione della velocità effettiva su datanode
risposta
Le classi importanti da studiare per misurare il throughput sono FSDataOutputStream
per le scritture e FSDataInputStream
per le letture.
file letto: La prima cosa che un nodo non durante la lettura di un file è chiamata open()
sull'oggetto FileSystem
. A questo punto, sai che questo nodo inizierà a leggere a breve e puoi inserire il codice dopo che questa chiamata è tornata con successo per preparare le tue misure. La chiamata a open()
su HDFS crea un'istanza di DistributedFileSystem
che comunica con il NameNode per raccogliere le posizioni dei blocchi (ordinate in base alla prossimità del nodo di chiamata). Infine, l'oggetto torna DistributedFileSystem
FSDataInputStream
("vede" la lettura di un file) che a sua volta avvolge DFSInputStream
("vede" la lettura di blocchi, gestisce il fallimento). Le tue misurazioni saranno incluse nella chiamata read()
e close()
sullo FSDataInputStream
.
Scrittura file: Il nodo chiamerà create()
su FileSystem
. A questo punto vengono effettuati vari controlli che comprendono le autorizzazioni dei file, la disponibilità ecc., Ma al completamento con esito positivo restituisce un oggetto FSDataOutputStream
che include uno DFSOutputStream
. Lo stesso concetto si applica dove si vede una scrittura continua mentre l'altra gestisce la coerenza del fattore di replicazione (cioè una scrittura = tre scritture) e il fallimento. Analogamente a una lettura, le misure verranno incluse nell'ambito della chiamata write()
e close()
sullo FSDataInputStream
.
Per eseguire questa operazione a livello globale per tutti i nodi del cluster, è necessario eseguire l'override di questi metodi come parte della distribuzione di Hadoop che si condivide nel cluster.
Non spiega come aggregare le statistiche per ciascun nodo di dati. Non ci si può aspettare che i nodi client modifichino i singoli nodi di dati e inviino informazioni al nodo del nome. Ad ogni modo, dal momento che il mio bisogno è passato, accetterò questa risposta –
- 1. Misurazione della velocità di trasferimento file wifi in python
- 2. Velocità di misurazione via iPhone SDK
- 3. Misurazione della dimensione dell'oggetto HttpSession
- 4. Misurazione della copertura della documentazione con Doxygen
- 5. misurazione del testo su tela in scala
- 6. Misurazione della larghezza del testo da disegnare su Canvas (Android)
- 7. Come aumentare la velocità effettiva su un server NodeJS utilizzando il cluster?
- 8. Misurazione su un sito web
- 9. Hadoop: processo Datanode ucciso
- 10. Misurazione dell'intensità della luce dalla videocamera Android
- 11. Misurazione della somiglianza semantica tra due frasi
- 12. Misurazione della larghezza del testo in Qt
- 13. Misurazione della risoluzione di `std :: clock()`
- 14. "Limite di sovraccarico GC superato" su Hadoop .20 datanode
- 15. Perl: scrivi mistero della velocità?
- 16. Tempo di misurazione su richieste HTTP node.js
- 17. Misurazione della copertura della documentazione con Javadoc e Ant
- 18. Ruolo di datanode, regionerver nell'integrazione Hbase-hadoop
- 19. come disabilitare la velocità della pagina su URL specifici?
- 20. WPF controllo dimensione effettiva
- 21. jQuery: effettiva larghezza div
- 22. Utilizzo di VS2010 Profiler per la misurazione della memoria
- 23. Misurazione di un ViewPager
- 24. Chi sta conducendo indagini sulla misurazione della funzionalità e dell'usabilità?
- 25. Misurazione della distanza tra due punti Lat/Lng
- 26. Misurazione della "prossimità" negli alberi di grandi dimensioni
- 27. Risoluzione mobile effettiva
- 28. Impossibile scrivere sul datanode HDFS locale
- 29. Limitazione della velocità di rete per WebSockets
- 30. miglioramento della velocità dell'importazione del modulo Python
Per quanto riguarda il commento di taglie: Se si blacklist un nodo, non sarà più partecipare al gruppo, e così il throughput non si riprenderà mai. – likeitlikeit
Hey Bug Catcher, qualche idea sulla mia risposta qui sotto? – Engineiro
@likeitlikeit Ho fatto qualcosa sulla linea della politica esistente per i battiti del cuore: dargli tre possibilità e, se è ancora male, inseriscilo nella lista nera. Non inteso per uso pratico comunque –