Processamento de Dados Massivos/Projeto e implementação de aplicações Big Data/Classificação associativa incremental (LAC): diferenças entre revisões

[edição não verificada][edição não verificada]
Conteúdo apagado Conteúdo adicionado
Sem resumo de edição
Sem resumo de edição
Linha 60:
 
Portanto o Distributed LAC necessita antes de classificar os dados agrupá-los. Um esquema, simplificado, pode ser visto na Figura 1, em que os itens de cores parecidas são agrupados e processados pela mesma CPU. Este é o primeiro passo do algoritmo.
 
[[Ficheiro:Http://blog.rguha.net/wp-content/uploads/2009/05/hadoop-chunking1.png|miniaturadaimagem|Divisão de um arquivo de Entrada em Chunks]]
 
[[Ficheiro:Esquema 1.svg|center|commoldura|Primeira fase do Distributed LAC.]]
Linha 71:
 
== Implementação em Hadoop ==
 
=== Map ===
 
 
=== Reduce ===
 
=== Decisões de Implementação ===
Linha 78 ⟶ 83:
Por padrão o Hadoop divide cada arquivo de entrada em vários chunks que são processador por diferentes mappers, este processo é feito para aumentar o grau de paralelismo.
 
[[Ficheiro:Hadoop-chunking1.png|commoldura|centro|Divisão de um arquivo de entradaEntrada em Chunks]]
 
Contudo, este processo não é o adequado para nossa aplicação, visto que queremos processar cada arquivo em um único mapper desta forma a cache do LAC será aproveitada adequadamente. Para garantir que cada arquivo seja processado por apenas um mapper foi extendida a classe de input desejada, no nosso caso '''KeyValueTextInputFormat''', e sobrecarregamos o método '''isSplitable()''' de forma que retornase '''false'''.
Linha 87 ⟶ 92:
Para que cada mapper possa processar o arquivo com as instâncias de teste é necessário que cada mapper possua um classificador treinado, uma solução seria antes de realizar o processamento em cada mapper obter o classificador previamente serializado por meio do HDFS, porém isto pode acarretar em um overhead considerável. Uma alternativa para este problema é copiar o classificador serilizado para cada maquina e assim o mapper acessa o arquivo localmente. O Hadoop fornece a classe '''DistributedCache''' para este tipo de situação, contudo durante nossos experimentos tivemos vários problemas com esta funcionalidade, desta forma replicamos a funcionalidade desta classe por meio de scripts em bash.
 
 
== Avaliação Experimental ==
 
=== Métodos de Particionamento ===
 
==== Particionamento Aleatório ====
 
==== Particionamento por Clustering ====
 
==== Particionamento por Clustering com cortes ====
 
== Conclusão ==