Escolar Documentos
Profissional Documentos
Cultura Documentos
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