Apache Flume - Fluxo de Dados
Flume é uma estrutura usada para mover dados de log para o HDFS. Geralmente, os eventos e dados de log são gerados pelos servidores de log e esses servidores têm agentes Flume em execução neles. Esses agentes recebem os dados dos geradores de dados.
Os dados nesses agentes serão coletados por um nó intermediário conhecido como Collector. Assim como os agentes, pode haver vários coletores em Flume.
Por fim, os dados de todos esses coletores serão agregados e enviados para um armazenamento centralizado, como HBase ou HDFS. O diagrama a seguir explica o fluxo de dados no Flume.
Fluxo Multi-hop
No Flume, pode haver vários agentes e, antes de chegar ao destino final, um evento pode passar por mais de um agente. Isso é conhecido comomulti-hop flow.
Fluxo de Fan-out
O fluxo de dados de uma fonte para vários canais é conhecido como fan-out flow. É de dois tipos -
Replicating - O fluxo de dados onde os dados serão replicados em todos os canais configurados.
Multiplexing - O fluxo de dados onde os dados serão enviados para um canal selecionado que é mencionado no cabeçalho do evento.
Fluxo Fan-in
O fluxo de dados em que os dados serão transferidos de muitas fontes para um canal é conhecido como fan-in flow.
Tratamento de Falhas
No Flume, para cada evento, duas transações ocorrem: uma no emissor e outra no receptor. O remetente envia eventos ao destinatário. Logo após receber os dados, o receptor confirma sua própria transação e envia um sinal de “recebido” ao remetente. Após receber o sinal, o remetente confirma sua transação. (O remetente não confirmará sua transação até que receba um sinal do receptor.)