Skip to content

Projeto final de Spark sobre Campanha Nacional de Vacinação contra Covid-19, da formação de Big Data Enginner promovido pela Semantix Inc. no segundo semestre de 2021.

Notifications You must be signed in to change notification settings

cicerooficial/projeto-final-big-data-enginner-sematix

Repository files navigation

Logo Semantix Inc.

Projeto Final Spark: Big Data Enginner

  • Nome: Cícero Henrique dos Santos
  • Instituição: Semantix Academy
  • Turma: Big Data Engineer 08-21
  • Professor: Rodrigo Rebouças

Tópicos


Pré-requisitos

Para melhor compreensão e execução do projeto é necessário conhecimentos básicos (fundamentos) em: Big Data, Docker, Python, Kafka, Elastic e Spark.


Descrição do projeto

Esse projeto tem como objetivo desenvolver os conhecimentos adquiridos durante o treinamento de Big Data Enginner promovido pela Semantix Inc no segundo semestre de 2021.

O projeto é dividido em duas partes (básico e avançado) sobre o tema Campanha Nacional de Vacinação contra Covid-19.

Observação: Todas as imagens de exemplo abaixo (Visualizações) são apenas para referencias, o projeto irá ter valores diferentes e as formas de se criar tabelas com dataframe/dataset das visualizações, pode ser realizado da maneira que preferir.


Configurando o Docker em sua máquina:

A fim de facilitar o desenvolvimento das etapas do projeto, abaixo segue um passo a passo de preparação de ambiente.

Download Docker e Docker Compose:

Download Docker - Windows

Instalação Docker - Windows

  1. Verificar se o Windows está atualizado. Caso seja inferiro a 18362, clique no link ao lado para atualizar o Windows 10. Atualizar o Windows;
  2. Pesquise por Ativar ou desativar recursos do Windows e siga os passos abaixo:
    • Desativar Hyper-V;
    • Desativar Plataforma do Hipervisor do Windows;
    • Habilitar a Plataforma de Máquina Virtual;
    • Habilitar o Subsistema do Windows para Linux (WSL).
  3. Faça o Download do WSL 2 clicando no link ao lado: Download WSL 2;
  4. Acesse a Microsoft Store, e faça download e instale a distribuição Linux Ubuntu 20.04 LTS (recomendado);
  5. Instale o Docker Desktop no Windows: Docker Desktop;
    • Obs: Abra o Docker Desktop e verifique se estão habilitados o "Enable integration with my default WSL distro" e "Ubuntu-20.04" em Settings->Resource->WSL Integration.

Instalação Docker - Linux

Instalação Docker - Mac


Preparando o ambiente:

  1. Abra o terminal do WSL2 e crie um diretório para o projeto no ~$/home/<seu-nome> com o comando: mkdir projeto-final-spark
  2. Acesse o diretório cd projeto-final-spark
  3. No diretório projeto-final-spark, clone o cluster disponibilizado no treinamento: git clone https://github.com/rodrigo-reboucas/docker-bigdata.git spark
  4. Confirme se o arquivo foi baixado com o comando de listar: ls
  5. Entra na pasta spark cd spark
  6. Configure o vm.max_map_count para 262144:
    1. Digite o comando sudo nano /etc/sysctl.conf
    2. Vá até o final do arquivo e incluia o parâmetro vm.max_map_count=262144
    3. CTRL+O para salvar e CTRL+X para sair
    4. Verifique se funcionou utilizando o comando grep vm.max_map_count /etc/sysctl.conf no terminal. Obs.: Sempre que iniciar o cluster, deve-se utilizar o comando sudo sysctl -w vm.max_map_count=262144 para que os containers sejam ativos.
  7. baixe as imagens com o comando docker-compose -f docker-compose-parcial.yml pull
  8. Verifique se as imagens foram baixadas através do comando de listar docker image ls
  9. Inicie todos os serviços com o comando: docker-compose -f docker-compose-parcial.yml up -d Obs.: Cuidado para não iniciar o cluster completo (docker-compose-completo.yml), pois dependendo das congifurações da sua máquina, ficará pesado para executar.
  10. Por fim, será necessário configurar que as tabelas Hive aceitem o formato parquet.
    1. Faça downlod do arquivo .jar com o comando curl -O https://repo1.maven.org/maven2/com/twitter/parquet-hadoop-bundle/1.6.0/parquet-hadoop-bundle-1.6.0.jar
    2. Copie o arquivo para o diretório /opt/spark/jars com o comando docker cp parquet-hadoop-bundle-1.6.0.jar jupyter-spark:/opt/spark/jars

Agora sua máquina está configurada e seus arquivos estão prontos para serem utilizados no HDFS. Continue os próximos passos pelo Jupyter-Notebook acessando pelo navegador a porta http://localhost:8889/. Depois crie um arquivo de tipo PySpark chamado projeto_final_spark_nivel_basico. Neste arquivo continuaremos com os próximos passos utilizando PySpark.


Nível básico

Objetivos

  • ✅Enviar os dados para o HDFS
  • ✅Otimizar todos os dados do HDFS para uma tabela Hive particionada por município
  • ✅Criar as 3 visualizações pelo Spark com os dados enviados para o HDFS
  • ✅Salvar a primeira visualização como tabela Hive
  • ✅Salvar a segunda visualização com formato parquet e compressão snappy
  • ✅Salvar a terceira visualização em um tópico no Kafka
  • ✅Criar a visualização pelo Spark com os dados enviados para o HDFS
  • ⬜Salvar a visualização do exercício 6 em um tópico no Elastic
  • ⬜Criar um dashboard no Elastic para visualização dos novos dados enviados

Nível avançado

Objetivo

About

Projeto final de Spark sobre Campanha Nacional de Vacinação contra Covid-19, da formação de Big Data Enginner promovido pela Semantix Inc. no segundo semestre de 2021.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published