20. MapReduce é um modelo de programação desenhado
para processar grandes volumes de dados em
paralelo, dividindo o trabalho em um conjunto de
tarefas independentes.
O leitor de entrada divide os dados em 'blocos' de
tamanhos adequados (na prática, normalmente de 16
MB para 128 MB) e o framework atribui um bloco para
cada função de mapeamento. O leitor lê os dados de
entrada de um sistema de armazenamento estável
(normalmente um sistema de arquivos distribuído ) e
gera pares chave / valor. Um exemplo comum seria ler
um diretório cheio de arquivos de texto e retornar cada
linha como um registro.
21. O modelo de programação MapReduce
consiste na construção de um programa
formado por duas operações basicas: map e
reduce. A operação de map recebe um par
chave/valor e gera um conjunto intermediário
de dados, também no formato chave/valor. A
operação de reduce é executada para cada
chave intermediária, com todos os conjuntos
de valores intermediários associados àquela
chave combinados. Em geral a operação de
map é usada para encontrar algo, e a
operação de reduce é usada para fazer a
sumarização do resultado.
22. Um exemplo de MapReduce
Vejamos um exemplo simples. Suponha que você tem cinco arquivos
e cada arquivo contém duas colunas (uma chave e um valor em
termos do Hadoop) que representam uma cidade e a temperatura
correspondente registrada nessa cidade para os vários dias de
medição. Claro que nós fizemos este exemplo muito simples assim
que é fácil de seguir. Você pode imaginar que uma aplicação real não
será tão simples, como é provável que contenha milhões ou até
bilhões de linhas, e eles podem não ser linhas bem formatadas em
tudo; Na verdade, não importa quão grande ou pequena a quantidade
de dados que você precisa para analisar, os princípios-chave que
estamos cobrindo aqui permanecem os mesmos. De qualquer
maneira, neste exemplo, a cidade é a chave e a temperatura é o valor.
Toronto, 20
Whitby, 25
Nova Iorque, 22
Roma, 32
Toronto, 4
Roma, 33
Nova Iorque, 18
23. De todos os dados coletados, queremos encontrar a temperatura
máxima para cada cidade em todos os arquivos de dados (observe
que cada arquivo pode ter a mesma cidade representada várias
vezes). Usando a estrutura MapReduce, podemos dividir isso em
cinco tarefas de mapa, onde cada mapeador trabalha em um dos
cinco arquivos e a tarefa de mapeador passa pelos dados e retorna
a temperatura máxima para cada cidade. Por exemplo, os resultados
produzidos a partir de uma tarefa de mapeador para os dados acima
ficariam assim:
(Toronto, 20) (Whitby, 25) (Nova Iorque, 22) (Roma, 33)
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37. Create a table named test with a single column
family named cf. Verify its creation by listing all
tables and then insert some values.
38. Verify the data insert by running a scan of the table as
follows