Escolar Documentos
Profissional Documentos
Cultura Documentos
md at main · linktocaio/pspd
linktocaio /
pspd
Turma: 1
Integrantes:
Introdução
Atualmente, o termo BigData ganhou destaque no cenário acadêmico devido à sua capacidade
de processar vastas e diversificadas quantidades de dados, criando um cenário favorável para
desenvolver aplicações que auxiliam na tomada de decisões.
Nessa perspectiva, o Apache Hadoop, inspirado em tecnologias do Google, emerge como uma
plataforma em sintonia com as demandas do BigData, sendo também de código aberto e de
fácil utilização. O propósito deste projeto é proporcionar ao aluno uma vivência prática com
esta plataforma, permitindo-lhe reconhecer seus pontos positivos e entender como o
desenvolvimento de aplicações neste contexto se contrasta com abordagens mais
convencionais.
Metodologia
Inicialmente, criamos três contêineres Docker, um para o mestre e dois para os escravos,
todos com o Hadoop 3.3.6 instalado. Os containers podem ser iniciados rodando o scrip
start-container.sh. O numero de slaves criados pode ser alterada no mesmo arquivo na
variavel N.
Verificamos a interface web do cluster Hadoop, que deve listar três nós ativos, acessível
aqui
https://github.com/linktocaio/pspd/blob/main/lab1/relatorio.md 1/7
9/19/23, 8:29 PM pspd/lab1/relatorio.md at main · linktocaio/pspd
Foi observado que os arquivos podem abranger vários blocos e cada bloco será replicado
o número de vezes especificado em dfs.replication. O tamanho de tais blocos é
especificado no parâmetro dfs.block.size.Com apenas uma replicação suas gravações
serão mais rápidas, às custas do risco de perda de dados e desempenho de leitura. Suas
leituras podem ser lentas porque seus dados podem estar em um nó com problemas sem
nenhum outro bloco disponível, bem como falha no trabalho no caso de falha de apenas
um nó.
Blocos Menores: Reduzir o tamanho dos blocos pode levar a uma maior utilização do
armazenamento, pois haverá mais metadados associados a cada bloco. No entanto, isso
pode ser benéfico se você tiver muitos pequenos arquivos, pois reduzirá a fragmentação
havendo mais blocos para a distribuição. Isso pode melhorar a paralelização das tarefas.
Para evitar sobrecarga do cluster e garantir que os recursos sejam compartilhados da melhor
forma confirguramos recursos de CPU e memória no arquivo mapred-site.xml .
https://github.com/linktocaio/pspd/blob/main/lab1/relatorio.md 2/7
9/19/23, 8:29 PM pspd/lab1/relatorio.md at main · linktocaio/pspd
Limitamos a quantidade máxima de memória que as tarefas map e reduce poderiam usar
utilizando a seguinte configuração:
<property>
<name>mapreduce.map.memory.mb</name>
<value>512</value>
</property>
<property>
<name>mapreduce.reduce.memory.mb</name>
<value>512</value>
</property>
E para limitár o número máximo de núcleos de CPU que cada tarefa poderia usar adicionamos
o seguinte trecho de código usando as propriedades mapreduce.map.cpu.vcores e
mapreduce.reduce.cpu.vcores :
<property>
<name>mapreduce.map.cpu.vcores</name>
<value>2</value>
</property>
<property>
<name>mapreduce.reduce.cpu.vcores</name>
<value>4</value>
</property>
<property>
<name>mapreduce.map.output.compress</name>
<value>true</value>
</property>
<property>
<name>mapreduce.map.output.compress.codec</name>
<value>org.apache.hadoop.io.compress.SnappyCodec</value>
</property>
<property>
<name>mapreduce.output.fileoutputformat.compress</name>
<value>true</value>
</property>
<property>
<name>mapreduce.output.fileoutputformat.compress.codec</name>
https://github.com/linktocaio/pspd/blob/main/lab1/relatorio.md 3/7
9/19/23, 8:29 PM pspd/lab1/relatorio.md at main · linktocaio/pspd
<value>org.apache.hadoop.io.compress.SnappyCodec</value>
</property>
Para 1 HDFS: Number of read operations=38 HDFS: Number of write operations=2 Total
time spent by all reduce tasks (ms)=51971 Shuffled Maps =11 CPU time spent
(ms)=206600
Para 2 HDFS: Number of read operations=48 HDFS: Number of write operations=6 Total
time spent by all reduce tasks (ms)=97396 Shuffled Maps =33 CPU time spent
(ms)=236970
Para 3 HDFS: Number of read operations=63 HDFS: Number of write operations=12 Total
time spent by all reduce tasks (ms)=178163 Shuffled Maps =66 CPU time spent
(ms)=251480
cd pspd/lab1
sudo docker network create --driver=bridge hadoop
https://github.com/linktocaio/pspd/blob/main/lab1/relatorio.md 4/7
9/19/23, 8:29 PM pspd/lab1/relatorio.md at main · linktocaio/pspd
sudo docker build -t hadoop .
./start-container.sh
Assim subimos os containers docker, é esperado que voce esteja interagindo com o hadoop-
master a partir desta etapa.
./start-hadoop.sh
./run-wordcount.sh
Verificamos a interface web do cluster Hadoop, que deve listar três nós ativos, acessível (aqui)
[localhost:8088/]. Apos o termino da execução é esperado que a contagem de palavras seja
mostrada no terminal.
https://github.com/linktocaio/pspd/blob/main/lab1/relatorio.md 5/7
9/19/23, 8:29 PM pspd/lab1/relatorio.md at main · linktocaio/pspd
Foi verificado que para solucionar esse problema, é aconselhável utilizar uma solução de
orquestração, como o Apache ZooKeeper. O ZooKeeper pode ajudar a gerenciar de forma mais
eficaz a disponibilidade dos nós e a recuperação de tarefas em caso de falha.
Quando um nó slave comum é removido do cluster por meio de uma parada forçada do
contêiner Docker, o impacto no processo de MapReduce é menos severo em comparação com
o cenário anterior. No entanto, ainda há consequências, como indicado pelo registro de
mensagens de informação e erro. O sistema tenta se reconectar ao nó removido para concluir
tarefas de MapReduce em andamento. As tentativas de reconexão podem resultar em atrasos
no processamento de tarefas devido à busca do nó ausente. É importante observar que, neste
cenário, a conclusão das tarefas de MapReduce ainda é possível.
Conclusão Geral
Ao longo deste projeto, pudemos mergulhar profundamente no mundo do BigData, com ênfase
no funcionamento e configuração do Apache Hadoop. O termo BigData, amplamente debatido
no mundo acadêmico, revelou-se uma espinha dorsal fundamental para o desenvolvimento de
aplicações que buscam processar volumes significativos e variados de dados.
Ficou evidente a robustez e a flexibilidade do Hadoop em lidar com BigData, assim como os
desafios inerentes ao ajuste de seu desempenho. Além disso, experimentamos a importância
da tolerância a falhas e escalabilidade em um ambiente real, percebendo as implicações de
remover nós ativos do cluster.
https://github.com/linktocaio/pspd/blob/main/lab1/relatorio.md 6/7
9/19/23, 8:29 PM pspd/lab1/relatorio.md at main · linktocaio/pspd
Em suma, este projeto não apenas reforçou a relevância do Hadoop como uma ferramenta de
BigData, mas também destacou a necessidade de um entendimento profundo e prático para
otimizar seu desempenho em cenários variados. Aprendemos que a prática, combinada com o
conhecimento teórico, é crucial para dominar as nuances do mundo do BigData. Estamos
gratos por essa experiência valiosa e ansiosos para aplicar essas lições em futuros desafios
relacionados ao processamento de dados.
https://github.com/linktocaio/pspd/blob/main/lab1/relatorio.md 7/7