Giter Site home page Giter Site logo

twitterstreamflink's Introduction

Fazendo um pipeline usando Twitter, Flink e ElasticSearch

Projeto criado para fazer uma implementação em scala de um dos exercícios do curso Apache Flink | A Real Time & Hands-On course on Flink . Foram adicionados algumas features a mais como filtro pela quantidade de followers, inserção no elasticsearch e filtro para tratar o json de resposta da API. Na busca de Tweets são procurar tweets com as palavras "Bolsonaro" e "Moro" devido a acontecimentos recentes em nosso cenário político.


To see this ReadMe in english click here 🇺🇸


Tecnologias

  • Scala
  • Apache Flink
  • Apache Kafka
  • Twitter API
  • ElasticSearch
  • Docker
  • Shell

Recursos necessários


Importante

  • Após criar sua conta de desenvolvedor é necessário colocar suas keys como variável de ambiente. Precisam ser exatamente esse nomes! (TWITTER_CONSUMER_TOKEN_KEY, TWITTER_CONSUMER_TOKEN_SECRET, TWITTER_ACCESS_TOKEN_KEY, TWITTER_ACCESS_TOKEN_SECRET) . [1]
  • Garanta que não há nenhum serviço rodando nas portas 2181, 5601, 9200 e 9092 em seu computador, caso contrário o docker não conseguirá subir as imagens, para contonar isto pode-se mudar a porta onde o docker entra na aplicação [2].

Como executar (Linux - Ubuntu)

  • Em seu terminal, navegue até a raíz do projeto e execute o comando "./run.sh" para começar a execução do projeto.
  • Para visualizar seus dados no ElasticSearch vá até localhost:5601, na aba "Discover", crie um index [3] e abra na aba novamente que você verá os tweets inseridos.
  • Para finalizar a execução do programa feche os terminais que abriram com o run.sh e na pasta raíz do projeto, abra o terminal e execute docker-compose down --volumes.

[1] Caso não queira colocar os valores como variável de ambiente pode-se colocar somente a String no arquivo com.github.example.util.utils na parte de configuração das keys.

val config = new twitter4j.conf.ConfigurationBuilder()
    .setOAuthConsumerKey(System.getenv("TWITTER_CONSUMER_TOKEN_KEY"))
    .setOAuthConsumerSecret(System.getenv("TWITTER_CONSUMER_TOKEN_SECRET"))
    .setOAuthAccessToken(System.getenv("TWITTER_ACCESS_TOKEN_KEY"))
    .setOAuthAccessTokenSecret(System.getenv("TWITTER_ACCESS_TOKEN_SECRET"))
    .setTweetModeExtended(true)
    .setJSONStoreEnabled(true)
    .build

[2] Na tag ports, o valor da esquerda é qual porta do seu computador você irá liberar para o docker mapear.

zookeeper:
    container_name: zookeeper
    image: wurstmeister/zookeeper
    restart: "always"
    ports:
      -  "2181:2181"

[3] Criação do index.

twitterstreamflink's People

Contributors

thiagobeppe avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.