1 Tel : +55.11.34.68.01.03
www.octo.com
2014
2
Thiago Santiago
Arquiteto de software, formado em
engenharia de software pela USP.
Trabalha atualmente na OCTO Technolog...
3
Agenda
Introdução
Histórico
Arquitetura da plataforma HDP 2.0
SandBox
Stinger
Scripts Hive/Pig
Ferramentas de visualizaç...
4
5
No atual mundo captalista, M Bison, dono do maior e-
commerce mundial chamado Shadaloo, decide analisar o perfil
de todo...
6
Pode deixar
chefe!
Ryu, Você será o
escolhido para
essa tarefa!
7
… então depois de muito apanhar tentando achar uma
solução ao problema, decidiu pedir ajuda ao Mestre
Dhalsin.
Mestre, c...
8
Não será tão
fácil assim, meu
jovem...
9
O que é Apache Hadoop?
O Hadoop é um framework open source desenvolvido em Java, para rodar
aplicações, que manipulem um...
10
Histórico
Dez/02 – Primeira biblioteca Map/Reduce na Google
Out/03 – Artigo sobre GFS
Dez/04 – Artigo sobre Map Reduce
...
11
Principais Características do Hadoop
Escalável: ele pode
armazenar e processar
petabytes sem problemas;
Econômico: o Ha...
12
Atualmente, Hortonworks, Cloudera e
MapR são os principais distribuidores
Hadoop (MapReduce, Hive, Sqoop, pig,
etc) de ...
13
Composição do Apache Hadoop
Núcleo Hadoop:
• Hadoop Common
• HDFS
• MapReduce
14
Composição do Apache Hadoop
1) Hadoop Common
Hadoop Common oculta o que os usuários comuns não precisam saber!
Paraleli...
15
2) HDFS: Hadoop Distributed File System
Sistema de arquivos distribuído
Grande ordem de 10k nós
Milhões de arquivos
Pro...
16
3) MapReduce
O modelo inicial proposto pelo Google apresentou alguns conceitos para
facilitar alguns problemas
Paraleli...
17
MapReduce no Hadoop
A função Map atua sobre um conjunto de entrada com chaves e valores, produzindo
uma lista de chaves...
18
MapReduce - Arquitetura
Name Node
• Data Location
2
1
Client
MapReduce
Resource
Manager
Application
Manager
Data node
3...
19
Storage API
Distributed FS
GlusterFS
HDFS
S3
Isilon
MapRFS
Local FS
NoSQL based
Cassandra
DynamoDB
Ceph
Ring
Openstack ...
20
Hadoop na nuvem
21
Sandbox é um projeto Hortonworks, que torna o
Hadoop portátil, permitindo rodar o hadoop em seu
computador pessoal de f...
22
HDP 2.0
Hortonworks Data Platform 2.0 leva Hadoop de uma plataforma de dados de
processamento em lote, para uma platafo...
23
Passo 1 : baixar Sandbox for VirtualBox
http://hortonworks.com/products/hortonworks-sandbox/#install
Sandbox: Instalação
24
Passo 2 : Iniciar imagem hadoop
Sandbox: Configuração
1
2
3
25
Passo 3 :
Acessar Sanbox Hue
Sandbox: Configuração
Hands on
26
Hortonworks Hue
HCatalog
HDFS
MapReduce
27
Ferramentas no Hue
1234
28
Upload dos dados
https://s3.amazonaws.com/hw-sandbox/tutorial1/NYSE-2000-2001.tsv.gz
A interface do File Browser é seme...
29
Upload dos dados
Dados enviados:
Você pode usar o navegador de arquivos como
gerenciador de arquivos do seu próprio
com...
30
Upload dos dados
Preencha o campo Nome da tabela com
"nyse_stocks".
Em seguida, clique no botão Escolher arquivo.
Selec...
31
Upload dos dados
Na visualização da tabela
você pode definir todos os
campos e tipos de dados
para a tabela.
Quando tud...
32
Formato do arquivo
Para diminuir o tempo de envio o arquivo deverá ser compactado e
enviado no formato "gzip".
Por exem...
33
O Processo
Carregamento de dados
Preparação e
Organização de dados
Exploração de dados Análise de dados
O processo comp...
34
Edge Node
Mapa - Fluxo de dados
SFTP
Remoção de cabeçalho
Compactação de dados
-Orc/SeqFile
-Gzip/Snappy
Partitions
Buc...
35
O que o Stinger?
http://hortonworks.com/labs/stinger/
A Iniciativa Stinger é um projeto opensource para conduzir o futu...
36
O Hive e o PIG oferecem linguagens de processamento de dados de alto nível com suporte
para tipos de dados complexos pa...
37
Scripts Hive X Pig
SELECT * FROM Tabela
WHERE Campo = “ABC”;
SELECT a.* FROM a
JOIN b
ON (a.id = b.id)
SELECT MARCA, su...
38
Tabelas no Hive
As consultas Hive não pode ser realizadas diretamente
nos arquivos enviados, é necessária uma estrutura...
39
Tabelas no Hive
Tabela GerenciadaTabela Externa
40
Tabelas externas
CREATE EXTERNAL TABLE IF NOT EXISTS default.TBE_VENDAS
(
DESC_MARCA STRING,
COD_PEDIDO_SITE STRING,
DT...
41
Tabelas Gerenciadas
CREATE TABLE IF NOT EXISTS default.TBI_VENDAS
LIKE default.TB_VENDAS;
INSERT OVERWRITE TABLE defaul...
42
Hands on
Hands on
43
Visualização de dados
A visualização de dados de forma gráfica, relatórios e dashboards são
feitos por ferramentas exte...
44
Hortonworks Hive ODBC Driver
http://hortonworks.com/products/hdp-2/?b=3#add_ons
O Hortonworks
ODBC driver
permite reali...
45
Hortonworks Hive ODBC Driver
Guia em PDF com a instalação e configuração do driver ODBC
http://hortonworks.com/wp-conte...
46
Visualização de dados Excel
Uma vez que o Seu driver ODBC esteja configurado, Pode-se utilizar o Excel para acessar
dad...
47
Visualização de dados Tableau
Uma vez que o Seu driver ODBC esteja configurado, Pode-se utilizar o Excel para acessar
d...
48
Ferramentas de visualização
49
You Win... Perfect!
Chefe, estamos
prontos para iniciar
nossas análises
usando Hadoop 2.0
Parabéns Ryu,
You Win!
50
There is a way…
Upcoming SlideShare
Loading in …5
×

Hadoop - Mãos à massa! Qcon2014

2,069 views

Published on

Abordagem criativa sobre o ecossistema hadoop

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

Published in: Technology
0 Comments
13 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,069
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
135
Comments
0
Likes
13
Embeds 0
No embeds

No notes for slide

Hadoop - Mãos à massa! Qcon2014

  1. 1. 1 Tel : +55.11.34.68.01.03 www.octo.com 2014
  2. 2. 2 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
  3. 3. 3 Agenda Introdução Histórico Arquitetura da plataforma HDP 2.0 SandBox Stinger Scripts Hive/Pig Ferramentas de visualização de dados
  4. 4. 4
  5. 5. 5 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
  6. 6. 6 Pode deixar chefe! Ryu, Você será o escolhido para essa tarefa!
  7. 7. 7 … 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!!!
  8. 8. 8 Não será tão fácil assim, meu jovem...
  9. 9. 9 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:
  10. 10. 10 Histórico Dez/02 – Primeira biblioteca Map/Reduce na Google Out/03 – Artigo sobre GFS Dez/04 – Artigo sobre Map Reduce Dez/05 – MR e DFS no Nutch é implementado por Doug Cutting 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
  11. 11. 11 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.
  12. 12. 12 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
  13. 13. 13 Composição do Apache Hadoop Núcleo Hadoop: • Hadoop Common • HDFS • MapReduce
  14. 14. 14 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
  15. 15. 15 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
  16. 16. 16 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
  17. 17. 17 MapReduce no Hadoop A função Map atua sobre um conjunto de entrada com chaves e valores, produzindo uma lista de chaves e valores A função Reduce atua sobre os valores intermediários produzidos pelo Map para, normalmente, agrupar os valores e produzir a saída
  18. 18. 18 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
  19. 19. 19 Storage API Distributed FS GlusterFS HDFS S3 Isilon MapRFS Local FS NoSQL based Cassandra DynamoDB Ceph Ring Openstack Swift MapReduce/Tez YARN Spark Streaming Transacional Consultas Analíticas ETL Computação Científica Indexação Interativo Batch HBase Cassandra Spark Impala Presto Hawg Drill Cascading Pig Hive Talend Solr Giraph HAMA Mahout Python R sklearn nltk panda RHadoop SAS UsosFerramentasComum Sistemasde Armazenamento Import/export CLI Sqoop Flume Storm ETL (Talend, Pentaho) Oozie Elastic Search Ecossistema Hadoop API MR Java Upload HCatalog Distribuição
  20. 20. 20 Hadoop na nuvem
  21. 21. 21 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
  22. 22. 22 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.
  23. 23. 23 Passo 1 : baixar Sandbox for VirtualBox http://hortonworks.com/products/hortonworks-sandbox/#install Sandbox: Instalação
  24. 24. 24 Passo 2 : Iniciar imagem hadoop Sandbox: Configuração 1 2 3
  25. 25. 25 Passo 3 : Acessar Sanbox Hue Sandbox: Configuração Hands on
  26. 26. 26 Hortonworks Hue HCatalog HDFS MapReduce
  27. 27. 27 Ferramentas no Hue 1234
  28. 28. 28 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.
  29. 29. 29 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.
  30. 30. 30 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.
  31. 31. 31 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
  32. 32. 32 Formato do arquivo Para diminuir o tempo de envio o arquivo deverá ser compactado e enviado no formato "gzip". Por exemplo, no linux, o commando: gzip arquivo.csv produz um arquivo de tipo correto : arquivo.csv.gz Por definição de arquitetura, o caractere delimitador de campos será o pipe “|”. E o formato inicial do arquivo deverá ser “.csv". Compactação do arquivo
  33. 33. 33 O Processo Carregamento de dados Preparação e Organização de dados Exploração de dados Análise de dados O processo completo de tratamento de dados no ambiente Hadoop pode ser dividido em 4 etapas, nas quais, Carregam, Organizam, Exploram e exibem dos dados analizados. - Transferir arquivo CSV - Declarar Tabelas - Limpar Dados - Joins/Views - Partitions - . - . - . - Ferramentas - Excel - Tableau - Dashboards - Relatórios - . - . - . - Ferramentas - SAS - R, Python - DataModels - Predição - . - . - . 1 2 3 4
  34. 34. 34 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
  35. 35. 35 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.
  36. 36. 36 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.
  37. 37. 37 Scripts Hive X Pig SELECT * FROM Tabela WHERE Campo = “ABC”; 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 'tabela' 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; A = LOAD 'default.tb_orders' USING org.apache.hcatalog.pig.HCatLoader(); B = GROUP A BY marca; X = FOREACH B GENERATE group, SUM(A.vl_pedido); DUMP X;
  38. 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.
  39. 39. 39 Tabelas no Hive Tabela GerenciadaTabela Externa
  40. 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. 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. 42 Hands on Hands on
  43. 43. 43 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).
  44. 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. 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. 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. 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: 72.2.118.70 Port: 10000 Type: Hive Server 2 User: hive
  48. 48. 48 Ferramentas de visualização
  49. 49. 49 You Win... Perfect! Chefe, estamos prontos para iniciar nossas análises usando Hadoop 2.0 Parabéns Ryu, You Win!
  50. 50. 50 There is a way…

×