Buscar

POS1150 PROCESSAMENTO MASSIVO DE DADOS PG1376-212-5 - 202122 ead-18864 01

Prévia do material em texto

26/09/2021 22:51 Roteiro de Estudos
https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_749108_… 1/13
Olá! Seja bem-vindo(a) à nossa disciplina de Processamento Massivos de Dados. A partir dela,
você passará a interligar alguns assuntos sobre o processamento massivo de dados, também
conhecido como big data, devido às várias fontes que geram e oferecem enormes volumes de
dados, seja em tempo real ou não. Para as empresas compreenderem o que está acontecendo
no seu negócio, utilizar as técnicas do processamento massivo de dados, pode ser uma boa
indicação. Grandes corporações procuram se aprimorar cada vez mais nesta área da Data
Science, a �m de não perder competitividade.
Caro(a) estudante, ao ler este roteiro você vai:
estudar os conceitos de processamento paralelo;
compreender os fundamentos de processamento distribuído;
aprender sobre armazenamento de dados distribuído;
compreender plataformas de processamento orientadas a dados;
re�etir sobre gerenciamento e uso de recursos em clusters.
Introdução
O volume de dados gerados por todos nós em nosso dia a dia faz com que o conhecimento
sobre processamento massivo de dados seja importante para tomadas de decisão de várias
corporações, uma vez que existem diversas fontes pelas quais podem ser coletados os dados
que geram informações. Esses dados podem ser produzidos pelos próprios usuários, por meio
Processamento Massivo de Dados
Roteiro deRoteiro de 
EstudosEstudos
Autor: Me. Prof. Leandro C. Cardoso
Revisor: Fernanda Andrade
26/09/2021 22:51 Roteiro de Estudos
https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_749108_… 2/13
de coleta de dados de sensores dos mais vários tipos, como registros (logs) e serviços
oferecidos no ambiente web; desta maneira, isso se torna um desa�o e também cria
oportunidades para os pro�ssionais da área. Para saber trabalhar com esses dados, é
importante conhecer sobre o processamento paralelo e o distribuído, bem como sobre o
armazenamento de dados distribuídos.
Além disso, você deve saber sobre as plataformas de processamento orientadas a dados que
otimizam o trabalho, aliadas a uma boa gerência e uso de recursos em clusters, a �m de
orientar empresas na tomada de decisões. Esses assuntos serão abordados neste roteiro de
estudos.
Fundamentos de Processamento
Paralelo
Processamento paralelo é uma maneira considerada e�ciente de trabalhar com dados, com
ênfase em explorar eventos sincrônicos, ou seja, simultâneos na execução de um programa,
por exemplo. Na prática, é a utilização do uso sincrônico de inúmeras unidades de
processamento (CPUs) com o objetivo de realizar funções computacionais. Esse fundamento se
origina, ainda, no surgimento da era da computação. Segundo Von Neumann e Wiener (1980),
arquiteturas paralelas foram apresentadas como maneiras de se obter maior capacidade de
processamento para executar tarefas nas quais se fazem necessárias altas cargas de
processamento.
De forma geral, são diversas as unidades de processamento ativas que colaboram para
resolver um problema especí�co por meio de cooperação. Cada uma delas, de certa forma,
destina-se à resolução de determinada parte de trabalho. No processamento paralelo, as
unidades se comunicam para trocar os resultados obtidos, ainda que intermediário, ou, no
mínimo, para dividir o início do trabalho e, consequentemente, para a junção �nal dos
resultados. São exemplos de programas paralelos aplicações escritas em:
C com várias threads;
Java com várias threads;
Java usando Remote Method Invocation (RMI);
C quebrada em vários processos que se comunicam por sockets.
Para utilizar os benefícios do processamento paralelo, é necessário que o programa seja
desenvolvido para executar várias unidades ativas. Caso tenha sido implementado utilizando
somente um processo que não dispara múltiplas threads, ele não executará o processamento
26/09/2021 22:51 Roteiro de Estudos
https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_749108_… 3/13
mais rápido em uma máquina dual. Assim, o programa não “quebrará” automaticamente o
sistema operacional e só executará o processamento em um único processador. Além disso,
não irá utilizar os benefícios de outros processadores que poderiam estar disponíveis na
arquitetura, seguindo o exemplo da máquina dual. A utilização de processamento paralelo traz
diversos benefícios, como o melhor desempenho e a redução do tempo de execução de
determinados processos, em função de utilizar várias unidades ativas para resolver um
problema.
O processamento paralelo tende a reduzir a probabilidade de falhas no cálculo, pelo fato de
que cada unidade ativa pode calcular o mesmo problema, procedimento conhecido também
como tolerância a falhas. Esse processamento reduz a complexidade da modelagem e,
consequentemente, da aplicação que usa linguagem paralela. O aproveitamento de recursos é
um dos benefícios do processamento paralelo, pois realiza um aproveitamento dos recursos
disponíveis na rede, executando uma aplicação com múltiplos processos.
A resolução no processamento paralelo se dá na quebra do problema em diversas partes, as
quais recebem, cada qual, uma série de instruções ainda menores, que são direcionadas para
inúmeras CPUs, a �m de serem resolvidas de maneira simultânea. A partir desse fundamento,
�ca fácil constatar que se torna mais rápido resolver problemas, pois, no caso de operações
que necessitam do processamento de grande quantidade de dados, há a necessidade de gerar
informações de maneira rápida. Para uma grande loja de varejo que possua uma loja virtual, o
processamento paralelo pode ser utilizado para a tomada de decisões, pois ele permite
veri�car um pico de usuários e realizar o processamento massivo de dados. De posse dos
resultados das informações geradas por esses dados, decorrentes do comportamento dos
usuários, o administrador da loja ou executivo da empresa pode tomar a decisão de criar uma
oferta. Outros exemplos práticos de processamento paralelo são os desktops que utilizam a
tecnologia dual core ou quad core em suas con�gurações, ou seja, são, de certa forma, diversas
CPUs, usando o sistema de multiprocessamento.
26/09/2021 22:51 Roteiro de Estudos
https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_749108_… 4/13
Fundamentos de Processamento
Distribuído
É notório que a área da computação tem como uma das principais características o avanço
tecnológico e o poder de conexão entre si, ou seja, os próprios computadores. Segundo
Tanenbaum (1992), esses avanços proporcionaram o surgimento de redes que permitem a
conexão de muitos computadores e a transmissão de dados em alta velocidade, bem como o
surgimento dos microprocessadores, cada vez mais avançados e de menor custo,
apresentando aumento da qualidade de interconexão entre as máquinas, tornando-se mais
con�áveis.
Todos esses acontecimentos incentivam a implementação do processamento distribuído, que
tem como uma das suas características a necessidade de softwares diferentes dos utilizados em
sistemas centralizados. Analisando os fundamentos de processamento distribuído, alguns
estudiosos e autores elaboraram diferenciações drásticas em relação ao processamento
paralelo, que pode gerar discussões. Já outros conceituam o processamento paralelo como
LIVRO
Core Java
Autores: Cay Horstmann e Gary Cornell
Editora: Pearson
Ano: 2009
Comentário: Java é uma das linguagens que desenvolvem
softwares paralelos. Este livro possui um guia prático para a
programação da linguagem com vários exemplos de códigos.
Indica-se a leitura do capítulo 3, que aborda a estrutura de
programação fundamental Java.
Esse título está disponível na Biblioteca Virtual Laureate.
26/09/2021 22:51 Roteiro de Estudos
https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_749108_…5/13
igual ao processamento distribuído, pois também se enquadra na de�nição prática e teórica de
processamento distribuído.
Na prática, para fundamentar o processamento distribuído, é quando o resultado de integrar
sistemas computacionais autônomos, combinados com objetivo de atingir um objetivo comum.
Que também pode ser entendido como sistemas “centralizados” interligados através de uma
rede que compartilha recursos físicos, com a intenção de desenvolver uma atividade ou tarefa
especí�ca. Tanenbaum (1992) a�rma que os sistemas paralelos também obedecem a esta
de�nição, mas, além de ter sistemas em máquinas dispersas, os processos são processados
paralela e concomitantemente.
Algumas vantagens do processamento distribuído são mais evidentes se comparadas com a
dos sistemas centralizados. Entre elas, está o ao baixo custo, principalmente devido ao avanço
tecnológico dos microprocessadores, que resultaram na queda dos preços. Sendo assim, a
implementação de sistemas distribuídos passa a ter custo menor e melhor desempenho, por
exemplo, um sistema distribuído com 20.000 microprocessadores, cada um dos quais rodando
a 20 MIPS (milhões de instruções por segundo), teria um desempenho de 400.000 MIPS.
Contudo, embora os sistemas distribuídos tenham melhor custo-benefício em relação aos
sistemas centralizados, não signi�ca que são mais baratos e ofereçam maior e�ciência no
processamento dos dados (TANENBAUM, 1992).
Para aplicações que exigem alto teor de con�abilidade, o processamento distribuído
normalmente é empregado, como no caso de controle de tráfego aéreo, que nunca pode parar
(mesmo que haja perda de 10% do seu funcionamento, ele não pode parar). Esse tipo de
sistema, como o de tráfego aéreo, corre grandes riscos de queda total caso seja utilizado um
sistema centralizado, pois dependeria do funcionamento do mainframe, e, assim, caso aconteça
algum problema, o sistema pode parar. Além disso, em sistemas centralizados, pode acontecer
saturação da rede pelo alto tráfego de dados com origem/destino ao mainframe.
Outros exemplos de aplicação de processamento distribuído são do sistema bancário, o qual
possui computadores distribuídos em várias agências que estão distantes �sicamente, sendo a
implantação de sistema distribuído mais viável.
26/09/2021 22:51 Roteiro de Estudos
https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_749108_… 6/13
Armazenamento de Dados
Distribuído
O armazenamento de dados inicialmente foi projetado para que os computadores desktop ou
os sistemas de computadores arquivassem as informações centralizadas em discos locais,
como os HDs, ou fossem transportados por discos móveis, como disquetes ou pendrives. Com
os avanços tecnológicos e a conexão entre computadores em redes, foi possível que diretórios
e arquivos passassem a ser compartilhados por usuário que utilizam a mesma rede, o que deu
a origem aos servidores de arquivos. Conforme Coulouris, Dollimore e Kindberg (2005, p. 17):
Um servidor de arquivos possibilita o armazenamento e o acesso a arquivos
remotos da mesma forma como se eles estivessem localmente no cliente,
possibilitando também que essas informações sejam acessadas de qualquer
computador da rede.
Conforme apontam Chow e Johnson (1998), o armazenamento de dados distribuído é uma
implementação de um sistema de arquivos que consiste em locais de armazenamento
LIVRO
Sistemas distribuídos: princípios e paradigmas
Autores: Andrew S. Tanenbaum e Maarten Van Steen
Editora: Pearson
Ano: 2007
Comentário: o livro aprofunda o tema sobre funcionamento
dos sistemas distribuídos. Recomenda-se a leitura do capítulo 1,
denominado De�nição do sistema distribuído, especi�camente do
tópico Tipos de sistemas distribuído.
Esse título está disponível na Biblioteca Virtual Laureate.
26/09/2021 22:51 Roteiro de Estudos
https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_749108_… 7/13
dispersos �sicamente em uma rede; entretanto, o armazenamento de dados distribuídos provê
uma visão de sistema de arquivos tradicional para o usuário. Dessa maneira, o armazenamento
de dados distribuídos possui a capacidade de executar o gerenciamento de vários dispositivos
que se encontram dispersos, tendo um espaço total composto por todos os discos que
compõem a sua rede. Existem con�gurações de armazenamento de dados nas quais os
servidores são executados em máquinas dedicadas ao armazenamento e às con�gurações na
qual um computador pode desempenhar o papel de servidor e de cliente (SILBERSCHATZ;
GALVIN; GAGNE, 2000).
O conceito de armazenamento de dados distribuídos pode ser comparado com o de clusters,
que são computadores fraca ou fortemente ligados que executam atividades integradas, os
quais, de certa forma, podem ser considerados como um único sistema. Os dados
armazenados podem ser processados para a geração de informações importantes que podem
ser utilizados pela gerência para tomada de decisões.
Existem várias ferramentas de armazenamento de dados distribuídos, como o Network File
System (NFS), da empresa Sun Microsystems, sendo comumente utilizado para aplicações de
sistemas Unix. Na versão inicial do NFS, foram divulgadas de maneira pública especi�cações do
seu protocolo, visando proporcionar a outras empresas de desenvolvimento a possibilidade de
criar servidores e buscar clientes que sejam compatíveis, facilitando o armazenamento
distribuído. É importante salientar que o NFS é basicamente uma coleção de protocolos. Sendo
assim, o NFS não pode ser considerado genuinamente um sistema de arquivos, mas viabiliza ao
cliente o modelo de um sistema de armazenamento distribuído. Segundo Tanenbaum e Steen
(2002), a ideia principal do NFS é possibilitar que um conjunto de clientes e servidores possa
compartilhar um sistema de arquivos, permitindo que um nó seja ao mesmo tempo um cliente
acessando arquivos remotos e um servidor exportando arquivos.
Os processos de replicação e fragmentação de dados também são considerados formas de
armazenamento de dados distribuído e normalmente são utilizados para banco de dados de
site. A replicação é uma forma de garantir que os dados distribuídos continuem atualizados.
Para isso, depois da replicação, os dados são armazenados de forma redundante no mínimo
em dois sites. Caso o banco de dados inteiro estiver contido em todos os sites, pode-se
determinar que é um banco de dados redundante. Já na fragmentação, os dados são divididos
em partes menores, e os fragmentos armazenados e distribuídos nos vários locais em que
serão utilizados. Eles são distribuídos de forma inteligente, para que possam ser usados para
reconstruir os dados originais, caso ocorra falha em um dos sites. Também é comum a
utilização de processos híbridos, mas toda a implementação de armazenamento de dados
distribuídos deve sempre considerar a segurança e a velocidade de acesso aos dados.
26/09/2021 22:51 Roteiro de Estudos
https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_749108_… 8/13
Plataformas de Processamento
Orientadas a Dados
A Data Science estuda uma série de ferramentas, técnicas e estratégias por uma equipe
formada pela união de times multidisciplinares, como pesquisadores especialistas do problema
que será resolvido, estatísticos, matemáticos e, logicamente, cientistas da computação.
Mediante o processamento massivo de dados, a Data Science procura ser um facilitador para
minerar dados que geram informações relevantes a partir de grandes bases de dados e que
levam à tomada de decisão orientada por dados. Com os avanços da área, é possível constatar
que existe uma nova geração de corporações e de empresas que são orientadas a dados e
ditam posicionamentos no mercado, o qual é extremamente competitivo.
Para facilitar o trabalho dos pro�ssionais de Data Science, existem plataformas e ferramentas
de processamentoorientadas a dados, que, na sua maioria, podem ser usadas em conjunto e
que têm como objetivo disponibilizar resultados importantíssimos para a tomada de decisão de
uma empresa, por exemplo. Uma delas é a denominada Anaconda, determinada como uma
distribuição das linguagens Python e R para acomputação cientí�ca e que possui pacotes
LIVRO
Sistemas de banco de dados
Autores: Ramez Elmasri e Shamkant B. Navathe
Editora: Pearson
Ano: 2005
Comentário: o livro apresenta a prática e a teoria dos
fundamentos que são importantes para o uso, a implementação
e os projetos de sistemas de banco de dados e suas aplicações.
Indica-se a leitura da parte 7, tópico 25, que aborda o banco de
dados distribuídos.
Esse título está disponível na Biblioteca Virtual Laureate.
26/09/2021 22:51 Roteiro de Estudos
https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_749108_… 9/13
destinados para Data Science. Sua instalação é aceita em diferentes sistemas operacionais,
como Linux, Windows e iOS. Anaconda pode ser de�nida como uma plataforma de
desenvolvimento pelo fato de que todos os pacotes mais utilizados na Data Science são
instalados em conjunto e também por possuir interface web, que proporciona a utilização de
aplicações nativas como Jupyter Lab. Dessa forma, os usuários podem desenvolver e
compartilhar documentos que combinam live code com texto narrativo.
O software Splunk também é uma opção, principalmente pelo avanço da Internet das Coisas
(IoT), pelo fato de agregar em apenas uma solução as funções de coletar, pesquisar, monitorar
e analisar grande quantidade de dados que são gerados por uma máquina. Empregando uma
boa gerência e o uso dos seus recursos, é possível criar dados su�cientes para orientar
empresas na tomada de decisões, de maneira fácil, pois as ferramentas Splunk possuem
também interface web. Para estudantes e pro�ssionais que queiram fazer testes e
experimentar, o Splunk é um software de fácil operação, no qual, em poucos cliques, já são
gerados relatórios a partir do processamento massivo de dados, sem a necessidade de
desenvolvimento de códigos. O software oferece também recursos para monitoramento,
análise de logs e redes sociais, de modo que, além dos pro�ssionais especialistas de tecnologia,
essa ferramenta é utilizada por pro�ssionais de marketing.
Com avanços quase diários na Data Science, existem, hoje, várias plataformas de
processamento orientadas a dados, recursos e ferramentas. Elas podem ser facilitadores para
empregar gerência e uso de recursos em clusters para orientar empresas na tomada de
decisões. Além das aqui apresentadas, é importante também citar: Spark, Knime, MongoDB,
entre outras.
Gerência e Uso de Recursos em
Clusters
Clusters é a denominação para a arquitetura de sistema que tem a capacidade de combinar
inúmeros computadores com o objetivo de trabalhar simultaneamente. Em outras palavras,
tratam-se de computadores combinados. Cada computador recebe o nome de “nodo”, os
quais, quando estão juntos, formam o cluster. Dessa forma, empresas de tecnologia podem
empregar gerência e uso de recursos em clusters para orientar empresas na tomada de
decisão, por meio do processamento massivo de dados. Segundo Schepke et al. (2005), cluster é
um conjunto de computadores independentes entre si, ligados por uma rede, formando um
único sistema através do uso de um software.
26/09/2021 22:51 Roteiro de Estudos
https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_749108… 10/13
A utilização de clusters tem sido bem difundida na criação de sistemas computacionais
paralelos, que estão presentes em aplicações para simulação de diversas áreas, como
petroquímica, biotecnologia e, evidentemente, mineração de dados, além de estarem
presentes em servidores de música, streamings, jogos on-line etc. A arquitetura de clusters de
computadores proposta por Mark Baker tem as seguintes características:
26/09/2021 22:51 Roteiro de Estudos
https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_749108… 11/13
Tabela 1: Características da arquitetura de clusters de computadores
Fonte: Adaptado de Baker e Buyya (1999, p. 21).
A gerência e o uso de recursos em clusters nas corporações que têm a necessidade de alto
poder de computação são bastante viáveis, levando-se em consideração o custo-benefício.
Podem ser um grande facilitador para orientar empresas na tomada de decisão.
Nome Característica
Backbone ou
rede de alta
velocidade
Representa a estrutura física de comunicação entre as máquinas que
compõem o agregado, podendo variar entre diversas possibilidades de
conexão.
Interface de
rede
São os componentes de rede presentes em cada uma das máquinas,
em que as interfaces devem possuir tecnologia de transmissão de
dados compatível com a estrutura física de comunicação.
Protocolo de
comunicação
Responsável pela troca de mensagens entre as interfaces de rede. Além
da utilização dos protocolos de comunicação mais comuns, existem
protocolos de baixa latência especí�cos para utilização em ambientes
de clusters.
Nó ou máquina
Um nó representa cada uma das máquinas que compõem um cluster,
podendo estas serem computadores comuns ou equipamentos
especializados como symmetric multiprocessors (SMPs)
Middleware
É o software responsável por garantir a transparência do sistema,
garantindo que todo o agregado funcione como um único ambiente
computacional.
Ambientes de
programação
paralela
Em clusters, o objetivo principal é a execução de aplicações paralelas de
tal forma que os diversos processos sejam executados
simultaneamente nos diversos nós do agregado. Porém, é desejável
que exista um ambiente de programação paralela de tal forma que
novas aplicações possam ser desenvolvidas pelo programador.
Aplicativos
paralelos
São os programas paralelos que serão executados de forma distribuída
nos diversos nós do cluster.
Aplicativos
sequenciais
São programas que devem ser executados de forma sequencial, não
aproveitando, assim, todos os recursos disponíveis em um cluster e
sendo executados em apenas um único processador.
26/09/2021 22:51 Roteiro de Estudos
https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_749108… 12/13
Conclusão
A partir do nosso roteiro de estudos, foi possível compreender elementos importantes do
processamento massivo de dados, no qual, inicialmente, é preciso conhecer tanto o
processamento paralelo quanto o distribuído no ambiente big data. Para realizar o
processamento de dados, é necessário o entendimento em relação ao armazenamento de
dados distribuído e, dependendo do resultado esperado, não é necessário criar códigos, pois as
plataformas de processamento orientadas a dados funcionam como grandes facilitadores.
Sendo assim, quando se está trabalhando com grandes corporações, é importante empregar a
gerência e o uso de recursos em clusters, que podem ser utilizados para diversas situações,
como, por exemplo, para orientar empresas na tomada de decisões.
Referências Bibliográ�cas
BAKER, M.; BUYYA, R. Cluster computing at a glace, high performance cluster computing:
architectures and systems. Melbourne: Ra jkumar Buyya, 1999.
CHOW, R.; JOHNSON, T. Distributed operating systems and algorithms. Massachusetts:
Addison Wesley Longman, 1998.
COULOURIS, G.; DOLLIMORE, J.; KINDBERG, T. Distributed systems: concepts and design. 4. ed.
Harlow: Addison Wesley Longman, 2005.
ELMASRI, R.; NAVATHE, S. B. Sistemas de Banco de Dados. 4. ed. Campinas: Pearson, 2005.
HORSTMANN, C.; CORNELL, G. Core Java. Campinas: Pearson, 2009.
SILBERSCHATZ, A.; GALVIN, P. B.; GAGNE, G. Applied operating system concepts. New York:
John Wiley & Sons, 2000.
TANENBAUM, A. S. Sistemas operacionais modernos. 3. ed. São Paulo: Campus,1992.
TANENBAUM, A. S.; STEEN, M. V. Distributed systems: principlesand paradigms. 2. ed. New
Jersey: Prentice Hall, 2002.
SCHEPKE, C. et al. Panorama de ferramentas para gerenciamento de clusters. III Workshop de
Processamento Paralelo e Distribuído, 2005.
VON NEUMANN, J.; WIENER, N. From mathematics to the tecnologies of life and death.
Cambridge: MIT Press, 1980.
26/09/2021 22:51 Roteiro de Estudos
https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_749108… 13/13

Continue navegando