Tutorial do Apache Flume: fluxo de dados do Twitter



Este blog de tutorial do Apache Flume explica os fundamentos do Apache Flume e seus recursos. Ele também exibirá o streaming do Twitter usando o Apache Flume.

Neste blog tutorial do Apache Flume, vamos entender como o Flume ajuda no streaming de dados de várias fontes. Mas antes vamos entender a importância da ingestão de dados. A ingestão de dados é a etapa inicial e importante para processar e analisar dados e, em seguida, derivar valores de negócios a partir deles. Existem várias fontes das quais os dados são coletados em uma organização.

Vamos falar sobre outra razão importante pela qual Flume se tornou tão popular. Espero que você esteja familiarizado com , que está sendo amplamente utilizado na indústria, pois pode armazenar todos os tipos de dados. O Flume pode se integrar facilmente com o Hadoop e despejar dados não estruturados e semiestruturados no HDFS, complementando o poder do Hadoop. É por isso que o Apache Flume é uma parte importante do ecossistema Hadoop.





Neste blog tutorial do Apache Flume, iremos cobrir:



Começaremos este tutorial do Flume discutindo sobre o que é o Apache Flume. Seguindo em frente, entenderemos as vantagens de usar o Flume.

Tutorial do Apache Flume: Introdução ao Apache Flume

Logotipo do Apache Flume - Tutorial do Apache Flume - EdurekaApache Flume é uma ferramenta para ingestão de dados em HDFS. Ele coleta, agrega e transporta grande quantidade de dados de streaming, como arquivos de log, eventos de várias fontes, como tráfego de rede, mídia social, mensagens de e-mail, etc. para HDFS.Flume é altamente confiável e distribuído.

A ideia principal por trás do design do Flume é capturar dados de streaming de vários servidores da web para HDFS. Possui arquitetura simples e flexível baseada em fluxos de dados de streaming. É tolerante a falhas e fornece mecanismo de confiabilidade para tolerância a falhas e recuperação de falhas.



Depois de entender o que é Flume, agora vamos avançar neste blog Tutorial do Flume e entender os benefícios do Apache Flume. Em seguida, avançando, examinaremos a arquitetura do Flume e tentaremos entender como ela funciona fundamentalmente.

como usar o método tostring

Tutorial do Apache Flume: Vantagens do Apache Flume

Existem várias vantagens do Apache Flume, o que o torna uma escolha melhor em relação aos outros. As vantagens são:

  • Flume é escalável, confiável, tolerante a falhas e personalizável para diferentes fontes e sumidouros.
  • O Apache Flume pode armazenar dados em armazenamentos centralizados (ou seja, os dados são fornecidos a partir de um único armazenamento) como HBase e HDFS.
  • O canal é horizontalmente escalável.
  • Se a taxa de leitura exceder a taxa de gravação, o Flume fornece um fluxo constante de dados entre as operações de leitura e gravação.
  • O Flume fornece entrega confiável de mensagens. As transações no Flume são baseadas em canais, onde duas transações (um remetente e um receptor) são mantidas para cada mensagem.
  • Usando o Flume, podemos ingerir dados de vários servidores no Hadoop.
  • Oferece-nos uma solução fiável e distribuída e ajuda-nos a recolher, agregar e movimentar grande quantidade de conjuntos de dados como Facebook, Twitter e sites de e-commerce.
  • Isso nos ajuda a ingerir dados de streaming online de várias fontes, como tráfego de rede, mídia social, mensagens de e-mail, arquivos de log, etc. em HDFS.
  • Ele oferece suporte a um grande conjunto de tipos de fontes e destinos.

A arquitetura está capacitando o Apache Flume com esses benefícios. Agora, como sabemos as vantagens do Apache Flume, vamos seguir em frente e entender a arquitetura do Apache Flume.

Tutorial do Apache Flume: Arquitetura do Flume

Agora, vamos entender a arquitetura do Flume a partir do diagrama abaixo:

Existe um agente Flume que ingere os dados de streaming de várias fontes de dados para o HDFS. No diagrama, você pode entender facilmente que o servidor da web indica a fonte de dados. O Twitter está entre uma das fontes famosas de streaming de dados.

O agente da calha tem 3 componentes: fonte, sumidouro e canal.

    1. Fonte : Aceita os dados da linha de entrada e armazena os dados no canal.
    2. Canal : Em geral, a velocidade de leitura é mais rápida do que a velocidade de gravação. Portanto, precisamos de algum buffer para corresponder à diferença de velocidade de leitura e gravação. Basicamente, o buffer atua como um armazenamento intermediário que armazena os dados sendo transferidos temporariamente e, portanto, evita a perda de dados. Da mesma forma, o canal atua como o armazenamento local ou temporário entre a fonte de dados e os dados persistentes no HDFS.
    3. Pia : Então, nosso último componente, ou seja, Sink, coleta os dados do canal e confirma ou grava os dados no HDFS permanentemente.

Agora, como sabemos como o Apache Flume funciona, vamos dar uma olhada em uma prática onde iremos coletar os dados do Twitter e armazená-los no HDFS.

Tutorial do Apache Flume: streaming de dados do Twitter

Nesta prática, faremos streaming de dados do Twitter usando o Flume e, em seguida, armazenaremos os dados no HDFS conforme mostrado na imagem abaixo.

A primeira etapa é criar um aplicativo Twitter. Para isso, primeiro você deve ir a este url: https://apps.twitter.com/ e entre na sua conta do Twitter. Vá para criar a guia do aplicativo conforme mostrado na imagem abaixo.

Em seguida, crie um aplicativo conforme mostrado na imagem abaixo.

Depois de criar este aplicativo, você encontrará o token de chave e acesso. Copie a chave e o token de acesso. Vamos passar esses tokens em nosso arquivo de configuração do Flume para conectar a este aplicativo.

Agora crie um arquivo flume.conf no diretório raiz do flume, conforme mostrado na imagem abaixo. Como discutimos, na Arquitetura do Flume, configuraremos nossa fonte, coletor e canal. Nossa fonte é o Twitter, de onde estamos transmitindo os dados e nosso coletor é HDFS, onde estamos gravando os dados.

Na configuração da fonte, estamos passando o tipo de fonte do Twitter como org.apache.flume.source.twitter.TwitterSource. Em seguida, estamos passando todos os quatro tokens que recebemos do Twitter. Por fim, na configuração do código-fonte, estamos passando as palavras-chave sobre as quais vamos buscar os tweets.

Na configuração do coletor, vamos configurar as propriedades HDFS. Vamos definir o caminho do HDFS, o formato de gravação, o tipo de arquivo, o tamanho do lote, etc. Por último, vamos definir o canal de memória como mostrado na imagem abaixo.

Agora estamos prontos para execução. Vamos prosseguir e executar este comando:

$ FLUME_HOME / bin / flume-ng agent --conf ./conf/ -f $ FLUME_HOME / flume.conf

Depois de executar este comando por um tempo, você pode sair do terminal usando CTRL + C. Em seguida, você pode ir em frente em seu diretório Hadoop e verificar o caminho mencionado, se o arquivo foi criado ou não.

diferença java entre extends e implementa

Baixe o arquivo e abra-o. Você obterá algo conforme mostrado na imagem abaixo.

Espero que este blog seja informativo e agregue valor para você. Se você estiver interessado em aprender mais, pode passar por este que fala sobre Big Data e como o Hadoop está resolvendo desafios relacionados a Big Data.

Agora que você entendeu o Apache Flume, verifique o pela Edureka, uma empresa de aprendizagem online confiável com uma rede de mais de 250.000 alunos satisfeitos espalhados por todo o mundo. O curso Edureka Big Data Hadoop Certification Training ajuda os alunos a se tornarem especialistas em HDFS, Yarn, MapReduce, Pig, Hive, HBase, Oozie, Flume e Sqoop usando casos de uso em tempo real no varejo, mídia social, aviação, turismo, domínio financeiro.

Tem alguma questão para nós? Mencione isso na seção de comentários e entraremos em contato com você.