Apache Flume - Flusso di dati

Flume è un framework utilizzato per spostare i dati di registro in HDFS. Generalmente eventi e dati di registro vengono generati dai server di registro e questi server hanno agenti Flume in esecuzione su di essi. Questi agenti ricevono i dati dai generatori di dati.

I dati in questi agenti verranno raccolti da un nodo intermedio noto come Collector. Proprio come gli agenti, a Flume possono esserci più collezionisti.

Infine, i dati di tutti questi raccoglitori verranno aggregati e inviati a un archivio centralizzato come HBase o HDFS. Il diagramma seguente spiega il flusso di dati in Flume.

Flusso multi-hop

All'interno di Flume possono esserci più agenti e prima di raggiungere la destinazione finale, un evento può viaggiare attraverso più di un agente. Questo è noto comemulti-hop flow.

Flusso a ventaglio

Il flusso di dati da una sorgente a più canali è noto come fan-out flow. È di due tipi:

  • Replicating - Il flusso di dati in cui i dati verranno replicati in tutti i canali configurati.

  • Multiplexing - Il flusso di dati in cui i dati verranno inviati a un canale selezionato menzionato nell'intestazione dell'evento.

Flusso fan-in

Il flusso di dati in cui i dati verranno trasferiti da molte origini a un canale è noto come fan-in flow.

Gestione dei guasti

In Flume, per ogni evento, avvengono due transazioni: una al mittente e una al destinatario. Il mittente invia eventi al destinatario. Subito dopo aver ricevuto i dati, il destinatario effettua la propria transazione e invia un segnale di "ricezione" al mittente. Dopo aver ricevuto il segnale, il mittente impegna la sua transazione. (Il mittente non eseguirà il commit della transazione finché non riceve un segnale dal destinatario.)