Processamento de Dados Massivos/Aspectos gerais do ambiente de Big Data: diferenças entre revisões

[edição não verificada][edição não verificada]
Conteúdo apagado Conteúdo adicionado
mSem resumo de edição
Inclusão de referências importantes
Linha 6:
== Arquitetura de ''datacenters'' ==
 
Em um ''datacenter'', recursos computacionais são organizados de forma concentrada, a fim de melhor controlar o consumo de energia necessária para o funcionamento dos equipamentos e para a refrigeração dos mesmos <ref>Barroso, L., e Holzle, U. [http://www.morganclaypool.com/doi/pdf/10.2200/s00193ed1v01y200905cac006 ''The Datacenter as a Computer: An Introduction to the Design of Warehouse-scale Machines'']. Synthesis lectures in computer architecture. Morgan & Claypool, 2009.</ref>. Dada a economia de escala envolvida, os computadores utilizados são computadores convencionais, “''off-the-shelf''”, cada um com boa capacidade de processamento, memória e discos. Os computadores são instalados em ''racks'', com dezenas de máquinas por ''rack''. Em cada ''rack'' é instalado um comutador (''switch'') Ethernet, denominado ''switch'' de topo de rack (TOR), que interliga as máquinas do rack à velocidade de 1 Gigabit por segundo, de forma não bloqueante (todas as máquinas podem se comunicar a 1 Gpbs, desde que o padrão de comunicação seja igualmente distribuído entre elas). Os ''switches'' TOR são então interligados por ''switches'' de ''backbone'' utilizando diversos ''links'' para cada rack, ou mesmo ''links'' de 10 Gpbs. Uma representação geral dessa infraestrutura é ilustrada na figura a seguir. Em ''datacenters'' muito grandes, pode até existir um segundo nível de comutadores, para expandir o alcance da rede <ref>Greenberg, A., Hamilton, J., Maltz, D. A., and Patel, P. The cost of a cloud: research problems in data center networks. SIGCOMM Computer Communication Review 39(1), Dec. 2008, 68–73.</ref>.
 
[[Imagem:ArquiteturaDatacenter|Center]]
Linha 17:
 
 
Considerando-se essa arquitetura, para garantir o melhor desempenho durante o processamento, dados devem ser distribuídos entre os discos das diversas máquinas de forma que possam ser lidos em paralelo, para serem processados também em paralelo. Apesar de algumas soluções mais simples deixarem a tarefa de organizar os dados dessa forma a cabo do usuário, idealmente essa funcionalidade deve ser oferecida por um sistema de armazenamento distribuído. Historicamente, sistemas de arquivo paralelos <ref>Nagle, D., Serenyi, D., and Matthews, A. The panasas activescale storage cluster: Delivering scalable high bandwidth storage. In ''Proceedings of the 2004 ACM/IEEE conference on Supercomputing'' (Washington, DC, USA, 2004), SC ’04, IEEE Computer Society, pp. 53–.</ref> foram desenvolvidos para esse fim no contexto de sistema de processamento de alto desempenho (HPC). Entretanto, no contexto de dados massivos, observou-se que os padrões de acesso aos dados tendem a ser mais simples que nos ambientes de HPC e soluções particulares têm se mostrado mais adequadas nesse contexto . O modelo mais adotado para esse fim tem sido o modelo proposto pelo Google File System (GFS) <ref>Ghemawat, S., Gobioff, H., and Leung, S.-T. [http://research.google.com/archive/gfs.html The google file system]. SIGOPS: Operation Systems Review 37(5), 2003, 29–43</ref> e também implementado pelo Hadoop File System (HDFS) <ref>Borthakur, D. [http://hadoop.apache.org/docs/r0.18.0/hdfs_design.pdf ''The Hadoop Distributed File System: Architecture and Design'']. The Apache Software Foundation, 2007.</ref>.
 
No Google File System, arquivos são escritos sequencialmente quando criados, ou dados são acrescentados sequencialmente ao final de um arquivo já existente (''append''). Alterações não são possíveis depois que um dado é escrito e o objetivo é tornar eficiente padrões de acesso que percorram todo o arquivo de cada vez. Para isso, arquivos são dividos em blocos grandes (usualmente 64 MB), que são distribuídos pelos discos de diversas máquinas do sistema e replicados para aumentar a disponibilidade dos mesmos.