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

Preview:

DESCRIPTION

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

Citation preview

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

Carlos Eduardo Dantascarloseduardodantas@iftm.edu.br

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?

Recommended