icon picker
Construção do Ambiente de Big Data

Objetivo

Criar um ambiente de Big Data com Apache Hadoop e Spark, utilizando Docker para simular um sistema de cluster com masternodes e datanodes.

Docker Compose

Use Docker Compose para orquestrar o seu cluster Hadoop e Spark. Crie um arquivo docker-compose.yml com serviços para o Hadoop, Spark e Jupyter Notebook.Docker Compose

Dataset

Escolha do dataset pelo kaglle:

Sobre esses dados

O Ocular Disease Intelligent Recognition (ODIR) é um banco de dados oftalmológico estruturado de 5.000 pacientes com idade, fotografias coloridas do fundo do olho dos olhos esquerdo e direito e palavras-chave de diagnóstico fornecidas por médicos.
Este conjunto de dados tem como objetivo representar um conjunto ''real'' de informações de pacientes coletadas pela Shanggong Medical Technology Co., Ltd. de diferentes hospitais/centros médicos na China. Nessas instituições, as imagens do fundo são capturadas por várias câmeras no mercado, como Canon, Zeiss e Kowa, resultando em resoluções de imagem variadas. As anotações foram rotuladas por leitores humanos treinados com gerenciamento de controle de qualidade. Eles classificam o paciente em oito rótulos, incluindo:
Normal (N),
Diabete (D),
Glaucoma (G),
Catarata (C),
Degeneração macular relacionada à idade (A),
Hipertensão (H),
Miopia Patológica (M),
Outras doenças/anormalidades (O)

Hadoop Cluster

Configurando um cluster com:
Masternode (gerenciando o cluster).
Datanodes (armazenamento distribuído de dados, onde o HDFS estará configurado).

Spark

Utilizando o Apache Spark para processamento distribuído. Configure o Spark para usar o Hadoop como sistema de arquivos distribuído.

Jupyter Notebooks

Jupyter como interface para experimentos em Python. Instalaremos o PySpark para interação com o Spark.

Análise de Dados (EDA e Pré-processamento)

Para realizar uma análise exploratória de dados, pré-processamento e balanceamento de classes para o dataset de doenças oculares, você pode seguir as seguintes sugestões:

Carregar os Dados

Utilizaremos Spark para ler o dataset em formato CSV ou Parquet. Carregando os dados diretamente do HDFS(Hadoop Distributed File System ou Sistema de Arquivos Distribuído do Hadoop).

Análise Exploratória de Dados (EDA)

Distribuição das Classes: Verificando se as classes estão balanceadas.
Visualizações: Utilizaremos bibliotecas como matplotlib, seaborn ou plotly para visualizações.
Análise de Características: Identifique características que influenciam a classificação.

Pré-processamento

Redimensionamento e Normalização de Imagens
Balanceamento de Classes

Modelagem e Previsão

Para treinar modelos preditivos usando Hadoop e Spark para classificação de doenças oculares:

Modelos de Classificação

Comece com modelos clássicos, como Random Forest ou Logistic Regression.
Modelos mais complexos, como redes neurais convolucionais (CNNs).

Divisão do Trabalho: Map

O trabalho de MapReduce começa com a função Map, que divide o processamento dos dados em partes menores e distribui essas partes para os datanodes para processamento paralelo. Cada datanode faz o trabalho de mapear os dados de acordo com uma chave.
Exemplo em seu caso: Você pode dividir o conjunto de imagens em partes menores e distribuir para os datanodes, onde cada um realiza uma tarefa específica, como normalização de imagens ou extração de características.
Como funciona:
O masternode cria a lista de dados e distribui as tarefas de mapeamento para os datanodes.
O Map pode realizar uma transformação de dados, como converter imagens para uma matriz de pixels ou fazer o pré-processamento de dados (normalização, redimensionamento, etc.).

Agrupamento e Redução: Reduce

Depois que os dados são processados pelos datanodes, a função Reduce é chamada para agrupar os resultados parciais e combiná-los em um único resultado final.
Exemplo de caso: A função Reduce pode combinar os resultados parciais da classificação de doenças oculares, por exemplo, somando os votos de classificação dos diferentes datanodes (no caso de um modelo de ensemble), ou calculando a média das predições de diferentes modelos.
ensemble:
física estatística
conjunto cujos elementos são sistemas de partículas que servem para descrever um único sistema dado [Conceito de grande utilidade na física estatística, foi inicialmente proposto como uma maneira de se obter o valor médio no tempo do sistema dado tomando-se a média dos elementos do ensemble num determinado tempo.].
Como funciona:
Após o processamento no Map, os resultados são agrupados e enviados de volta ao masternode para serem consolidados.
O Reduce pode agrupar e combinar as saídas parciais dos datanodes para formar a resposta final (como a previsão ou a classe do diagnóstico da doença ocular).

Arquitetura de MapReduce no Hadoop

Masternode: O masternode coordena o processo, dividindo os dados e distribuindo as tarefas para os datanodes. Ele também coleta os resultados finais dos datanodes e envia a resposta para o usuário ou armazena no HDFS(Hadoop Distributed File System ou Sistema de Arquivos Distribuído do Hadoop).
Datanodes: Os datanodes são responsáveis pelo processamento de dados em paralelo. Cada um executa a função de mapeamento (Map) e, se necessário, a função de redução (Reduce).

Vantagens de Usar MapReduce para o Desempenho

Paralelismo: O MapReduce permite o processamento paralelo de dados distribuídos nos datanodes, o que acelera significativamente o tempo de execução, especialmente com grandes volumes de dados.
Escalabilidade: Conforme os dados crescem, você pode adicionar mais datanodes para distribuir o processamento. O Hadoop e o Spark escalam automaticamente para acomodar mais dados.
Eficiência: O processamento distribuído com MapReduce permite que o sistema utilize todos os recursos do cluster, garantindo um desempenho otimizado.

Detalhes Técnicos

Hadoop: Use o HDFS(Hadoop Distributed File System ou Sistema de Arquivos Distribuído do Hadoop) para armazenar dados distribuídos.
Spark: Configure o Spark para rodar em modo cluster.

Como Iniciar

Configuração de Docker: Crie seus containers para Hadoop e Spark com Docker Compose.
Carregar os Dados no HDFS(Hadoop Distributed File System ou Sistema de Arquivos Distribuído do Hadoop)
Pré-processamento e EDA com Spark
Treinamento do Modelo
Avaliação e Tuning
Desenvolvimento do projeto
Name
Start date
Status
Assignee
End date
Check
Priority
Notes
Like
Desenvolvedor
3/19/2025
3/26/2025
Open
1
Open
There are no rows in this table
View of Tasks for launch
Desenvolvedor
3/19/2025
3/26/2025
Check
1
Check











Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.