Nel nostro precedenteHadoop blog ti abbiamo fornito una descrizione dettagliata di Hadoop InputFormat e Formato Output . Ora tratteremo in dettaglio i contatori Hadoop. In questo tutorial di Hadoop discuteremo cosa sono i contatori MapReduce, quali sono i loro ruoli.
Infine tratteremo anche i tipi di contatori in Hadoop MapReduce. Come Contatore attività MapReduce, Contatori file system, Contatori FileInputFormat, Contatori FileOutputFormat, contatori lavoro in MapReduce, contatori dinamici in Hadoop.
Hadoop MapReduce
Prima di iniziare con i contatori Hadoop, impariamo prima cosa è Hadoop MapReduce?
Riduci mappa è il livello di elaborazione dati di Hadoop. Elabora grandi dati strutturati e non strutturati archiviati in HDFS. MapReduce elabora anche un'enorme quantità di dati in parallelo. Lo fa dividendo il lavoro (lavoro inviato) in una serie di attività indipendenti (sottolavoro). In Hadoop, MapReduce funziona suddividendo l'elaborazione in fasi: Mappa e Ridurre .
- Fase mappa- È la prima fase del trattamento dei dati. In questa fase, specifichiamo tutta la logica complessa/regole di business/codice costoso.
- Riduci fase- È la seconda fase di elaborazione. In questa fase, specifichiamo un'elaborazione leggera come aggregazione/somma.
Che cosa sono i contatori Hadoop?
Contatori in Hadoop sono un canale utile per raccogliere statistiche sul lavoro MapReduce. Come per il controllo di qualità o per il livello di applicazione. I contatori sono utili anche per la diagnosi dei problemi.
Un contatore rappresenta i contatori globali Apache Hadoop, definiti dal framework MapReduce. Ogni contatore in MapReduce è denominato da un "Enum". Ha anche un long per il valore.
I contatori Hadoop convalidano che:
- Legge e scrive il numero corretto di byte.
- Ha avviato ed eseguito con successo il numero corretto di attività o meno.
- I contatori convalidano anche che la quantità di CPU e memoria consumata sia appropriata o meno per il nostro lavoro e i nodi del cluster.
Tipi di contatori in MapReduce
2 tipi di contatori MapReduce sono:
- Contatori integrati
- Contatori definiti dall'utente/contatori personalizzati
1. Contatori integrati in Hadoop MapReduce
Apache Hadoop mantiene alcuni contatori integrati per ogni lavoro. Questi contatori riportano varie metriche. Ci sono contatori per il numero di byte e record. Il che ci consente di confermare che la quantità prevista di input viene consumata e viene prodotta la quantità prevista di output.
Anche i contatori Hadoop sono divisi in gruppi. Esistono diversi gruppi di contatori integrati. Ogni gruppo contiene anche contatori attività o contiene contatore lavori.
Diversi gruppi di contatori integrati in Hadoop sono i seguenti:
a) Contatore attività MapReduce
Il contatore attività raccoglie informazioni specifiche sulle attività durante il suo tempo di esecuzione. Che includono il numero di record letti e scritti.
Ad esempio il contatore MAP_INPUT_RECORDS è il contatore attività. Conta anche i record di input letti da ciascuna attività della mappa.
b) Contatori del file system
Questo contatore raccoglie informazioni come un numero di byte letti e scritti dal file system. Il nome e la descrizione dei contatori del file system sono i seguenti:
- Byte FileSystem letti – Il numero di byte letti dal filesystem.
- Byte FileSystem scritti – Il numero di byte scritti nel filesystem.
c) Contatori FileInputFormat
Questi contatori raccolgono anche informazioni su un numero di byte letti dalle attività della mappa tramite FileInputFormat.
d) Contatori FileOutputFormat
Questi contatori raccolgono anche informazioni su un numero di byte scritti da attività mappa (per lavori solo mappa) o riducono le attività tramite FileOutputFormat.
e) Contatore lavori in MapReduce
Il contatore dei lavori misura le statistiche a livello di lavoro. Non misura i valori che cambiano durante l'esecuzione di un'attività.
Ad esempio TOTAL_LAUNCHED_MAPS, conta il numero di attività mappa che sono state avviate nel corso di un lavoro. Il master dell'applicazione misura anche i contatori di lavoro.
Quindi non hanno bisogno di essere inviati attraverso la rete, a differenza di tutti gli altri contatori, compresi quelli definiti dall'utente.
2. Contatori definiti dall'utente o contatori personalizzati in Hadoop MapReduce
Oltre ai contatori integrati, Hadoop MapReduce consente al codice utente di definire una serie di contatori. Quindi incrementali come desideri nel mapper o riduttore . Come in Java per definire i contatori che utilizza, "enum ' .
Un lavoro può definire un numero arbitrario di "enumerazioni". Ciascuno con un numero arbitrario di campi. Il nome dell'enumerazione è il nome del gruppo. I campi dell'enumerazione sono i nomi dei contatori.
a) Contatori dinamici in Hadoop
I campi di Java enum sono definiti in fase di compilazione. Quindi non possiamo creare nuovi contatori in fase di esecuzione utilizzando enum. Pertanto, utilizziamo i contatori dinamici per creare nuovi contatori in fase di esecuzione. Ma il contatore dinamico non è definito in fase di compilazione.
Conclusione
Quindi, i contatori controllano se ha letto e scritto il numero corretto di byte. Counter misura anche l'avanzamento o il numero di operazioni che si verificano all'interno del lavoro MapReduce.
Hadoop mantiene anche contatori integrati e contatori definiti dall'utente per misurare i progressi che si verificano all'interno del lavoro MapReduce.
Spero che questo blog ti abbia aiutato, se hai qualche domanda relativa a Hadoop Counter, lascia un commento in una sezione qui sotto.