Garanta que a variável vm.max_map_count
em /etc/sysctl.conf
esteja igual a 262144
para o bom funcionamento do Elastic.
sudo sysctl -w vm.max_map_count=262144
Na raiz do projeto, inicie os serviços com o docker compose:
docker-compose up -d
Na primeira vez que instanciar os serviços, execute o script de preparação do ambiente:
sh prepare-environment.sh
Para parar os serviços, utilize:
docker-compose stop
Para iniciar os serviços, utilize:
docker-compose start
Para acessar o jupyter notebook, utilize a url: http://localhost:8889
Obs: Era de interesse desenvolver o projeto utilizando structured streaming e dar mais atenção para a estética dos resultados, assim como melhor automatizar os processos. Por contratempos da vida, não consegui tempo para terminar o projeto como gostaria até 08/08/2022 (prazo final). Porém como foi de grande aproveitamento, resolvi publicar mesmo assim. Quem sabe um dia saia algo mais interessante daqui 😉.
Todo o projeto foi desenvolvido através do jupyter notebook semantix-projeto-covid19.ipynb, a qual possui todo fluxo de execução e resultados (acesse para ver).
Foi utilizado o tópico covid19-obitos
do Kafka como entrada para o Logstash (logstash.conf), tendo como resultado de Óbitos Confirmados o seguinte Dashboard:
O arquivo de importação do dashboard acima se encontra em: input/dashboard_covidbr/export.ndjson.
Foram criados alguns scripts para apoiar a preparação do ambiente e realizar testes, são eles:
Script | Descrição |
---|---|
create-hive-database.sh | Cria o banco de dados painel_covidbr no hive-server |
create-kafka-topic.sh | Cria o tópico covid19-obitos no kafka |
fix-spark-dependencies.sh | Adiciona a dependência parquet-hadoop-bundle-1.6.0.jar jupyter |
input-to-hdfs.sh | Copia os arquivos de input/hist_painel_covidbr para o HDFS |
prepare-environment.sh | Executa todos os cripts acima, em série, na primeira vez que os containers são instanciados |
test-kafka-consumer.sh | Cria um kafka console consumer para exibir as informações do tópico covid19-obitos |
Este repositório é um fork de rodrigo-reboucas.