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.
$ pip install -r requirements.txt
- 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/
- 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 chavesconnection.username
econnection.password
ou desative a autenticação do elasticsearch setando parafalse
as chavesxpack.security.enabled
expack.security.enrollment.enabled
em$ELASTICSEARCH_HOME/config/elastisearch.yml
- Configure a url do Spark master na varivel
SPARK_MASTER
e do Kafka na variavelKAFKA_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
.
# 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
- Importe o
config_kibana.ndjson
na pagina deSaved Objects
do Kibana. - Va para a seção de visualização e visualize o dashboard.
- Inicie os Jupyter Notebooks
predict.ipynb
ewordCount.ipynb
até a seção deSink
.
- Spark Streaming: https://spark.apache.org/docs/latest/streaming-programming-guide.html
- MLlib: https://spark.apache.org/mllib/
- Tweepy: https://docs.tweepy.org/en/stable/
- Dataset
- Stopwords: https://github.com/stopwords-iso/stopwords-pt/blob/master/stopwords-pt.txt
- Palavras Positivas:
- Palavras Negativas:
- https://aprenderpalavras.com/lista-de-palavroes-xingamentos-e-girias/
- https://kiwiask.com/ola-alguem-pode-me-dar-uma-lista-com-50-palavras-negativas-e-50-palavras-positivas-preciso-para-hoje/
- https://share-danielfeau.com/pt/a-lista-%C3%BAtil-do-escritor-de-111-adjetivos-negativos-para-descrever-uma-pessoa/
- https://br.guiainfantil.com/materias/educacao/comportamentofrases-negativas-que-desmotivam-as-criancas/
- https://segredosdomundo.r7.com/xingamentos-brasil/
- https://pt.lambdageeks.com/negative-sentence-examples/