Buscar

Aula 2 BBD Avançado

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Disciplina: Banco de Dados Avançado
Aula 2: Principais tecnologias para a aplicação do Big
Data
Apresentação
Nesta aula, estudaremos a principal tecnologia para o processamento e análise de quantidades massivas de dados. Como
os dados que formam o conjunto do Big Data são oriundos de várias fontes, eles não podem ser armazenados em sistemas
tradicionais, como o banco de dados relacional. Desta maneira, novas tecnologias e processos tiveram que ser
desenvolvidos para permitir que esses dados não estruturados fossem analisados.
Para tal demanda, o Hadoop que é uma implementação do paradigma de programação MapReduce será apresentado, assim
como seus componentes principais. Além disso, entenderemos a arquitetura e as vantagens da tecnologia. Você vai observar
que vários componentes foram desenvolvidos para atender as demandas que foram surgindo com o uso cada vez maior do
Hadoop.
Objetivos
Reconhecer a tecnologia necessária para o processamento de grandes quantidades de dados;
Identi�car a arquitetura da solução Hadoop e suas vantagens.
Premissa
À medida que os avanços no hardware são alcançados, o homem propõe novos desa�os para a área de TI. Os problemas que
anteriormente eram impossíveis de serem solucionados agora, com os so�sticados recursos computacionais atualmente
disponíveis, podem ser resolvidos. Nesse contexto, a computação distribuída, juntamente aos grandes bancos de dados, motivou
estudos para uso desse potencial em proveito de toda a sociedade. Porém, para colocar em produção essa tecnologia e na escala
necessária, foi preciso o desenvolvimento de novas abordagens e arquiteturas.
O MapReduce surgiu, permitindo que desenvolvedores pudessem escrever seus programas
para o processamento de grandes massas de dados em paralelo, com o uso de conjuntos
distribuídos de processadores, não somente por meio de clusters, mas também para
execução com aplicações sendo processadas no ambiente de computação em nuvem.
Atenção
Posteriormente, foi criado o framework Hadoop <https://hadoop.apache.org> , baseado no MapReduce
<https://hadoop.apache.org/docs/stable/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html> .
A tecnologia MapReduce
Alguns engenheiros do Google, no início dos anos 2000, analisando as tendências quanto ao aumento do uso de dados na web,
perceberam que seriam necessários estudos para que o uso agrupado de computadores via internet fosse uma solução para
atender a essa demanda.
O paralelismo computacional tinha então condições de ser colocado em prática. Como justi�cativa para o uso da computação
distribuída, podem ser listadas as seguintes vantagens:
a) eliminação do ponto único de falha;
b) uso de serviços já existentes podem ser aproveitados por outros programadores;
c) há uma �exibilidade no uso do processamento das aplicações de acordo com a real necessidade.
No centro da proposta de uma tecnologia para permitir o uso e�ciente da tecnologia distribuída para o tratamento dos dados, foi
utilizado o recurso MapReduce.
https://hadoop.apache.org/
https://hadoop.apache.org/docs/stable/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html
 Ilustração de big data com estruturação de MapReduce. (Fonte: Swill Klitch / Shutterstock)
O modelo de programação MapReduce
O MapReduce é um modelo genérico de programação. Ele recebeu esse nome por causa da combinação entre os recursos
existentes das linguagens funcionais que foram usadas, sendo eles o Map e o Reduce.
Mas por que usar um paradigma funcional de programação, e não um procedural?
Paradigma procedural
No paradigma procedural, existe uma ordem de
execução e os dados são alterados de acordo com
as etapas de�nidas na lógica. 
Paradigma funcional
Já no paradigma funcional, a ordem do
processamento não é fundamental, por causa da
independência entre as operações. Com isso, é
possível efetuar a distribuição de processamento e
a posterior junção dos resultados (Reduce).
Vantagens da tecnologia MapReduce
A função Map, que já vem sendo usada em muitas linguagens de programação como o Lisp, é uma função em que elementos de
uma lista no formato {chave-valor} geram uma nova lista de acordo com os critérios informados.
Por exemplo, uma empresa possui servidores em várias �liais com os dados dos pedidos de venda.
Diante da necessidade de um relatório de vendas em um determinado período, a função Map pode obter os dados das vendas de
cada banco de dados, efetuando o processamento a partir dessas buscas em paralelo.
Depois, a função Reduce recebe esses diversos pares de chave-valor e totaliza os valores.
 Fluxo do processamento de dados no MapReduce
No caso de um exemplo em banco de dados com SQL, pode-se apresentar um modelo que faz a extração dos dados a partir de
fontes informadas. No exemplo temos:
Operação de projeção (escolha dos atributos) e seleção (de�nição de critério(s) da consulta). A lógica é de�nida na função
Map.
O Hadoop
O MapReduce é um algoritmo no sentido mais simples. Assim, necessitava-se de um conjunto de produtos e tecnologias para o
trabalho com o Big Data. Desta forma, foi desenvolvido o Hadoop com o objetivo de lidar com problemas grandes, dividindo-os
em pequenas partes, analisando-os de uma forma mais rápida e com baixo custo.
O Hadoop engloba um conjunto de produtos que permite processar o Big Data por
meio de um processamento de dados paralelo nos nós de computação, com uma
aceleração no processamento, com diminuição da latência e altamente escalável.
Em seu projeto, o Hadoop está apoiado em 2 componentes principais:
1
Sistema de Arquivos Distribuídos Hadoop – HDFS <https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-
hdfs/HdfsDesign.html> (Hadoop Distributed File System), que permite um seguro armazenamento dos dados, baixo custo e
sob largura de banda alta, para facilitar a comunicação entre servidores;
2 Mecanismo MapReduce, que é uma implementação de processamento de dados distribuídos sendo executados emparalelo por meio do mecanismo Map e Reduce.
Os dois produtos foram criados de forma que falhas nos nós são automaticamente tratadas pelo framework. A seguir, é
apresentada a cronologia do Hadoop:
https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html
2001
O Google desenvolve a Google File System e o MapReduce.
2004
O Google publica artigo sobre o MapReduce.
2005
Doug Cutting (criador do Hadoop) passa a ser funcionário do Yahoo e monta sua equipe de desenvolvimento. Ele
desenvolve o Nutch um buscador baseado no MapReduce para indexação.
2006
O projeto é renomeado para Hadoop.
2007
O Yahoo torna o projeto open source e é administrado atualmente pela Apache Software Foundation sob licença Apache
License v2.0.
Cronologia do Hadoop
Vantagens e desvantagens do Hadoop
VANTAGENS
É bom para:
Processamento massivo de grandes volumes de dados com paralelismo. Muitos arquivos que são
pequenos com menos de 100 MB devem ser evitados. O MapReduce funciona melhor com um
número menor de arquivos grandes;
A velocidade de transferência é um recurso que vem aumentando, permitindo o uso da tecnologia;
A taxa de busca em disco é um fator limitante em sistemas que tratam de grandes bancos de dados,
pois a velocidade depende da estrutura mecânica do disco;
Manipular uma variedade de tipos de dados (estruturados, não estruturados ou semiestruturados) e
no formato chave-valor com mais facilidade;
Uso de hardware de baixo custo;
Execução de agregação em grandes bancos de dados: o Reduce é muito útil nessa tarefa;
Operações de ETL em larga escala (Extract, Transform and Load);
Aumento linear da escalabilidade para atender a maiores volumes de dados, se necessário;
Permite o processamento de grandes datasets em paralelo.
DESVANTAGENS
Não é bom para:
Processamento transacional (acesso randômico);
Quando o trabalho não pode ser paralelizado;
Acesso rápido aos dados;
Processamento de lotes de dados pequenos;
Cálculos intensos aplicados em pequenas quantidades de dados.Versões do Hadoop
Até o momento, duas versões foram desenvolvidas para o projeto. São elas:
Continuidade no código-base original;
Adição de recursos de segurança, HDFS (Hadoop Distributed File System);
Melhorias no MapReduce.
1ª versão
Adição do YARN <https://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/YARN.html> (Yet
Another Resource Navigator): costuma-se denominar o Hadoop 2 como YARN;
Melhoria no HDFS para suportar dados federados e aumento da disponibilidade.
2ª versão
As duas versões são apresentadas na imagem:
 Versões do Hadoop. (Fonte: Hortonworks.com <//hortonworks.com/blog/office-hours-qa-on-yarn-in-hadoop-2> )
https://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/YARN.html
http://hortonworks.com/blog/office-hours-qa-on-yarn-in-hadoop-2
Componentes do Hadoop ou Hadoop Ecossistema
O Hadoop tem em sua composição inicial o MapReduce e o HDFS, porém necessita de mais ferramentas para atender às
necessidades do trabalho com Big Data. Desta forma, outras ferramentas complementares foram desenvolvidas para atender às
demandas que foram surgindo com o uso do framework. Entre as principais, podemos citar:
Clique nos botões para ver as informações.
O Hive é uma infraestrutura de data warehouse que tem como objetivo facilitar a criação de relatórios e a analisar grandes
quantidades de dados armazenados em arquivos. Fornece uma interface de alto nível para o Hadoop usando consultas
semelhantes à SQL. Desenvolvido no Facebook.
Saiba mais em: Apache HIVE <https://hive.apache.org>
Hive 
É um banco de dados distribuído NOSQL com orientação a colunas. O HBase é estruturado para uso com o sistema de
arquivos HDFS. Ele possibilita o processamento de dados em lote por meio do MapReduce para a execução de consultas.
Saiba mais em: Apache HBASE <https://hbase.apache.org>
HBase 
O Pig provê uma interface de alto nível para facilitar a transformação de scripts feitos na linguagem de programação
MapReduce para o processamento de dados em larga escala. Preenche a lacuna entre o estilo declarativo de interfaces
como SQL e o estilo rígido exigido pelo MapReduce. É projetado para resolver problemas como ad hoc e análises de logs da
Web. Permite também a criação de funções de�nidas pelo usuário.
Saiba mais em: Apache Hadoop <https://pig.apache.org>
Pig 
É um serviço de coordenação distribuído de alto desempenho. O ZooKeeper fornece instruções básicas para construção de
sistemas distribuídos, permitindo uma coordenação distribuída altamente con�ável.
Saiba mais em: Apache ZooKeeper <https://zookeeper.apache.org>
ZooKeeper 
O Apache Chukwa é um sistema de coleta de dados de código aberto para monitorar grandes sistemas distribuídos. O
Apache Chukwa foi construído sobre a estrutura Hadoop Distributed File System (HDFS) e MapReduce, e herda a
escalabilidade e robustez do Hadoop. O Apache Chukwa também inclui um kit de ferramentas �exíveis e é poderoso para
exibir, monitorar e analisar os resultados para fazer o melhor uso dos dados coletados. É um sistema distribuído para coletar
e analisar logs de forma dinâmica.
Saiba mais em: The Apache Software Foundation <//chukwa.apache.org>
Chukwa 
https://hive.apache.org/
https://hbase.apache.org/
https://pig.apache.org/
https://zookeeper.apache.org/
http://chukwa.apache.org/
Serviço para agendamento e execução de �uxos de trabalho. As tarefas do Oozie Coordinator são tarefas recorrentes do
Oozie Work�ow e acionadas por tempo (frequência) e de acordo com a disponibilidade de dados.
Saiba mais em: The Apache Software Foundation <https://oozie.apache.org>
Oozie 
O Ambari é uma ferramenta para o gerenciamento, suporte e o monitoramento de outros módulos Hadoop, como o HDFS, o
MapReduce, o Hive, o HBase, entre outros.
Saiba mais em: Apache Ambari <https://ambari.apache.org>
Ambari 
O sistema Mahout foi desenvolvido para a construção de aplicações baseadas em aprendizagem de máquina e bibliotecas
com funções para o uso da mineração de dados.
Saiba mais em: Mahout <https://mahout.apache.org>
Mahout 
O Apache Sqoop (SQL-to-Hadoop) é uma ferramenta projetada com a �nalidade de transferir com e�ciência dados em
massa entre o Apache Hadoop e os armazenamentos de dados estruturados, como é o caso dos bancos de dados
relacionais.
Por ser apresentado com um projeto da Apache Software Foundation, o Hadoop a licença de software livre permite
alterações no código-fonte e sua redistribuição. Foi assim que várias empresas apresentaram suas implementações do
Hadoop para o mercado. A razão dessas alterações na implementação vêm da necessidade de atender a variadas
especi�cidades de um mercado-alvo.
Saiba mais em: The Apache Software Foundation <https://sqoop.apache.org>
Sqoop 
Entre as empresas voltadas para esse setor, destacam-se Amazon WeService <https://aws.amazon.com/pt/> (AWS),
Hortonworks <https://br.hortonworks.com> , Azzure HDInsight <https://azure.microsoft.com/pt-br/> (Microsoft), Pentaho
<https://www.hitachivantara.com/go/pentaho.html> e Cloudera <https://www.cloudera.com> . Cloudera é uma das líderes no
mercado, tem como chefe b o próprio Douglas Cutting, que é um dos criadores do Apache Hadoop.
https://oozie.apache.org/
https://ambari.apache.org/
https://mahout.apache.org/
https://sqoop.apache.org/
https://aws.amazon.com/pt/
https://br.hortonworks.com/
https://azure.microsoft.com/pt-br/
https://www.hitachivantara.com/go/pentaho.html
https://www.cloudera.com/
 Componentes da arquitetura ou ecossistema do Hadoop, distribuídos em camadas. (Fonte: Cetax <https://www.cetax.com.br/> )
Atividade
1. Leia a matéria da revista Pequenas Empresas Grandes Negócios com o título “Como a Net�ix sabia que House of Cards seria
um sucesso antes de lançar a série” <https://revistapegn.globo.com/Dia-a-dia/noticia/2016/03/como-net�ix-sabia-que-house-
cards-seria-um-sucesso-antes-de-lancar-serie.html> e liste que tipos de dados foram coletados dos usuários da plataforma.
Justi�que o uso da tecnologia Big Data na implementação da solução.
2. Utilize os números para correlacionar os componentes da tecnologia Hadoop às de�nições:
MapReduce HBase Hive Ambari HDFS 1 2 3 4 5
https://www.cetax.com.br/
https://revistapegn.globo.com/Dia-a-dia/noticia/2016/03/como-netflix-sabia-que-house-cards-seria-um-sucesso-antes-de-lancar-serie.html
Gabarito sugerido
a) É um modelo genérico de programação. Ele recebeu esse nome graças à combinação entre os recursos existentes das linguagens funcionais que
foram usadas, sendo eles o Map e o Reduce.
b) Permite um seguro armazenamento dos dados, baixo custo e sob largura de banda alta, para facilitar a comunicação entre servidores.
c) É uma infraestrutura com o objetivo de facilitar a criação de relatórios e a análise de grandes quantidades de dados armazenados em arquivos.
Fornece uma interface de alto nível para o Hadoop, usando consultas semelhantes à SQL.
d) É um banco de dados distribuído NOSQL com orientação a colunas. É estruturado para uso com o sistema de arquivos HDFS. Possibilita o
processamento de dados em lote por meio do MapReduce para a execução de consultas.
e) É uma ferramenta para gerenciamento, suporte e monitoramento de outros módulos Hadoop, como o HDFS, o MapReduce, o Hive, o HBase, entre
outros.
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
3. Marque a alternativa que apresenta uma vantagem do Hadoop.
a) Acesso rápido aos dados.
b) Processamento massivo de grandes volumes de dados com paralelismo.
c) Processamento de lotes de dados pequenos.
d) Processamento transacional (acesso randômico).
e) Cálculos intensos aplicados em pequenas quantidades de dados.
Notas
Haddop 1
Associar este link ao termo: https://hadoop.apache.org <https://hadoop.apache.org>
MapReduce 2
Associar este link ao termo: https://hadoop.apache.org/docs/stable/hadoop-mapreduce-client/hadoop-mapreduce-client-
core/MapReduceTutorial.html <https://hadoop.apache.org/docs/stable/hadoop-mapreduce-client/hadoop-mapreduce-client-
core/MapReduceTutorial.html>
Referências
https://hadoop.apache.org/https://hadoop.apache.org/docs/stable/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html
BENGFOR, B.; KIM, J. Analítica de dados com Hadoop: uma introdução para cientistas de dados. 1. ed. São Paulo: Novatec, 2016.
HURWITZ,J.; NUGENT,A.; HALPER,D. ; KAUFMAN, M. Big Data para leigos. Col. Para Leigos. 1. ed. Rio de Janeiro: Alta Book, 2015.
ELMASRI,R.; NAVATHE. Sistemas de banco de dados. 6 ed. São Paulo: Pearson Education, 2012.
Próxima aula
Detalhes dos principais componentes complementares do Hadoop;
O gerenciador de recursos YARN;
O banco de dados Hadoop Hbase.
Explore mais
Acesse o seguinte material:
Hadoop - O que é e qual sua importância? <https://www.sas.com/pt_br/insights/big-data/hadoop.html>
https://www.sas.com/pt_br/insights/big-data/hadoop.html

Continue navegando