Video: How to Install Hadoop on Windows 2024
Hadoop Distributed File System (HDFS) è progettato per archiviare dati su hardware economico e inaffidabile. Economico ha un suono attraente, ma solleva preoccupazioni circa l'affidabilità del sistema nel suo complesso, soprattutto per garantire l'elevata disponibilità dei dati.
Pianificando in anticipo il disastro, il cervello di HDFS ha preso la decisione di installare il sistema in modo che memorizzasse tre copie (count 'em - tre) di ogni blocco di dati.
HDFS presuppone che ogni unità disco e ogni nodo slave sia intrinsecamente inaffidabile, quindi, chiaramente, occorre fare attenzione nella scelta di dove sono memorizzate le tre copie dei blocchi di dati.
La figura mostra come i blocchi di dati dal file precedente sono a strisce attraverso il cluster Hadoop - il che significa che sono equamente distribuiti tra i nodi slave in modo che una copia del blocco sia ancora disponibile indipendentemente dal disco, nodo, o errori del rack.
Il file mostrato ha cinque blocchi dati, etichettati a, b, c, d ed e. Se osservi più da vicino, puoi vedere che questo particolare cluster è costituito da due rack con due nodi ciascuno e che le tre copie di ciascun blocco di dati sono state distribuite tra i vari nodi slave.
Ogni componente nel cluster Hadoop è visto come un potenziale punto di errore, quindi quando HDFS memorizza le repliche dei blocchi originali attraverso il cluster Hadoop, prova a garantire che le repliche dei blocchi siano archiviate in diversi punti di errore.
Per esempio, date un'occhiata al blocco A. Nel momento in cui doveva essere memorizzato, veniva scelto il nodo slave 3 e la prima copia del blocco A era memorizzata lì. Per i sistemi a rack multipli, HDFS determina quindi che le restanti due copie del blocco A devono essere archiviate in un rack diverso. Quindi la seconda copia del blocco A è memorizzata sul nodo slave 1.
La copia finale può essere memorizzata sullo stesso rack della seconda copia, ma non sullo stesso nodo slave, quindi viene memorizzata sul nodo slave 2.