Você está na página 1de 24

Aula 4 – Funcionamento do MapReduce

Business Intelligence com Enfase em Big Data, UniRuy | Wyden

Disciplina: Processamento Massivo Paralelo Hadoop e MapReduce


Prof(a) Gabriela Mota
gbrlamota@gmail.com

1
Agenda
• MapReduce: HDFS
• MapReduce: funcionamento
• Exemplo - WordCount
• Hadoop na nuvem com IBM Cloud
• Atividade 01
• Definição do projeto final
• Considerações finais

2
MapReduce: HDFS
• Os dados são armazenados por todo o cluster
• Os programas são trazidos até os dados, não os dados até o programa
• Todo o cluster participa do sistema de arquivos
• Cada arquivo é dividido em blocos e estes são distribuídos pelo sistema de arquivos
• Cada bloco é também replicado para outros nós

3
MapReduce: HDFS

4
MapReduce: HDFS
• Arquitetura master/slave
• Um único nó mestre (JobTracker) controla a execução dos demais Jobs em múltiplos nós escravos
(TaskTrackers)
• JobTracker
• Aceita os jobs MapReduce enviados pelos clientes
• Envia as tarefas map e reduce para os nós TaskTrackers
• Mantém o processamento o mais próximo possível dos dados (fisicamente)
• Monitora as tarefas e o status dos nós TaskTrackers
• TaskTrackers
• Roda as tarefas map e reduce
• Reporta o status para o JobTracker
• Gerencia o armazenamento e transmissão de resultados intermediários

5
MapReduce: funcionamento

6
MapReduce
• Mappers
• Pequenos programas distribuídos pelo cluster, de acordo com a localização dos dados
• Manipulam uma porção dos dados de entrada, chamada de split
• Cada mapper interpreta, filtra ou transforma seu split
• Produzem pares de <key,value> agrupados

7
MapReduce
• Fase shuffle
• A saída de cada mapper é agrupada localmente pela chave (key)
• Um nó é escolhido para processar os dados de cada chave key única
• Todo esse movimento de dados é orquestrado de forma transparente pelo MapReduce

8
MapReduce
• Reducers
• Pequenos programas que agregam todos os valores (values) das chavez (keys)
dos quais é responsável
• Cada reducer escreve a saída em seu próprio arquivo

9
MapReduce
• Combiner (opcional)
• Os dados que vão para cada nó reduce são ordenados e combinados antes de irem para o nó
reduce
• Esta tarefa adianta o trabalho do nó reduce, com objetivo de reduzir o tráfego de rede entre
os nós map e reduce

10
MapReduce
• Esquema final
• Tipos de entrada e saída de dados de um job MapReduce :

(input) <k1, v1> -> map -> <k2, v2> -> combine -> <k2, v2> -> reduce -> <k3, v3> (output)

11
Exemplo - WordCount
• Vamos contar somente os animais que são grandes felinos

12
Exemplo - WordCount
• Duas tarefas de Map
• Filtrar os animais que não são grandes felinos
• Preparar o count, transformando os dados em <Text(name), Integer(1)>

13
Exemplo - WordCount
• Shuffle
• Move os dados com a mesma chave para o mesmo nó de reduce
• O número das tarefas map e reduce não precisa ser o mesmo

14
Exemplo - WordCount
• Reduce
• Agrega os valores de cada chave

15
Exemplo - WordCount
• Combiner (opcional)
• Podemos fazer uma pré-agregação na tarefa de map, antes do shuffle
• Reduz a quantidade de dados enviados pela rede
• Reduz o processamento das tarefas de reduce

16
Hadoop na nuvem com IBM Cloud
1. Crie uma conta IBM Cloud
2. Faça login na conta IBM Cloud
3. Crie um ambiente IBM Analytics Engine
• Click em "Catalog" para ir para a página de serviços IBM Cloud
• Escolha "Analytics" => "Analytics Engine", para ir para a configuração do
ambiente
• Especifique o nome da instância, como 'Hadoop-Lab“
• Selecione a região da localização
• Selecione um grupo de recursos

17
Hadoop na nuvem com IBM Cloud

18
Hadoop na nuvem com IBM Cloud

19
Hadoop na nuvem com IBM Cloud

20
Atividade 1
• Rodando um exemplo de MapReduce
• Seguir o tutorial, na parte Example: WordCount v1.0
• http://hadoop.apache.org/docs/r2.7.4/hadoop-mapreduce-client/hadoop-
mapreduce-client-core/MapReduceTutorial.html
• Os arquivos java do exemplo estão na pasta
• /usr/local/hadoop/share/hadoop/mapreduce/sources/hadoop-mapreduce-
examples-2.9.2-sources.jar

21
Definição do projeto final
• Exemplos de áreas e temas genéricos
• Tecnologia da Informação
• Serviços
• Marketing
• Indústria
• Banking
• Saúde
• Meio-Ambiente
• Governo
• Energia
• Educação

22
Material Complementar
• Tutoriais Hadoop:
• https://www.datasciencecentral.com/profiles/blogs/hadoop-tutorials
• Configurando meu primeiro cluster com Hadoop, Spark(pyspark) e
jupyter-notebook
• medium.com/@alexandrecastro_20139/de-noob-para-noob-configurando-
meu-primeiro-cluster-com-hadoop-spark-pyspark-e-jupyter-notebook-
e61062fe3450

23
Referências
• Apache Hadoop
• http://hadoop.apache.org
• MapReduce Tutorial
• http://hadoop.apache.org/docs/r2.7.4/hadoop-mapreduce-client/hadoop-
mapreduce-client-core/MapReduceTutorial.html

24

Você também pode gostar