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
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));
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/