Implementando soluções em Big Data com Apache Hadoop/Hive

33
Implementando soluções em Big Data com Apache Hadoop/Hive Carlos Eduardo Dantas [email protected] http://carloseduardoxp.wordpress.com “A melhor maneira de fugir do seu problema é resolvê - lo” Robert Anthony

description

Palestra ministrada no uaijugclodday, link http://www.uaijugcloudday.com.br/

Transcript of Implementando soluções em Big Data com Apache Hadoop/Hive

Page 1: Implementando soluções em Big Data com Apache Hadoop/Hive

Implementando soluções em Big Data com Apache Hadoop/Hive

Carlos Eduardo [email protected]

http://carloseduardoxp.wordpress.com

“A melhor maneira de fugir do seu problema é resolvê-lo” – Robert Anthony

Page 2: Implementando soluções em Big Data com Apache Hadoop/Hive

Quem sou?

• Professor Efetivo no IFTM Campus Uberlândia-Centro;

• Projetos bem sucedidos em alguns dos principais clientes de Uberlândia e região.

Page 3: Implementando soluções em Big Data com Apache Hadoop/Hive

IFTM Campus Uberlândia Centro

• Cursos técnicos, graduação e pós-graduação gratuitos;

• Mini-cursos e eventos de curta duração abertos à comunidade;

• http://www.iftm.edu.br

Page 4: Implementando soluções em Big Data com Apache Hadoop/Hive

Novos ventos – era da informação

• Volumes expressivos de dados gerados diariamente (ordem de petabytes);

• Várias fontes heterogêneas, com milhões de usuários.

Page 5: Implementando soluções em Big Data com Apache Hadoop/Hive

Novos ventos – era da informação

• Sistemas convencionais de armazenamento e processamento de dados não são suficientes.

Page 6: Implementando soluções em Big Data com Apache Hadoop/Hive

Novos ventos – era da informação

• Novas técnicas foram criadas e “white papers” publicados.

Page 7: Implementando soluções em Big Data com Apache Hadoop/Hive

Big Data

• Termo usado para referenciar conjuntos de dados com características extremas.

Page 8: Implementando soluções em Big Data com Apache Hadoop/Hive

Big Data - Volume

• 40 bilhões de fotos;

• 350 milhões de usuários ativos;

• 250 milhões de uploads diários;

• 2008 – 200GB de dados diários;

• 2014 – 15TB de dados diários.

Page 9: Implementando soluções em Big Data com Apache Hadoop/Hive

Big Data - Velocidade

Pesquisas com “Search Assist” (terabytes de log por dia):

• Solução convencional: 26 dias;

• Solução noSql(Hadoop): 20 minutos.

Page 10: Implementando soluções em Big Data com Apache Hadoop/Hive

Big Data - Variedade

Suporta nativamente:

• Dados estruturados;

• Dados semi Estruturados;

• Dados não estruturados.

Page 11: Implementando soluções em Big Data com Apache Hadoop/Hive

Alternativas?

• Data Warehouse;

• Arquiteturas MPP;

• Soluções noSql como Apache Hadoop.

Page 12: Implementando soluções em Big Data com Apache Hadoop/Hive

Apache Hadoop

• Framework open-source escrito em Java;

• Armazena e processa conjuntos de dados em larga escala;

• Distribui dados e processamento para múltiplos servidores, consolidando resultados.

Page 13: Implementando soluções em Big Data com Apache Hadoop/Hive

Apache Hadoop

“Até 2018, metade dos dados a serem processados no mundo, serão feitos pelo Hadoop”.

Page 14: Implementando soluções em Big Data com Apache Hadoop/Hive

Hadoop - módulos

Page 15: Implementando soluções em Big Data com Apache Hadoop/Hive

ArmazenamentoHDFS

• Sistema de Arquivos distribuído;

• Projetado para processar em lote;

• Altamente tolerante a falhas.

Page 16: Implementando soluções em Big Data com Apache Hadoop/Hive

ArmazenamentoHDFS

• Estrutura mestre/escravo.

Page 17: Implementando soluções em Big Data com Apache Hadoop/Hive

Processamento MapReduce

• “Dividir para conquistar”;

• Abstrai a computação paralela em apenas duas funções: map e reduce;

Page 18: Implementando soluções em Big Data com Apache Hadoop/Hive

Processamento MapReduce

• Map Funcional: map({1,2,3,4}, (* 2)) -> {2,4,6,8}

• Reduce Funcional: reduce({2,4,6,8}, (*)) -> {384}

• Logo: reduce (map({1,2,3,4}, (* 2)), (*)) -> {384}

Page 19: Implementando soluções em Big Data com Apache Hadoop/Hive

Processamento MapReduce

• Divide o arquivo de entrada em blocos;

• Copia o programa que contém as funções Map e Reduce para o cluster

Page 20: Implementando soluções em Big Data com Apache Hadoop/Hive

Processamento MapReduce

• O mestre orquestra os escravos e atribui a cada um uma tarefa map ou reduce

Page 21: Implementando soluções em Big Data com Apache Hadoop/Hive

Processamento MapReduce

• Cada escravo que executa a tarefa map lê um conteúdo do bloco, definido pelo processo mestre;

• Resultado em memória.

Page 22: Implementando soluções em Big Data com Apache Hadoop/Hive

Processamento MapReduce

• Periodicamente os pares intermediários são gravados em arquivos;

• O processo mestre os encaminha para os escravos que realizam reduce;

Page 23: Implementando soluções em Big Data com Apache Hadoop/Hive

Processamento MapReduce

• Mestre envia ao processo escravo o endereço dos arquivos intermediários;

• O processo escravo recupera remotamente o conjunto de pares e inicia o ordenamento e agrupamento.

Page 24: Implementando soluções em Big Data com Apache Hadoop/Hive

Processamento MapReduce

• Executa a função de redução, gerando um arquivo de saída para cada nó escravo que executou a redução.

Page 25: Implementando soluções em Big Data com Apache Hadoop/Hive

Processamento MapReduce

Page 26: Implementando soluções em Big Data com Apache Hadoop/Hive

Processamento MapReduce - WordCount

• Problema da contagem da frequência das palavras, em uma base de documentos.

Page 27: Implementando soluções em Big Data com Apache Hadoop/Hive

Processamento MapReduce - WordCount

Page 28: Implementando soluções em Big Data com Apache Hadoop/Hive

Demais aplicações

• Indexação para busca de palavras em páginas web;

• Organização de notícias;

• Processamento de imagens de satélites;

• Processamento de linguagem natural do tradutor

Page 29: Implementando soluções em Big Data com Apache Hadoop/Hive

Problemas...

• Programar diretamente com Map/Reduce não é intuitivo;

• Relativa complexidade de comandos para executar consultas nos arquivos.

Page 30: Implementando soluções em Big Data com Apache Hadoop/Hive

Apache Hive

• Executa tarefas de Map/Reduce em arquivos físicos no HDFS;

• Linguagem de consulta ad hoc (HiveQL), bastante parecida com SQL;

• As estruturas de tabelas não existem fisicamente (apenas nos arquivos de metadados do Hive).

Page 31: Implementando soluções em Big Data com Apache Hadoop/Hive

Apache Hive

Page 32: Implementando soluções em Big Data com Apache Hadoop/Hive

Consulta Hive WordCount

Page 33: Implementando soluções em Big Data com Apache Hadoop/Hive

Dúvidas?