Introdução

Augusto Berwaldt
Apache Flume
Published in
2 min readOct 26, 2018

O que é o Apache Flume ?

  • O Apache Flume é um serviço que permite coletar, agregar e mover grandes quantidade de dados em um ambiente distribuído.
  • O Apache Flume foi inicialmente desenvolvido pela empresa Cloudera.

Em 2012, Flume passou a ser um projeto top level na Apache Software Foundation.

Objetivo

O objetivo principal do Apache Flume é ingerir dados de eventos no HDFS (Hadoop Distributed File System) de forma simples e automatizada.

Porem ele pode ser utilizado em diversos cases. Como por exemplo, ele pode ser usado para transportar grandes quantidades de dados, como os gerados em social media, e-mails , logs e qualquer fonte de dados possível.

Requisitos do sistema para rodar flume:

  • Java Runtime Environment — Java 1.8 ou posterior.
  • Memória — Memória suficiente para configurações usadas source.
  • Espaço em disco — espaço em disco suficiente para configurações usadas por channels.
  • Permissões de Diretório — Permissões de Leitura / Gravação para diretórios usados ​​pelo agente

Modelo de Fluxo de Dados

Modelo de fluxo de dados

Source: responsável pela entrada de dados;

Channel: armazena os dados que passam do source para o sink. Seu comportamento é parecido com uma fila;

Sink: responsável por enviar os dados ao destino/ saída. A saída pode ser outro agente Flume.

O Flume suporta os seguintes mecanismos para ler os dados:

  • Avro : O Avro é uma chamada de procedimento remoto e uma estrutura de serialização de dados desenvolvida dentro do projeto Hadoop do Apache.
  • Thrift : É uma estrutura de chamada de procedimento remoto (RPC) para, trabalhar com linguagens (Facebook).
  • Syslog : É um padrão criado pela IETF para a transmissão de mensagens de log em redes IP.

Netcat: É uma ferramenta de rede, para realizar rastreamento de portas ou realizar transferências de arquivos bit a bit entre os equipamentos

Exemplos de arquitetura

--

--