In questo tutorial di MapReduce, discuteremo il confronto tra MapReduce InputSplit e Blocks in Hadoop . In primo luogo, vedremo cosa sono i blocchi di dati HDFS accanto a cosa è Hadoop InputSplit.
Quindi vedremo la saggia differenza tra InputSplit e Blocks. Infine, discuteremo anche l'esempio di Hadoop InputSplit e Data block in HDFS.
Introduzione a InputSplit e Blocks in Hadoop
Discutiamo prima cosa sono i blocchi dati HDFS e cos'è Hadoop InputSplit uno per uno.
1. Che cos'è un blocco in HDFS?
Hadoop HDFS dividere file di grandi dimensioni in piccoli blocchi noti come blocchi. Contiene una quantità minima di dati che possono essere letti o scritti. HDFS memorizza ogni file come blocchi.
L'applicazione Hadoop distribuisce il blocco di dati su più nodi. Il client HDFS non ha alcun controllo sul blocco come la posizione del blocco, il Namenode decide tutte queste cose.
2. Che cos'è InputSplit in Hadoop?
Rappresenta i dati che il singolo mapper processi. Quindi il numero di attività della mappa è uguale al numero di InputSplits. Il framework si divide in record, che elabora il mapper.
Inizialmente i file di input memorizzano i dati per il lavoro MapReduce. L'input di un file risiede in genere in HDFS InputFormat descrive come dividere e leggere i file di input. InputFormat è responsabile della creazione di InputSplit.
Confronto tra InputSplit e blocchi in Hadoop
Discutiamo ora la saggia differenza tra InputSplit e Blocks in Hadoop Framework.
1. Rappresentazione dei dati
- Blocca – HDFS Block è la rappresentazione fisica dei dati in Hadoop.
- InputSplit – MapReduce InputSplit è la rappresentazione logica dei dati presenti nel blocco in Hadoop. È fondamentalmente utilizzato durante l'elaborazione dei dati nel programma MapReduce o in altre tecniche di elaborazione. La cosa principale su cui concentrarsi è che InputSplit non contiene dati effettivi; è solo un riferimento ai dati.
2. Taglia
- Blocca – Per impostazione predefinita, la dimensione del blocco HDFS è 128 MB che puoi modificare secondo le tue esigenze. Tutti i blocchi HDFS hanno le stesse dimensioni tranne l'ultimo blocco, che può essere della stessa dimensione o inferiore. Il framework Hadoop suddivide i file in blocchi da 128 MB e quindi li archivia nel file system Hadoop.
- InputSplit – La dimensione di InputSplit per impostazione predefinita è approssimativamente uguale alla dimensione del blocco. È definito dall'utente. Nel programma MapReduce l'utente può controllare la dimensione della divisione in base alla dimensione dei dati.
3. Esempio di Block e InputSplit in Hadoop
Supponiamo di dover archiviare il file in HDFS. Hadoop HDFS memorizza i file come blocchi. Il blocco è l'unità di dati più piccola che può essere archiviata o recuperata dal disco.
La dimensione predefinita del blocco è 128 MB. Hadoop HDFS suddivide i file in blocchi. Quindi memorizza questi blocchi su diversi nodi nel cluster.
Ad esempio, abbiamo un file di 132 MB. Quindi HDFS spezzerà questo file in 2 blocchi.
Ora, se vogliamo eseguire un'operazione MapReduce sui blocchi, non verrà elaborata. Il motivo è che il blocco 2 è incompleto. Quindi, InpuSplit risolve questo problema.
MapReduce InputSplit formerà un raggruppamento logico di blocchi come un unico blocco. Poiché InputSplit include una posizione per il blocco successivo e l'offset di byte dei dati necessari per completare il blocco.
Conclusione
Quindi, InputSplit è solo un blocco logico di dati, ovvero ha solo le informazioni sull'indirizzo o sulla posizione dei blocchi. Mentre Block è la rappresentazione fisica dei dati.
Ora sono sicuro che hai una comprensione più chiara dei blocchi di dati InputSplit e HDFS dopo aver letto questo blog. Se trovi altre differenze tra InputSplit e Blocks, faccelo sapere nella sezione commenti.