1. O documento apresenta uma história sobre Ryu, escolhido para analisar grandes volumes de dados do e-commerce Shadaloo usando Apache Hadoop.
2. Explica brevemente o que é Hadoop, sua arquitetura e ferramentas como HDFS, MapReduce, Hive e PIG.
3. Apresenta demonstrações práticas de como usar a sandbox Hortonworks para trabalhar com Hadoop, incluindo upload de dados, criação de tabelas Hive e execução de scripts.
2. 2
Hora do Brinde!
Em apenas 60 segundos...
Quanto a Amazon vende?
Quantos downloads de apps
por aparelhos apple?
Quantos compartilhamentos de
conteúdo no Facebook ?
Homens e mulheres no Tinder
movem seus dedos para a
esquerda e direita nas telas de
seus dispositivos?
?
?
?
?
3. 3
Thiago Santiago
Arquiteto de software, formado em
engenharia de software pela USP.
Trabalha atualmente na OCTO Technology
liderando projetos em web performance e
Big Data.
Apresentação:
thiagosantiago25
6. 6
No atual mundo captalista, M Bison, dono do maior e-
commerce mundial chamado Shadaloo, decide analisar o perfil
de todos os seus clientes; não apenas mostrando os dados
comuns do BI, mas analisar também:
- Dados de TODOS os sistemas Legados
- Dados de Navegação
- SAC e Midias Sociais.
Dessa forma ele poderia:
• Criar mecanismo de ofertas personalizadas
• Retenção de clientes que realizam reclamações no SAC
• Identificar relação de entre reclamações no SAC e
mídias sociais.
• Analisar fluxo de navegação e proporcionar navegação
personalizada por tipo de clientes
8. 8
… então depois de muito apanhar tentando achar uma
solução ao problema, decidiu pedir ajuda ao Mestre
Dhalsin.
Mestre, como posso
processar esse
volume gigante de
dados em pouco
tempo?
Dá Hadoop
Ryu!!!
?
10. 10
O que é Apache Hadoop?
O Hadoop é um framework open source desenvolvido em Java, para rodar
aplicações, que manipulem uma grande quantidade de dados, em ambientes
“clusterizados”.
Inspirado originalmente pelo GFS e MapReduce da Google
E assim começou a batalha de Ryu… sabendo da força que o hadoop tem, ele
decidiu estudar a fundo essa nova técnica…
…E descobriu que:
11. 11
Histórico
Dez/02 – Primeira biblioteca Map/Reduce na Google
Out/03 – Artigo sobre GFS
Dez/04 – Artigo sobre Map Reduce
Dez/05 – Doug Cutting cria o Projeto Nutch (MR e DFS)
Fev/06 – Hadoop se torna um projeto oficial da Apache
Abr/07 – Yahoo! roda Hadoop em um cluster de 1000 nós
Jan/08 – Hadoop se transforma no projeto principal da Apache
Dez/11 – Apache disponibiliza versão Hadoop 1.0.0
12. 12
Principais Características do Hadoop
Escalável: ele pode
armazenar e processar
petabytes sem problemas;
Econômico: o Hadoop
distribui os dados e o
processamento através dos
clusters. Estes clusters
podem ter milhares de nós
(máquinas);
Eficiente: Por distribuir os
dados, o Hadoop pode
processar eles em paralelo por
meio dos nós, onde os dados
estão alocados.
Confiável: ele
automaticamente mantém
múltiplas copias dos dados
e remaneja as tarefas em
caso de falhas.
13. 13
Atualmente, Hortonworks, Cloudera e
MapR são os principais distribuidores
Hadoop (MapReduce, Hive, Sqoop, pig,
etc) de forma mais integrada de acordo
com a arquitetura de cada distribuição.
A amazon possui sua própria
implementação Hadoop Chamada
Elastic MapReduce (EMR)
Distribuições Hadoop
16. 16
Composição do Apache Hadoop
1) Hadoop Common
Hadoop Common oculta o que os usuários comuns não precisam saber!
Paralelização automática
Balanceamento de carga
Otimização nas transferências de disco e rede
Tratamento de falhas
Robustez
Escalabilidade
17. 17
2) HDFS: Hadoop Distributed File System
Sistema de arquivos distribuído
Grande ordem de 10k nós
Milhões de arquivos
Projetado para hardware de baixo custo
Redundância por replicação
Tolerância a falhas e recuperação
Otimizado para processamento em lote
Localização dos dados exposta
Grande largura de banda associada
Coerência dos dados
Modelo “write-once-ready-many”
Arquivos existentes sofrem apenas operações de “append”
Arquivos quebrados em pedaços (blocos)
Variam de 64mb (padrão) a 256mb
Blocos distribuídos pelos nós (um arquivo é dividido em N blocos e armazenado em M nós)
Blocos são replicados e as replicações distribuídas
18. 18
3) MapReduce
O modelo inicial proposto pelo Google apresentou alguns conceitos para
facilitar alguns problemas
Paralelização da computação em um aglomerado de máquinas comuns
Centenas/Milhares de CPUs
Paralelização e distribuição automática da computação deveria ser o mais
simples possível
O sistema de execução se encarrega de:
Particionar e distribuir os dados de entrada
Escalonar as execuções em um conjunto de máquinas
Tratar as falhas
Comunicação entre as máquinas
19. 19
MapReduce - Arquitetura
Name Node
• Data Location
2
1
Client
MapReduce
Resource
Manager
Application
Manager
Data node
3
4
5
Data node
Data node
Reduce
Output
Reduce Reduce
Map MapMap
Shuffle & sort
Application
Master
Task TaskTask
6
23. 23
Sandbox é um projeto Hortonworks, que torna o
Hadoop portátil, permitindo rodar o hadoop em seu
computador pessoal de forma simples e ágil.
Sandbox possui fins educacionais, facilitando a curva de
aprendizagem no Hortonworks Hadoop.
Pré-requisitos: Ambiente de virtualização
(Preferencialmente VirtualBox)
Hortonworks Sandbox
24. 24
HDP 2.0
Hortonworks Data Platform 2.0 leva Hadoop de uma plataforma de dados de
processamento em lote, para uma plataforma multi-uso que permite
processamentos em lote, interativo, online e por fluxo.
30. 30
Upload dos dados
https://s3.amazonaws.com/hw-sandbox/tutorial1/NYSE-2000-2001.tsv.gz
A interface do File Browser é semelhante a um
gerenciador de arquivos comum com padrão
de diretórios.
Arquivo de exemplo:
Selecione o botão ‘Upload'
Selecione 'Arquivos' e uma janela pop-up irá aparecer.
Clique no botão: "Enviar um arquivo".
Localize o arquivo de dados de exemplo que você baixou e selecione-o.
A barra de progresso irá aparecer. O carregamento pode levar alguns momentos.
31. 31
Upload dos dados
Dados enviados:
Você pode usar o navegador de arquivos como
gerenciador de arquivos do seu próprio
computador. Em seguida registrar o conjunto de
dados com HCatalog.
32. 32
Upload dos dados
Preencha o campo Nome da tabela com
"nyse_stocks".
Em seguida, clique no botão Escolher arquivo.
Selecione o arquivo que acabou de carregar 'NYSE-
2000-2001.tsv.gz.
33. 33
Upload dos dados
Na visualização da tabela
você pode definir todos os
campos e tipos de dados
para a tabela.
Quando tudo estiver
concluído, clique no botão
"Create Table" na parte
inferior.
Hands on
34. 34
O Hive e o PIG oferecem linguagens de processamento de dados de alto nível com suporte
para tipos de dados complexos para a operação em conjuntos de dados grandes.
A linguagem do Hive é uma variante do SQL e, portanto, é mais acessível para pessoas já
familiarizadas com SQL e bancos de dados relacionais.
O Hive tem suporte para tabelas particionadas que permitem que os fluxos de trabalho
extraiam somente a partição da tabela relevante para a consulta sendo executada, em vez
de realizar uma digitalização completa da tabela.
Hive X Pig
Em uma análise, a escolha pelo uso do Hive ou
PIG dependerá dos requisitos exatos do domínio
do aplicativo e das preferências dos
implementadores e daqueles que gravam
consultas.
35. 35
Scripts Hive X Pig
SELECT * FROM
tb_fifa_best_players
WHERE nacionalidade =
'Alemanha';
SELECT a.* FROM a
JOIN b
ON (a.id = b.id)
SELECT MARCA, sum(vl_pedido)
Valor_Pedidos
FROM `default.tb_orders`
Group by MARCA
ORDER by Valor_Pedidos DESC
A = LOAD 'tb_fifa_best_players'
USING org.apache.hcatalog.pig.HCatLoader();
B = FILTER A BY jogador == 'Lionel
Messi';
C = ORDER B BY (colocacao);
DUMP C;
A = LOAD tb_fifa_best_players USING
org.apache.hcatalog.pig.HCatLoader();
B = LIMIT A 100;
C = FILTER B BY campo1 == 'Teste';
D = FOREACH C GENERATE symbol, date, close;
E = DISTINCT D;
F = GROUP E BY (campo1, campo2);
G = ORDER F BY (campo1, campo2);
H = JOIN G BY campo1, F BY campo1;
DUMP C;
37. 37
O que o Stinger?
http://hortonworks.com/labs/stinger/
A Iniciativa Stinger é um projeto opensource para conduzir o futuro do
Apache Hive, entregando 100x mais desempenho em escala, com execução
Hive sobre o Apache Tez e semântica de SQL like.
38. 38
Tabelas no Hive
As consultas Hive não pode ser realizadas diretamente
nos arquivos enviados, é necessária uma estrutura
que “identifique” os campos do arquivo, ou seja, que
mapeie e crie um padrão aos dados enviados, essa
estrutura é chamada de Tabela.
Existem basicamente dois tipos de tabelas:
Tabelas externas (External Tables) e Tabelas gerenciadas (Managed Tables).
Tabela GerenciadaTabela Externa
As tabelas externas apenas mapeiam os dados no
arquivo original, mas não realizam qualquer tipo
de controle sobre o arquivo.
As tabelas gerenciadas, realizam uma cópia dos
dados isolando as informações, para que apenas
a própria tabela possa acessar os dados.
40. 40
Tabelas externas
CREATE EXTERNAL TABLE IF NOT EXISTS default.TBE_VENDAS
(
DESC_MARCA STRING,
COD_PEDIDO_SITE STRING,
DT_PEDIDO TIMESTAMP,
VL_PEDIDO DECIMAL,
COD_ITEM INT,
COD_DEPT INT,
DESC_DEPT STRING,
DESC_UNI_NEGOCIO STRING,
COD_MARCA INT,
DESC_MARCA STRING,
MARCA STRING
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '|'
LOCATION '/user/b2w/vendas';
Tendo um arquivo com as vendas no diretório
”/user/b2w/vendas”, imagine que será
necessária uma consulta nesse arquivo, nesse caso
será necessária a criação de uma tabela externa para
mapear e acessar essas informações.
Definição de Tabela externa
Diretório do arquivo
Caractere delimitador de
campos
41. 41
Tabelas Gerenciadas
CREATE TABLE IF NOT EXISTS default.TBI_VENDAS
LIKE default.TB_VENDAS;
INSERT OVERWRITE TABLE default.TBI_VENDAS
SELECT * FROM default.TBE_VENDAS
WHERE COD_ITEM IS NOT NULL;
DESCRIBE FORMATTED default.TBI_VENDAS;
Continuando com exemplo anterior do arquivo com as vendas no diretório
”/user/b2w/vendas”.
imagine que desejamos utilizar e transformar (ETL) as informações do arquivo e copiá-
las para um “black box” onde garantimos a integridade dos dados, nesse caso será
necessária uma tabela gerenciada.
Definição de Tabela com a
mesma estrutura da tabela
relacionada.
Descreve a esrutura da tabela
42. 42
Visualização de dados
A visualização de dados de forma gráfica, relatórios e dashboards são
feitos por ferramentas externas que se conectam ao ambiente hadoop,
e extraem as informações necessárias. Utilizaremos duas ferramentas
como exemplo: Excel e Tableau.
Toda a comunicação (extração de dados) entre os ambientes é feita via
Hortonworks ODBC driver (64-bit).
43. 43
Edge Node
Mapa - Fluxo de dados
SFTP
Remoção de cabeçalho
Compactação de dados
-Orc/SeqFile
-Gzip/Snappy
Partitions
Buckets/Sampling
script
External Table
HDFS
Managed Table
Data
44. 44
Hortonworks Hive ODBC Driver
http://hortonworks.com/products/hdp-2/?b=3#add_ons
O Hortonworks
ODBC driver
permite realizar a
conexão de
ferramentas
externas de
Business
Intelligence,
consultas, análise
e visualização de
dados a Plataforma
Hortonworks.
Link para download
45. 45
Hortonworks Hive ODBC Driver
Guia em PDF com a instalação e configuração do driver ODBC
http://hortonworks.com/wp-content/uploads/2013/04/Hortonworks-Hive-ODBC-Driver-User-Guide.pdf
46. 46
Visualização de dados Excel
Uma vez que o Seu driver ODBC esteja configurado, Pode-se utilizar o Excel para acessar
dados no Hive:
http://hortonworks.com/hadoop-tutorial/how-to-use-excel-2013-to-access-hadoop-data/
http://hortonworks.com/hadoop-tutorial/how-use-excel-2013-to-analyze-hadoop-data/
1
2
3
4
47. 47
Visualização de dados Tableau
Uma vez que o Seu driver ODBC esteja configurado, Pode-se utilizar o Excel para acessar
dados no Hive:
http://hortonworks.com/kb/how-to-connect-tableau-to-hortonworks-sandbox/
1
2
3
4
5
Host: localhost
Port: 10000
Type: Hive Server 2
User: hive