Zusammenfassung der Ressource
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
- 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
- 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));
- https://hadoop.apache.org/docs/r2.7.0/api/org/apache/hadoop/mapreduce/Reducer.html
- 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
- 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
- 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
- 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/