Skip to content

thiagohdaqw/Eleicoes

Repository files navigation

Introdução

Como forma de melhorar os conhecimentos relacionados a programação paralela e distribuída, este presente repositório visa apresentar uma solução para leitura e processamento de dados advindos da rede social Twitter e exibir os dados e estatísticas de forma gráfica, utilizando para isso o Apache Spark, Apache Kafka, ElasticSearch e Kibana.

Pre-requisitos

Screenshots

wordCount stats eleicao

Instalação

1. Instale as dependencias

$ pip install -r requirements.txt

2. Kafka ElasticSearch Connector

  • copie as libs de kafka-libs para $KAFKA_HOME/libs
$ mkdir $KAFKA_HOME/libs
$ cp kafka-libs/* $KAFKA_HOME/libs
  • copie os arquivos de configuracao para o Kafka
$ cp config/kafka/* $KAFKA_HOME/config/

3. Configurações de Ambiente

  • Configure o token de autenticação do twitter na variavel de ambiente TWITTER_BEARER_TOKEN
  • Insira as credenciais do Elasticsearch em $KAFKA_HOME/config/elasticsearch-connect.properties nas chaves connection.username e connection.password ou desative a autenticação do elasticsearch setando para false as chaves xpack.security.enabled e xpack.security.enrollment.enabled em $ELASTICSEARCH_HOME/config/elastisearch.yml
  • Configure a url do Spark master na varivel SPARK_MASTER e do Kafka na variavel KAFKA_SERVER como variaveis de ambiente, o .env.example mostra exemplos.
  • É recomendado limitar a quantidade máxima de memoria ram do elasticsearch, é possivel realizar isso no arquivo $ELASTICSEARCH_HOME/config/jvm.options nas chaves -Xms e -Xmx.

Uso

1. Inicie o ambiente

# KAFKA
$ $KAFKA_HOME/bin/zookeeper-server-start.sh -daemon config/zookeeper.properties          
$ $KAFKA_HOME/bin/kafka-server-start.sh -daemon config/server.properties
$ $KAFKA_HOME/bin/connect-standalone.sh config/connect-standalone.properties config/elasticsearch-connect.properties

# SPARK
$ $SPARK_HOME/sbin/start-all.sh

# Elasticsearch e Kibana
$ $ELASTISEARCH_HOME/bin/elasticsearch
$ $KIBANA_HOME/bin/kibana

2. Kibana

  • Importe o config_kibana.ndjson na pagina de Saved Objectsdo Kibana.
  • Va para a seção de visualização e visualize o dashboard.

3. Predição e Contagem de Palavras

  • Inicie os Jupyter Notebooks predict.ipynb e wordCount.ipynb até a seção de Sink.

Referências

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published