M8E1
M8E1
M8E1
DE BIG DATA
Introdução
Os dados não estruturados representam mais de 80% dos dados existentes
no mundo. Com tanta informação em potencial, foi necessário desen-
volver novas soluções de armazenamento que não apenas pudessem
guardar esses dados, mas que fossem capazes de assegurar que eles
ficassem íntegros e com fácil acesso. Além disso, como as fontes dos
dados são crescentes, as novas soluções devem ser capazes de escalar o
armazenamento o quanto for necessário, sem perder tempo de execução
enquanto isso é realizado.
Neste capítulo, você vai aprender o que é o Hadoop Distributed File
System (HDFS) e quais são as suas principais vantagens e utilizações. Você
conhecerá também como o armazenamento em nuvem de grandes
empresas — como Amazon, Microsoft, Google e IBM — superou as
limitações que existiam quanto a custo e escalonamento. Por fim, você
compreenderá quais são as principais operações realizadas em dados
não estruturados.
2 Frameworks de armazenamento não estruturados
Arquitetura
Nesse sistema, os dados e metadados são armazenados separadamente. Os
metadados são armazenados em um servidor intitulado NameNode e, enquanto
os dados são armazenados em DataNodes, ambos ficam conectados entre
si, com comunicação constante. Dentro dos NameNodes, ficam registrados
diferentes atributos, que incluem tempo de modificação, permissão, acesso do
arquivo e espaço em disco. O conteúdo de cada arquivo é dividido em blocos
de tamanho definido e replicado em diferentes DataNodes para garantir a
integridade e durabilidade dos dados, conforme ilustra a Figura 1.
Tolerância a falhas
Um sistema é tolerante a falhas quando continua funcionando corretamente
mesmo que um dos seus componentes tenha parado de funcionar adequada-
mente, ou seja, falhado. O objetivo principal do HDFS é armazenar dados de
maneira confiável mesmo na presença de falhas. Os dois métodos principais
que possibilitam a sua alta tolerância a falhas são: replicação de dados e ponto
de verificação e recuperação.
A replicação de dados consiste em copiar um mesmo dado várias vezes
e alocá-lo em nós diferentes. Essa é uma técnica eficaz que possibilita uma
recuperação de falhas imediata e alta disponibilidade, mas tem como des-
vantagem consumir uma grande quantidade de memória de armazenamento
devido à redundância de informações guardadas.
Sempre que é solicitado o acesso aos dados pelo usuário, o NameNode
procura por todos os DataNodes onde esses dados estão contidos e fornece o
primeiro que está em funcionamento. Esse funcionamento é monitorado através
de pulsos enviados a partir dos DataNodes. Quando o NameNode para de
receber a pulsação de um DataNode, assume que ele não está funcionando.
Nesse caso, é realizada a verificação dos dados que estavam ali contidos e,
após, é criada uma réplica deles. No caso da identificação de um DataNode
“morto” durante a solicitação de um usuário, o NameNode busca o próximo nó
em funcionamento para fornecer os dados enquanto a replicação do nó morto
é realizada paralelamente, sem interrupção do acesso aos dados. Portanto, no
caso de falha de um dos nós, os dados continuam altamente disponíveis para
o usuário (SHVACHKO et al., 2010).
Já o ponto de verificação e recuperação possibilita a reversão de modificações
causadas no sistema até um determinado intervalo de tempo após a modificação
ter sido realizada. Isso funciona como um programa básico de texto, por exemplo,
onde são feitas diferentes modificações, mas há a opção de salvar o arquivo sem
salvar e abri-lo novamente com a versão do último salvamento. Esse método é
custoso e aumenta o tempo geral de execução do sistema, pois as operações de
reversão precisam voltar e verificar os últimos estágios consistentes que existem,
aumentando, portanto, o tempo de execução (PATIL; SONI, 2013).
Frameworks de armazenamento não estruturados 5
O HDFS e o Hadoop não são a mesma coisa. O Hadoop é um ecossistema onde estão
contidas diferentes aplicações para o processamento, organização e armazenamento de
grandes volumes de dados. O HDFS faz parte desse ecossistema, sendo um framework
de armazenamento.
6 Frameworks de armazenamento não estruturados
2 Armazenamento em nuvem
O armazenamento em nuvem é um serviço que surgiu em conjunto com a
chamada computação em nuvem, que corresponde a uma gama de recursos
da tecnologia da informação que podem ser utilizados sob demanda, sem a
necessidade de uma estrutura física local robusta. Além do armazenamento,
esses recursos incluem ambientes pré-configurados para a criação de data
lakes, plataformas de análises de dados, aprendizado de máquina, dentre outros
(AWS, 2020). Essa utilização sob demanda pode reduzir os custos físicos e
operacionais das empresas, além de poder apresentar maior segurança em
relação a alguns sistemas de armazenamento físico.
Segundo o estudo realizado pela RightScale, em 2018, com 997 represen-
tantes de empresas de pequeno, médio e grande porte, os principais serviços
de armazenamento em nuvem utilizados naquele ano foram: Amazon Web
Service, Microsoft Azure, Google Cloud Storage e IBM Cloud, conforme
apresenta a Figura 2.
Amazon S3
Amazon Web Services (AWS) é a plataforma de nuvem da empresa transna-
cional Amazon. É a mais utilizada e abrangente do mundo, com mais de 175
serviços completos em nuvem disponíveis para o usuário. Além do maior
Frameworks de armazenamento não estruturados 7
https://qrgo.page.link/187uX
https://qrgo.page.link/d1dTe
https://qrgo.page.link/bnNLX
https://qrgo.page.link/qK2Um
https://qrgo.page.link/cyf7e
Frameworks de armazenamento não estruturados 11
Vantagens Desvantagens
APACHE HADOOP. The Apache Hadoop project develops open-source software for
reliable, scalable, distributed computing. Apache Hadoop, [s. l.], [201–?]. Disponível em:
http://hadoop.apache.org/. Acesso em: 16 fev. 2020.
ASF INFRABOT. Powered by. Confluence, [s. l.], 9 jul. 2019. Disponível em: https://cwiki.
apache.org/confluence/display/HADOOP2/PoweredBy. Acesso em: 15 fev. 2020.
AWS. Data lakes e análises na AWS. AWS, [s. l.], [201–?]. Disponível em: https://aws.amazon.
com/pt/big-data/datalakes-and-analytics/. Acesso em: 16 fev. 2020.
AWS. Overview of Amazon web services. [S. l.]: AWS, 2020. Disponível em: https://
d1.awsstatic.com/whitepapers/aws-overview.pdf. Acesso em: 16 fev. 2020.
AWS. Simple monthly calculator. AWS, [s. l.], [2020?]. Disponível em: https://calculator.
s3.amazonaws.com/index.html?lng#. Acesso em: 16 fev. 2020.
COLLIER, M.; SHAHAN, R. Fundamentals of Azure: Microsoft Azure essentials. Redmond:
Microsoft Corporation, 2015.
COYNE, L. et al. IBM private, public, and hybrid cloud storage solutions. 5th ed. [S. l.]: Red-
books, 2018. Disponível em: http://www.redbooks.ibm.com/redpapers/pdfs/redp4873.
pdf. Acesso em: 16 fev. 2020.
GOOGLE CLOUD. Cloud Storage. Google Cloud, [s. l.], [201–?]. Disponível em: https://
cloud.google.com/storage. Acesso em: 16 fev. 2020.
GOOGLE CLOUD. Google cloud platform pricing calculator. Google Cloud, [s. l.], 2020.
Disponível em: https://cloud.google.com/products/calculator#id=ae05eb83-7e70-
4f9c-a5b3-671b01ea4e00. Acesso em: 16 fev. 2020.
HANSON, J. Uma introdução ao Hadoop distributed file system. IBM, [s. l.], 30 ago. 2012.
Disponível em: https://www.ibm.com/developerworks/br/library/wa-introhdfs/index.
html. Acesso em: 16 fev. 2020.
IBM CLOUD. Cloud object storage. IBM Cloud, [s. l.], 2019. Disponível em: https://cloud.
ibm.com/catalog/services/cloud-object-storage. Acesso em: 16 fev. 2020.
MICROSOFT AZURE. Calculadora de preço. Microsoft Azure, [s. l.], [2020?]. Disponível em:
https://azure.microsoft.com/pt-br/pricing/calculator/#storage4491fcd3-b2a8-4738-
b456-3c331329107c. Acesso em: 16 fev. 2020.
MICROSOFT AZURE. Introdução ao Azure. Microsoft Azure, [s. l.], [201–?]. Disponível em:
https://docs.microsoft.com/pt-br/azure/. Acesso em: 16 fev. 2020.
PATIL, V. S.; SONI, P. D. Hadoop skeleton & fault tolerance in Hadoop clusters. Interna-
tional Journal of Application or Innovation in Engineering & Management, [s. l.], v. 2, n. 2,
p. 247–250, Feb. 2013. Disponível em: https://pdfs.semanticscholar.org/e31b/59b5f6e
0c13bd3fe5ced614653bf3aea260e.pdf. Acesso em: 16 fev. 2020.
16 Frameworks de armazenamento não estruturados
PETERSON, N. Get started guide for Azure IT operators. [S. l.]: Microsoft, 2016. Disponível
em: https://docsmsftpdfs.blob.core.windows.net/guides/azure/azure-ops-guide.pdf.
Acesso em: 16 fev. 2020.
RIGHT SCALE. RightScale 2018 state of the cloud report: data to navigate your multi-cloud
strategy. [S. l.: s. n.], 2018. Disponível em: https://www.suse.com/media/report/rights-
cale_2018_state_of_the_cloud_report.pdf. Acesso em: 16 fev. 2020.
SHVACHKO, K. et al. The hadoop distributed file system. In: SYMPOSIUM ON MASSIVE
STORAGE SYSTEMS AND TECHNOLOGIES, 26., 2010, Incline Village, NV. Annals [...]. Incline
Village, NV: IEEE, 2010. p. 1-10. Disponível em: https://storageconference.us/2010/Papers/
MSST/Shvachko.pdf. Acesso em: 16 fev. 2020.
WHITE, T. Hadoop: the definitive guide. 3th ed. Sebastopol: O'Reilly Media, Inc., 2012.
XIN, R.; ROSEN, J.; PISTOR, K. Top 5 reasons for choosing S3 over HDFS. Databricks, [s. l.],
31 May 2017. Disponível em: https://databricks.com/blog/2017/05/31/top-5-reasons-
-for-choosing-s3-over-hdfs.html. Acesso em: 16 fev. 2020.
Os links para sites da web fornecidos neste capítulo foram todos testados, e seu fun-
cionamento foi comprovado no momento da publicação do material. No entanto, a
rede é extremamente dinâmica; suas páginas estão constantemente mudando de
local e conteúdo. Assim, os editores declaram não ter qualquer responsabilidade
sobre qualidade, precisão ou integralidade das informações referidas em tais links.