Implementando soluções em Big Data com Apache Hadoop/Hive
-
Upload
carlos-eduardo-dantas -
Category
Technology
-
view
438 -
download
3
description
Transcript of 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
Quem sou?
• Professor Efetivo no IFTM Campus Uberlândia-Centro;
• Projetos bem sucedidos em alguns dos principais clientes de Uberlândia e região.
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
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.
Novos ventos – era da informação
• Sistemas convencionais de armazenamento e processamento de dados não são suficientes.
Novos ventos – era da informação
• Novas técnicas foram criadas e “white papers” publicados.
Big Data
• Termo usado para referenciar conjuntos de dados com características extremas.
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.
Big Data - Velocidade
Pesquisas com “Search Assist” (terabytes de log por dia):
• Solução convencional: 26 dias;
• Solução noSql(Hadoop): 20 minutos.
Big Data - Variedade
Suporta nativamente:
• Dados estruturados;
• Dados semi Estruturados;
• Dados não estruturados.
Alternativas?
• Data Warehouse;
• Arquiteturas MPP;
• Soluções noSql como Apache Hadoop.
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.
Apache Hadoop
“Até 2018, metade dos dados a serem processados no mundo, serão feitos pelo Hadoop”.
Hadoop - módulos
ArmazenamentoHDFS
• Sistema de Arquivos distribuído;
• Projetado para processar em lote;
• Altamente tolerante a falhas.
ArmazenamentoHDFS
• Estrutura mestre/escravo.
Processamento MapReduce
• “Dividir para conquistar”;
• Abstrai a computação paralela em apenas duas funções: map e reduce;
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}
Processamento MapReduce
• Divide o arquivo de entrada em blocos;
• Copia o programa que contém as funções Map e Reduce para o cluster
Processamento MapReduce
• O mestre orquestra os escravos e atribui a cada um uma tarefa map ou reduce
Processamento MapReduce
• Cada escravo que executa a tarefa map lê um conteúdo do bloco, definido pelo processo mestre;
• Resultado em memória.
Processamento MapReduce
• Periodicamente os pares intermediários são gravados em arquivos;
• O processo mestre os encaminha para os escravos que realizam reduce;
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.
Processamento MapReduce
• Executa a função de redução, gerando um arquivo de saída para cada nó escravo que executou a redução.
Processamento MapReduce
Processamento MapReduce - WordCount
• Problema da contagem da frequência das palavras, em uma base de documentos.
Processamento MapReduce - WordCount
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
Problemas...
• Programar diretamente com Map/Reduce não é intuitivo;
• Relativa complexidade de comandos para executar consultas nos arquivos.
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).
Apache Hive
Consulta Hive WordCount
Dúvidas?