Mind map
Aula 05 - Biblioteca MapReduce

Mapa mental: Biblioteca MapReduce
Map content
Aula 05 - Biblioteca MapReduce
Programação
- Programa
- Conjunto de instruções (algoritmo) que um computador segue para realizar uma tarefa
- Programador
- Profissional que cria algoritmos para o computador realizar uma tarefa
- Problema
- Solução
- Linguagens de Programação
- Criadas para facilitar a tarefa de programação. Permite criar algoritmos com uma linguagem mais compreensível por humanos e faz a tradução do código para linguagem de máquina.
- Java
- Criada em 1991 por James BIG DATA Gosling • Lançada pela primeira vez pela Sun Microsystems em 1995 • Inicialmente criada para ser utilizada em dispositivos embarcados • Adquirida pela Oracle Corporation em 2010 https://www.oracle.com/java/ • Sintaxe baseada na linguagem de programação C BIG DATA • Segue o paradigma de orientação a objetos • Utilizada para desenvolvimento Web, aplicações móveis e Desktop
- Características
- Java permite o encapsulamento BIG DATA dos dados • Esconde detalhes da implementação de um objeto • O código cliente pode usar apenas a interface para a operação
- Permite que o código fique bem organizado BIG DATA • A manutenção é mais fácil e menos custosa • Permite a alteração do código sem alterar o código do cliente • Permite executar o mesmo código em diversos sistemas operacionais
- JVM - Java Virtual Machine BIG DATA • Manipula todos os detalhes de baixo nível para que o programador possa apenas escrever um programa e executá-lo em uma variedade de sistemas operacionais. • Auxilia o gerenciamento de memória e fornece informações de depuração, entre outras coisas.
- Que ferramenta utilizar para programar em Java? BIG DATA • Editor de texto – Bloco de notas, Gedit, Notepad++ • IDE - Integrated Development Environment ou Ambiente de Desenvolvimento Integrado – NetBeans, Eclipse, IntelliJ IDEA
- Programa
Biblioteca Hadoop
- Conjunto de classes que podem ser herdadas para utilização de funcionalidades pré-definidas O conjunto de classe é dividido nos seguintes componentes:
- Hadoop Common:
- : funcionalidades comuns para todas as aplicações Hadoop
- Hadoop Distributed File System (HDFS):
- classes para manipulação do Sistema de arquivos do Hadoop
- Hadoop MapReduce:
- classes para o processamento das aplicações MapReduce
- Hadoop YARN:
- classes para o gerenciamento de jobs e recursos do cluster
- Hadoop Common:
- Implementação MapReduce
- 1 - Implementar as classes da aplicação
- Serão implementadas 3 classes:ContaPalavrasMap.java ContaPalavrasReduce.java ContaPalavrasDriver.java
- Classe mapper Contar palavras
- Exemplos de objetos do tipo BIG DATA InputFormat • TextInputFormat – Default, lê cada linha terminada com “\n” como sendo um valor • FileInputFormat – Classe abstrata usada para InputFormats baseados em arquivos • KeyValueTextInputFormat – Determina linhas por meio de um separador (tab por padrão)
- • Chaves e valores são objetos Java • As chaves são objetos que implementam a interface WritableComparable • Os valores são objetos que implementam a interface Writable – Exemplos: IntWritable, LongWritable, FloatWritable, Text...
- classe driver
- Como os dados são enviados às tarefas BIG DATA Map? • Especificado por um objeto InputFormat • O formato de envio deve ser especificado na classe driver • Deve ser especificado a localização dos dados de entrada • Esse objeto determina como os dados de entrada serão divididos
- Classe reducer
- Reduz um conjunto de valores intermediários que compartilham uma chave para um conjunto menor de valores.
- Neste exemplo conta a quantidade de vezes que uma palavra aparece no texto.
- int soma = 0; for (IntWritable val : values) { soma += val.get(); } context.write(key, new IntWritable(soma));
- Neste exemplo conta a quantidade de vezes que uma palavra aparece no texto.
- https://hadoop.apache.org/docs/r2.7.0/api/org/apache/hadoop/mapreduce/Reducer.html
- Reduz um conjunto de valores intermediários que compartilham uma chave para um conjunto menor de valores.
- Classe mapper Contar palavras
- Serão implementadas 3 classes:ContaPalavrasMap.java ContaPalavrasReduce.java ContaPalavrasDriver.java
- 2 - Gerar um arquivo JAR da aplicação
- Na Ide, neste caso no eclipse, exporta o arquivo no formato jar
- define o caminho para salvar:
- Definir o seguinte caminho: /home/training/Documents/contapalavras.jar
- define o caminho para salvar:
- Na Ide, neste caso no eclipse, exporta o arquivo no formato jar
- 3 - Executar o JAR no ambiente Hadoop
- Executar o jar contapalavras.jar, passando como parâmetro o diretório de entrada input_cp e um diretório de saída output_cp.
- [training@localhost ~]$ hadoop jar ~/Documents/contapalavras.jar ContaPalavrasDriver input_cp output_cp
- Executar o jar contapalavras.jar, passando como parâmetro o diretório de entrada input_cp e um diretório de saída output_cp.
- 4 - Visualizar o resultado da aplicação
- Com base nos parâmetros de saída da classe driver
- Visualizar o diretório de saída da aplicação
- [training@localhost ~]$ hadoop fs -ls output_cp
- Visualizar o diretório de saída da aplicação
- Com base nos parâmetros de saída da classe driver
- 5 - Considerações • O projeto criado pode ser utilizado como base para outras aplicações • O mesmo código pode ser executado em um cluster com milhares de máquinas • É possível criar uma aplicação com múltiplas iterações Map e Reduce • Em caso de erros, verificar os registros de log do Hadoop • Documentação do Hadoop: http://hadoop.apache.org/
- 1 - Implementar as classes da aplicação
- Conjunto de classes que podem ser herdadas para utilização de funcionalidades pré-definidas O conjunto de classe é dividido nos seguintes componentes:
Information
- Description
- Hadoop Mind Map on Aula 05 - Biblioteca MapReduce, created by Ronaldo Pimentel on 21/10/2017.
- Created by
- Ronaldo Pimentel
- Views
- 92
- Tags
- Rating