TDC 2014 - Hadoop Hands ON

50
1 Tel : +55.11.34.68.01.03 www.octo.com

description

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

Transcript of TDC 2014 - Hadoop Hands ON

Page 1: TDC 2014 - Hadoop Hands ON

1 Tel : +55.11.34.68.01.03 www.octo.com

Page 2: TDC 2014 - Hadoop Hands ON

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?

?

?

?

?

Page 3: TDC 2014 - Hadoop Hands ON

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

Page 4: TDC 2014 - Hadoop Hands ON

4

Agenda

Introdução

Histórico

Arquitetura da plataforma HDP 2.0

SandBox

Stinger

Scripts Hive/Pig

Ferramentas de visualização de dados

Page 5: TDC 2014 - Hadoop Hands ON

5

Page 6: TDC 2014 - Hadoop Hands ON

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

Page 7: TDC 2014 - Hadoop Hands ON

7

Pode deixar chefe!

Ryu, Você será o escolhido para

essa tarefa!

Page 8: TDC 2014 - Hadoop Hands ON

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!!!

?

Page 9: TDC 2014 - Hadoop Hands ON

9

Não será tão fácil assim, meu

jovem...

Page 10: TDC 2014 - Hadoop Hands ON

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:

Page 11: TDC 2014 - Hadoop Hands ON

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

Page 12: TDC 2014 - Hadoop Hands ON

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.

Page 13: TDC 2014 - Hadoop Hands ON

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

Page 14: TDC 2014 - Hadoop Hands ON

14

Quadrante de Players Hadoop

Page 15: TDC 2014 - Hadoop Hands ON

15

Composição do Apache Hadoop

Núcleo Hadoop: • Hadoop Common

• HDFS

• MapReduce

Page 16: TDC 2014 - Hadoop Hands ON

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

Page 17: TDC 2014 - Hadoop Hands ON

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

Page 18: TDC 2014 - Hadoop Hands ON

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

Page 19: TDC 2014 - Hadoop Hands ON

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 Map Map

Shuffle & sort

Application

Master

Task Task Task

6

Page 20: TDC 2014 - Hadoop Hands ON

20

Hadoop 2.0

Page 21: TDC 2014 - Hadoop Hands ON

21

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

Shark Impala Presto Hawg Drill

Cascading Pig Hive Talend Solr

Giraph HAMA Mahout Python R

sklearn nltk panda RHadoop

SAS

Usos

Ferr

am

enta

s

Com

um

S

iste

ma

s d

e

Arm

aze

na

me

nto

Import/export

CLI

Sqoop

Flume

Storm

ETL (Talend,

Pentaho)

Oozie

Elastic

Search

Ecossistema Hadoop

API MR Java

Upload

HCatalog

Dis

trib

uiç

ão

Page 22: TDC 2014 - Hadoop Hands ON

22

Hadoop na nuvem

Page 23: TDC 2014 - Hadoop Hands ON

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

Page 24: TDC 2014 - Hadoop Hands ON

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.

Page 26: TDC 2014 - Hadoop Hands ON

26

Passo 2 : Iniciar imagem hadoop

Sandbox: Configuração

1

2

3

Page 27: TDC 2014 - Hadoop Hands ON

27

Passo 3 :

Acessar Sanbox Hue

Sandbox: Configuração

Hands on

Page 28: TDC 2014 - Hadoop Hands ON

28

Hortonworks Hue

HCatalog

HDFS

MapReduce

Page 29: TDC 2014 - Hadoop Hands ON

29

Ferramentas no Hue

1 2 3 4

Page 30: TDC 2014 - Hadoop Hands ON

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.

Page 31: TDC 2014 - Hadoop Hands ON

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.

Page 32: TDC 2014 - Hadoop Hands ON

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.

Page 33: TDC 2014 - Hadoop Hands ON

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

Page 34: TDC 2014 - Hadoop Hands ON

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.

Page 35: TDC 2014 - Hadoop Hands ON

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;

Page 36: TDC 2014 - Hadoop Hands ON

36

Hands on

Hands on

Page 37: TDC 2014 - Hadoop Hands ON

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.

Page 38: TDC 2014 - Hadoop Hands ON

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 Gerenciada Tabela 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.

Page 39: TDC 2014 - Hadoop Hands ON

39

Tabelas no Hive

Tabela Gerenciada Tabela Externa

Page 40: TDC 2014 - Hadoop Hands ON

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

Page 41: TDC 2014 - Hadoop Hands ON

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

Page 42: TDC 2014 - Hadoop Hands ON

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).

Page 43: TDC 2014 - Hadoop Hands ON

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

Page 44: TDC 2014 - Hadoop Hands ON

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

Page 46: TDC 2014 - Hadoop Hands ON

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

Page 48: TDC 2014 - Hadoop Hands ON

48

Ferramentas de visualização

Page 49: TDC 2014 - Hadoop Hands ON

49

You Win... Perfect!

Chefe, estamos prontos para iniciar

nossas análises usando Hadoop 2.0

Parabéns Ryu, You Win!

Page 50: TDC 2014 - Hadoop Hands ON

50

There is a way…