mineração de dados usando mapreduce
Post on 03-Nov-2015
12 Views
Preview:
DESCRIPTION
TRANSCRIPT
-
UNIVERSIDADE FEDERAL DE SANTA MARIACENTRO DE TECNOLOGIA
CURSO DE CINCIA DA COMPUTAO
MINERAO DE DADOS DISTRIBUDAE ESCALVEL USANDO APACHE
MAHOUT
TRABALHO DE GRADUAO
Adriano Pereira
Santa Maria, RS, Brasil
2010
-
MINERAO DE DADOS DISTRIBUDA EESCALVEL USANDO APACHE MAHOUT
por
Adriano Pereira
Trabalho de Graduao apresentado ao Curso de Cincia da Computaoda Universidade Federal de Santa Maria (UFSM, RS), como requisito
parcial para a obteno do grau deBacharel em Cincia da Computao
Orientador: Profa. Andrea Schwertner Charo
Trabalho de Graduao N. 298
Santa Maria, RS, Brasil
2010
-
Universidade Federal de Santa MariaCentro de Tecnologia
Curso de Cincia da Computao
A Comisso Examinadora, abaixo assinada,aprova o Trabalho de Graduao
MINERAO DE DADOS DISTRIBUDA E ESCALVELUSANDO APACHE MAHOUT
elaborado porAdriano Pereira
como requisito parcial para obteno do grau deBacharel em Cincia da Computao
COMISSO EXAMINADORA:
Profa. Andrea Schwertner Charo(Presidente/Orientador)
Profa. Iara Augustin (UFSM)
Fernando Pires Barbosa (CPD/UFSM)
Santa Maria, 06 de Dezembro de 2010.
-
A vida uma tragdia quando vista de perto, mas uma comdia quando vistade longe.
CHARLES CHAPLIN
-
AGRADECIMENTOS
Primeiramente, gostaria de agradecer minha famlia, por estarem sempre comigo.Ao meu pai, Paulo, que sempre foi um exemplo, minha me, Leda, que sempre acreditouem mim, mesmo quando todos duvidavam, e minha irm, Aline, por aguentar o seuirmozinho caula.
Agradeo, tambm, aos amigos, que estavam presentes nos momentos bons e ruins.queles que cresceram comigo, com os quais compartilhei minha infncia; aos colegas,que viraram amigos, do Ensino Mdio; aos, mais que, vizinhos do parque Amaral; aoscolegas de faculdade e, especialmente, dos grupos PET da UFSM, meu sincero muitoobrigado.
No posso esquecer de mencionar os professores que contriburam para minha forma-o. Em especial, agradeo professora Andrea, pela tutoria e orientao ao longo demais de trs anos da graduao.
Enfim, agradeo a todos aqueles que estiveram presentes em minha caminhada e que,de alguma ou outra forma, contriburam para o meu crescimento.
-
RESUMO
Trabalho de GraduaoCurso de Cincia da Computao
Universidade Federal de Santa Maria
MINERAO DE DADOS DISTRIBUDA E ESCALVEL USANDO APACHEMAHOUT
Autor: Adriano PereiraOrientador: Profa. Andrea Schwertner Charo
Local e data da defesa: Santa Maria, 06 de Dezembro de 2010.
Grandes volumes de dados vm sendo gerados por ferramentas computacionais. Nes-tes dados, podem haver padres implcitos, a partir dos quais pode ser possvel extrairnovos conhecimentos. A minerao de dados preocupa-se com a busca de relaes, es-pecialmente, em grandes quantidades de dados, possibilitando a extrao de novas infor-maes teis. O uso de computao distribuda permite a descentralizao dos dados e aacelerao do processo de minerao. Apache Mahout uma ferramenta para a minera-o de dados distribuda, que faz uso do modelo de programao MapReduce, prometendoescalabilidade ao dividir a carga de trabalho em tarefas independentes entre si. Este traba-lho tem como objetivo verificar o desempenho do Apache Mahout, atravs da seleo dealgoritmos implementados pela ferramenta, preparao de um conjunto de dados, e exe-cuo destes algoritmos, neste conjunto de dados, em diferentes ambientes distribudos,analisando a escalabilidade da ferramenta, quanto ao ganho de desempenho em relaoao acrscimo de nodos ou ncleos ao processamento.
Palavras-chave: Minerao de Dados; Minerao de Dados Distribuda; Apache Mahout.
-
ABSTRACT
Trabalho de GraduaoUndergraduate Program in Computer Science
Universidade Federal de Santa Maria
SCALABLE AND DISTRIBUTED DATA MINING WITH APACHE MAHOUTAuthor: Adriano Pereira
Advisor: Profa. Andrea Schwertner Charo
Huge data sets have been generated from computing tools. Implicit patterns couldbe present in this data. Data mining worries in look for relationship, specially, in largedata sets, enabling the extration of useful new information. Distributed computing allowsthe data decentralization and speeds up the data mining process. Apache Mahout is adistributed data mining tool, which uses MapReduce program model, promising scala-bility by spliting the workload in independents tasks, among themselves. This work hasas objective to verify Apache Mahouts performance, through a implemented algoritmschoice, data set preparation and mining of these data in differents distributed environ-ments, analyzing the tools scalability, as the performance improvement due to nodes orcores addition to the processing.
Keywords: Data Mining, Distributed Data Mining, Apache Mahout.
-
LISTA DE FIGURAS
Figura 2.1 Minerao de dados como um passo da descoberta do conhecimento(FAYYAD; PIATETSKY-SHAPIRO; SMYTH, 1996) . . . . . . . . . . . . . . . . 18
Figura 2.2 CRISP-DM: metodologia para minerao de dados (LAROSE, 2005) . 20Figura 2.3 Etapas do pr-processamento dos dados (HAN; KAMBER, 2006) . . . . 21
Figura 3.1 Ambiente distribudo com Apache Hadoop executando Apache Mahout 30Figura 3.2 Exemplo de execuo do K-Means . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33Figura 3.3 Exemplo de execuo do FPGrowth (adaptado de Han e Kamber (2006)) 33Figura 3.4 Exemplo de execuo do algoritmo de clculo de similaridade . . . . . . . . 34Figura 3.5 Mapeamento de ndices utilizado para a integrao dos dados . . . . . . . . 36
Figura 4.1 Tempo de execuo do algoritmo K-Means - cluster Gates (em ms) . . . 42Figura 4.2 Acelerao do algoritmo K-Means - cluster Gates . . . . . . . . . . . . . . . . . . . 42Figura 4.3 Tempo de execuo do algoritmo K-Means - cluster Atlntica (em ms) 43Figura 4.4 Acelerao do algoritmo K-Means - cluster Atlntica . . . . . . . . . . . . . . . . 43Figura 4.5 Tempo de execuo do algoritmo FPGrowth - cluster Gates (em ms) . . 44Figura 4.6 Acelerao do algoritmo FPGrowth - cluster Gates . . . . . . . . . . . . . . . . . . 45Figura 4.7 Interface Hadoop - Tasktracker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45Figura 4.8 Tempo de execuo do algoritmo FPGrowth - ambiente heterogneo
(em ms) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46Figura 4.9 Acelerao do algoritmo FPGrowth - ambiente heterogneo . . . . . . . . . . 46Figura 4.10 Tempo de execuo do algoritmo de clculo de similaridade de itens
- cluster Atlntica (em ms) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47Figura 4.11 Acelerao do algoritmo de clculo de similaridade de itens - cluster
Atlntica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48Figura 4.12 Tempo de execuo do algoritmo de clculo de similaridade de itens
- cluster Gates (em ms) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49Figura 4.13 Acelerao do algoritmo de clculo de similaridade de itens - cluster
Gates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49Figura 4.14 Tempo de execuo do algoritmo de clculo de similaridade de itens
- ambiente heterogneo (em ms) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50Figura 4.15 Acelerao do algoritmo de clculo de similaridade de itens - ambi-
ente heterogneo - execues distribudas . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
-
LISTA DE TABELAS
Tabela 4.1 Mquinas - ambiente heterogneo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39Tabela 4.2 Desempenho K-Means - cluster Gates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41Tabela 4.3 Desempenho K-Means - cluster Atlntica . . . . . . . . . . . . . . . . . . . . . . . . . . . 42Tabela 4.4 Desempenho FPGrowth - cluster Gates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44Tabela 4.5 Desempenho FPGrowth - ambiente heterogneo . . . . . . . . . . . . . . . . . . . . . 46Tabela 4.6 Desempenho clculo de similaridade de itens - cluster Atlntica . . . . . . 47Tabela 4.7 Desempenho clculo de similaridade de itens - cluster Gates . . . . . . . . . 48Tabela 4.8 Desempenho clculo de similaridade de itens - ambiente heterogneo . 49
-
LISTA DE ABREVIATURAS E SIGLAS
API Application Programming Interface
ARFF Attribute-Relation File Format
CPD Centro de Processamento de Dados
CF Collaborative Filtering
CRISP-DM Cross-Industry Standard Process for Data Mining
CSV Comma-Separated Values
FPG Parallel FPGrowth
FPM Frequent Pattern Mining
HDFS Hadoop Distributed File System
PUCRS Pontifcia Universidade Catlica do Rio Grande do Sul
JAR Java ARchive
JVM Java Virtual Machine (Mquina Virtual Java)
LAD Laboratrio de Alto Desempenho
SSH Secure Shell
UFSM Universidade Federal de Santa Maria
URI Uniform Resource Identifier
-
SUMRIO
1 INTRODUO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.1 Justificativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151.3 Estrutura do Texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2 FUNDAMENTAO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.1 Minerao de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.1.1 Descoberta do Conhecimento em Bases de Dados . . . . . . . . . . . . . . . . . . . . . . . . 172.1.2 Modelo de Processo CRISP-DM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.1.3 Pr-processamento dos dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.1.4 Tarefas de Minerao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.2 Minerao de Dados Distribuda e Escalvel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.2.1 Conceituao. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.2.2 Ferramentas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.3 Ferramentas Utilizadas no Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.3.1 Apache Hadoop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.3.2 Apache Mahout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3 DESENVOLVIMENTO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.1 Instalao e Configurao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.1.1 Requisitos do Apache Mahout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.1.2 Requisitos do Apache Hadoop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313.1.3 Configurao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313.2 Escolha dos Algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323.3 Utilizao do Mahout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343.4 Preparao dos Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353.4.1 Integrao. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363.4.2 Transformao dos Dados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4 RESULTADOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394.1 Ambientes de Teste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394.2 Casos de Teste e Desempenho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404.2.1 Caso I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414.2.2 Caso II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424.2.3 Caso III . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454.3 Avaliao dos Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5 CONCLUSO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
-
REFERNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
APNDICE A CDIGOS FONTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
-
1 INTRODUO
A evoluo da tecnologia de informao, a partir da dcada de 60, transformou siste-
mas simples de processamentos de arquivos em sofisticadas bases de dados. O progresso
contnuo das tecnologias de hardware visualizado nas ltimas trs dcadas culminou com
a criao de poderosas ferramentas computacionais. Estas ferramentas impulsionaram a
indstria de informao, gerando uma grande quantidade de bases de dados (HAN; KAM-
BER, 2006). O crescimento da quantidade de dados disponveis ocorre em todas as reas
de esforo humano, como em dados de transaes de mercado, uso de cartes de crdito,
detalhes de chamadas de telefone, estatsticas de governo, bases de dados moleculares e
registros mdicos (HAND; MANNILA; SMYTH, 2001).
Com a disponibilidade de grandes volumes de dados digitais, surge interesse em in-
vestigar teorias e ferramentas para auxiliar a extrao de informao e conhecimento teis
deles (FAYYAD; PIATETSKY-SHAPIRO; SMYTH, 1996). Manter bases de dados ape-
nas para realizao de consultas e processamento de transaes no mais visto de ma-
neira satisfatria. Dessa forma, o prximo alvo trata da investigao avanada dos dados
(HAN; KAMBER, 2006), a partir da qual possvel encontrar relaes e padres implci-
tos, descobrindo informaes teis. Neste ponto est a minerao de dados, um processo
de descoberta de novas relaes, tendncias e padres significativos, atravs da filtragem
de grandes quantidades de dados armazenados em repositrios, utilizando tecnologias de
reconhecimento de padres, matemticas e estatsticas (LAROSE, 2005).
Diferentes razes levam distribuio geogrfica dos dados de interesse, como ques-
tes de segurana e uso de diferentes bases de dados, tornando invivel a aplicao cen-
tralizada dos processos de minerao (KARGUPTA et al., 1999). O uso de tcnicas cen-
tralizadas no adequado aos cenrios atuais, devido complexidade das tarefas de mine-
rao. Nestes caso, tcnicas de sistemas distribudos podem ser utilizadas, possibilitando
-
14
a distribuio dos dados e acelerando o processo (PREZ et al., 2007).
Inspirado nas primitivas map e reduce das linguagens funcionais, o modelo de progra-
mao MapReduce foi proposto por Dean e Ghemawat (2008), prometendo escalabilidade
ao dividir a carga de trabalho em tarefas que podem ser executadas de forma independente
e paralela. A ferramenta Apache Hadoop possui um framework, distribudo como cdigo
fonte aberto, que implementa este modelo (The Apache Software Foundation, 2007a).
Existem vrias ferramentas para a minerao de dados, especialmente, que executam
os algoritmos de forma distribuda. Neste trabalho ser feita uma anlise do desempenho
do software Apache Mahout, uma soluo recente de ferramenta para emprego de mine-
rao de dados em ambiente distribudo e escalvel. O Apache Mahout uma biblio-
teca de algoritmos de minerao de dados e aprendizagem de mquina, escrita utilizando
o framework MapReduce disponibilizado pelo Apache Hadoop (The Apache Software
Foundation, 2010a).
1.1 Justificativa
Este trabalho justifica-se ao passo da necessidade visualizada para a execuo de al-
goritmos de minerao de dados, utilizando ferramentas computacionais. Tcnicas e fer-
ramentas de minerao de dados so utilizadas em vrios tipos de aplicao, como em
marketing, vendas, aplicaes mdicas e processo de controle industrial (BERRY; LI-
NOFF, 2004).
Com o surgimento de novas tecnologias, dispostas a implantar a minerao de forma
distribuda, visualiza-se a necessidade da realizao de testes, para verificar o comporta-
mento, quanto ao desempenho, dessas novas abordagens. A partir da escolha de algorit-
mos de minerao, preparao de um conjunto de dados e execuo destes algoritmos,
analisando o conjunto de dados preparado, em diferentes ambientes distribudos, pode-se
verificar o desempenho da ferramenta.
A escolha pela ferramenta Apache Mahout deu-se em funo de ser uma soluo
recente, distribuda como cdigo fonte aberto, e que faz uso do modelo de programao
MapReduce para a implementao dos algoritmos, prometendo, com isso, ser escalvel.
-
15
1.2 Objetivos
Este trabalho tem como objetivo geral investigar a ferramenta Apache Mahout como
soluo para minerao de dados distribuda e escalvel. Para realizar esta anlise, ser
feita a preparao de um conjunto de dados a serem minerados, escolhidos e executados
algoritmos de minerao implementados pela ferramenta, e feita a anlise do desempenho
obtido em diferentes ambientes de execuo.
Especificamente, o trabalho tem como objetivos:
Estudar o funcionamento do Apache Mahout, identificando os algoritmos suporta-dos pela ferramentas e os requisitos para seu funcionamento em ambientes centra-
lizado e distribudo;
Selecionar um conjunto de algoritmos de minerao implementados pela ferra-menta;
Preparar uma fonte de dados, selecionando e convertendo os dados de forma a seremsuportados pela ferramenta; e
Avaliar os resultados de desempenho obtidos, a partir da execuo do aplicativo emdiferentes ambientes distribudos.
1.3 Estrutura do Texto
Este trabalho est organizado da seguinte maneira: o captulo 2 traz uma fundamen-
tao terica acerca dos assuntos abordados no trabalho, tratando da minerao de dados,
minerao de dados distribuda e escalvel, e das ferramentas utilizadas. O captulo 3 fala
sobre o desenvolvimento do trabalho, indicando os requisitos para a instalao e confi-
gurao das ferramentas, sobre os algoritmos selecionados para os testes, as formas de
utilizao da ferramenta e os passos realizados para a preparao dos dados investigados.
O captulo 4 fala sobre os testes realizados e os resultados obtidos. Por fim, o captulo 5
conclui o trabalho, indicando sua contribuio e possveis trabalhos futuros.
-
2 FUNDAMENTAO
Neste captulo esto descritos conceitos tericos que fundamentam este trabalho, as-
sim como as ferramentas utilizadas para o desenvolvimento dele.
2.1 Minerao de Dados
A existncia de grandes quantidades de dados sem a disponibilidade de ferramentas
para anlise pode ser vista como uma situao de "dados ricos, mas informaes pobres",
uma vez que humanamente impossvel analisar esse imenso volume sem o uso de fer-
ramentas computacionais (HAN; KAMBER, 2006). O interesse em analisar esses dados
cresce com a possibilidade de extrao de informaes potencialmente teis para seus
donos. Essa uma preocupao da minerao de dados (HAND; MANNILA; SMYTH,
2001), cujas ferramentas podem descobrir padres teis, contribuindo em reas como es-
tratgias de negcios, bases de conhecimento, alm de pesquisas cientficas (HAN; KAM-
BER, 2006).
Segundo Hand et al. (2001) , minerao de dados a "anlise de conjuntos de dados,
geralmente grandes, para encontrar relaes no suspeitas e resumir os dados em novas
maneiras, compreensveis e teis para seu dono". Para Han e Kamber (2006) , minerao
de dados refere-se extrao, ou minerao, de conhecimento a partir de grandes volumes
de dados.
Os algoritmos de minerao de dados envolvem tcnicas de estatstica, aprendizagem
de mquina, reconhecimento de padres, inteligncia artificial, recuperao de informa-
o, processamento de sinais e anlise espacial ou temporal de dados. A minerao de
dados considerado um dos mais promissores desenvolvimentos interdisciplinares nas
tecnologias de informao (LAROSE, 2005).
-
17
2.1.1 Descoberta do Conhecimento em Bases de Dados
A minerao de dados uma das etapas do processo de descoberta de conhecimento
em bases de dados (knowledge discovery in databases). A descoberta do conhecimento
vista como a extrao de conhecimento til a partir de um conjunto de dados, enquanto
que minerao de dados a aplicao de algoritmos especficos para encontrar padres
nesses dados (FAYYAD; PIATETSKY-SHAPIRO; SMYTH, 1996).
Como um processo, descoberta de conhecimento em bases de dados consiste em uma
sequncia iterativa de passos (HAN; KAMBER, 2006). Este processo inicia com a de-
finio de seus objetivos, onde entendido o domnio da aplicao. Na segunda etapa,
constroi-se o conjunto de dados que ser alvo da descoberta. A terceira fase trata de lim-
par e pr-processar os dados, removendo rudos e decidindo estratgias para lidar com
a falta de campos. No quarto passo, o volume de dados reduzido e projetado, dimi-
nuindo o nmero de variveis a serem analisadas e encontrando formas de representao
em funo dos objetivos do processo. Em seguida, na quinta etapa, encontra-se uma ta-
refa de minerao apropriada ao processo de descoberta realizado. A sexta etapa consiste
em escolher algoritmo e mtodo de minerao apropriados para a anlise, com base na
tarefa de minerao. O stimo passo a minerao de dados em si, no qual so busca-
dos padres de interesse, em uma forma de representao particular. A oitava etapa trata
da interpretao dos padres minerados, envolvendo a visualizao da sada de dados da
etapa anterior. Por fim, o nono passo engloba o uso do conhecimento descoberto a partir
de todo o processo (FAYYAD; PIATETSKY-SHAPIRO; SMYTH, 1996). A figura 2.1
ilustra as etapas da descoberta do conhecimento.
2.1.2 Modelo de Processo CRISP-DM
Em meio necessidade de padronizao de processos e modelos de minerao de da-
dos, a construo de um modelo no proprietrio, livre e bem documentado, possibilitaria
a organizaes obterem melhores resultados no processo. Diante deste contexto, surge,
em 1996, o Cross-Industry Standard Process for Data Mining (CRISP-DM) (SHEARER,
2000), um projeto que desenvolveu um modelo de processo de minerao de dados neutro
em termos de indstria e ferramenta (DATA MINING, 2010). CRISP-DM prov um pro-
cesso padro para que a minerao de dados seja realizada apropriadamente na resoluo
de problemas, tanto em pesquisa quanto em aplicaes comerciais (LAROSE, 2005).
-
18
Figura 2.1: Minerao de dados como um passo da descoberta do conhecimento(FAYYAD; PIATETSKY-SHAPIRO; SMYTH, 1996)
CRISP-DM um modelo de processo e metodologia para a conduo completa de
um projeto de minerao de dados, dividindo-o em seis fases (SHEARER, 2000). A
sequncia de execuo adaptativa, estando as fases subsequentes atreladas s sadas
das fases precedentes. A figura 2.2 ilustra o ciclo de vida de um projeto que segue o
CRISP-DM. Nela, as setas internas indicam as dependncias mais comuns, enquanto que
as externas indicam o ciclo natural (LAROSE, 2005). As seis fases do processo esto
descritas a seguir, segundo Larose (2005) e Shearer (2000).
A primeira fase trata do entendimento do negcio, onde se deve compreender os obje-
tivos e requirimentos do projeto, em uma perspectiva de negcio ou pesquisa. Com isso,
pode-se traduzi-los para uma definio de problema de minerao de dados. Nesta fase,
deve-se preparar uma estratgia preliminar para atingir os objetivos do projeto. O enten-
dimento do negcio compreende a determinao dos objetivos do negcio, avaliao da
situao, determinao dos objetivos da minerao e produo do plano do projeto.
O entendimento dos dados a segunda fase do processo. O analista passa a familiarizar-
se com os dados, a partir de uma coleo inicial. Nesta etapa, pode-se identificar proble-
mas nestes dados, encontrar conhecimento inicial e detectar subconjuntos que possam
ser utilizados para formular hipteses acerca da falta de dados, ou ainda que contenham
padres adicionais. Esta etapa formada por quatro passos principais: compilao dos
dados iniciais, descrio, explorao e verificao da qualidade dos dados.
Na terceira fase do processo, preparao dos dados, esto as atividades de construo
do conjunto final de dados, a partir dos dados brutos iniciais. Nesta fase, so selecionados
casos e variveis apropriados e de interesse analise. Quando necessrio, so realizadas
-
19
transformaes nestes dados, que tambm devem ser limpos para que estejam apropria-
dos para as ferramentas de modelagem. A fase de preparao compreende os passos de
seleo, limpeza, construo, integrao e formatao dos dados.
Modelagem a quarta fase do processo CRISP-DM. Nesta etapa, so selecionadas
tcnicas de modelagem, e suas configuraes so calibradas para otimizar os resultados.
Em geral, mais de uma tcnica pode ser utilizada para o mesmo problema de minerao
de dados. Algumas delas necessitam que os dados estejam em um formato especfico;
portanto, pode ser necessrio voltar fase de preparao dos dados. Os passos envolvidos
nesta etapa abrangem a seleo da tcnica de modelagem, a gerao de caso de teste,
criao e avaliao de modelos.
Na quinta fase, avaliao, verifica-se se os modelos escolhidos na fase de modelagem
esto de acordo com os objetivos do negcio, avaliando-os em termos de efetividade e
qualidade. Por fim, pode-se decidir sobre a utilizao dos resultados da minerao. A
fase de avaliao conta com os passos de avaliao dos resultados, reviso do processo e
determinao dos passos posteriores.
A ltima fase do processo o desenvolvimento, onde feito uso do modelo gerado
anteriormente. Nesta etapa, o conhecimento descoberto deve ser apresentado de modo
que o interessado na minerao tome conhecimento das formas em que pode utilizar este
conhecimento. Os passos da sexta fase do processo so: planejar o desenvolvimento, o
monitoramento e a manuteno, produzir o relatrio final e revisar o projeto.
2.1.3 Pr-processamento dos dados
necessrio preparar os dados para a minerao, pois, em geral, eles tendem a ser
incompletos, inconsistentes, e contem rudos (HAN; KAMBER, 2006). A minerao de
dados muitas vezes realizada em bases com dados antigos, nas quais h campos expira-
dos, no mais relevantes ou, ainda, faltam valores. Com o pr-processamento, espera-se
minimizar o "lixo" que entra na anlise, para minimizar a sada de "lixo" no resultado
(LAROSE, 2005). Dados incompletos podem ocorrer em virtude da ausncia de atributos
de interesse minerao, ou do desinteresse por estes atributos no momento da modela-
gem ou insero dos dados. Rudos so referentes a atributos contendo valores incorretos,
o que pode acontecer por erro de mquina ou mesmo erros humanos durante a entrada dos
dados. A inconsistncia dos dados pode ocorrer em virtude do uso de diferentes fontes de
-
20
Figura 2.2: CRISP-DM: metodologia para minerao de dados (LAROSE, 2005)
dados, com nomenclaturas prprias, diferentes daquelas de outras fontes. A seguir, so
descritas as etapas de pr-processamento dos dados, segundo Han e Kamber (2006) . A
figura 2.3 ilustra estas etapas.
Limpeza. Nesta etapa, valores ausentes so preenchidos, rudos so removidos, anoma-
lias e inconsistncias so identificadas ou removidas. Usurios no confiam na
minerao de dados que no estejam "limpos". Alm disso, minerar dados que no
passaram por um processo de limpeza pode provocar resultados inconsistentes.
Integrao. A necessidade da anlise de diversas fontes de dados distintas torna necess-
ria a integrao desses dados. A etapa de integrao dos dados consiste em unificar
diferentes bases de dados, padronizando nomes de atributos e identificando incon-
sistncias.
Transformao. Os algoritmos de minerao necessitam que os dados estejam em for-
matos especficos, como, por exemplo, normalizados. Para tanto, necessrio trans-
-
21
formar a base de dados investigada, de forma que os dados analisados estejam em
um formato apropriado.
Reduo. A grande quantidade de dados disponveis para anlise pode tornar o processo
de minerao demasiadamente custoso. Neste caso, necessrio reduzir o grande
volume de dados em um conjunto menor, ou selecionar atributos de interesse, do
qual ainda seja possvel obter resultados iguais, ou semelhantes.
Figura 2.3: Etapas do pr-processamento dos dados (HAN; KAMBER, 2006)
Vale salientar que o sucesso da minerao de dados depende da correta preparao
e populao da base que ser investigada. O processo de coleta deve estar consolidado,
-
22
garantindo a integridade e corretude dos dados (BERNARDI, 2010), para que o processo
de minerao possa ser executado corretamente, possibilitando s etapas posteriores a
extrao de conhecimento til.
2.1.4 Tarefas de Minerao
Com base nos objetivos da anlise dos dados, pode-se categorizar a minerao de
dados em tipos de tarefas (HAND; MANNILA; SMYTH, 2001). A seguir so descritas
os tipos de tarefa comumente classificados:
Agrupamento (clustering), consiste no agrupamento de registros em classes de objetos
similares. Denomina-se cluster um conjunto de registros similares entre si, e dife-
rentes dos registros presentes nos outros clusters. A tarefa de agrupamento busca
segmentar a entrada de dados em subgrupos (clusters) homogneos, maximizando a
similaridade entre os registros de um mesmo cluster, e minimizando a similaridade
entre registros de diferentes clusters (LAROSE, 2005).
Classificao (classification), trata da classificao de registros em relao a uma vari-
vel de categoria. A partir dessa varivel, so delimitadas classes discretas, s quais
estaro relacionados os registros da base de dados analisada. Primeiramente, reali-
zada uma anlise dos dados j classificados, a partir dos quais possvel "aprender"
o mtodo utilizado para classificar os registros (LAROSE, 2005); feito isso, pos-
svel examinar as caractersticas de novos registros, associando-os, devidamente, a
uma das classes pr-definidas (BERRY; LINOFF, 2004).
Estimativa (estimation), consiste em estimar o valor de uma varivel desconhecida em
um novo registro. Pode-se considerar que se trata de uma tarefa de classificao
com valores contnuos, enquanto que a classificao em si trata de valores discretos
(BERRY; LINOFF, 2004). A estimativa realizada a partir da anlise das variveis
conhecidas do registro, em relao aos valores dos registros j presentes na base de
dados (LAROSE, 2005).
Predio (prediction), tarefa semelhante classificao e estimativa, porm com os
valores previstos para o futuro. Pode-se considerar uma adaptao das tcnicas
de estimativa e classificao, onde os casos de treinamento utilizam histricos dos
-
23
valores dos registros. Os comportamento histrico dos dados utilizado na cons-
truo do modelo, de forma que, quando o modelo utilizado em novos registros,
o resultado uma previso para o futuro (BERRY; LINOFF, 2004).
Associao (association), busca descobrir relaes entre dois ou mais atributos, veri-
ficando quais deles "devem estar juntos" (LAROSE, 2005). Tambm conhecida
como grupos de afinidade, uma abordagem simples para gerar regras a partir de
dados (BERRY; LINOFF, 2004).
Descrio (description), consiste em descrever padres e tendncias em um conjunto de
dados, possibilitando explicaes acerca desses padres e tendncias (LAROSE,
2005). Uma boa descrio pode, ao menos, sugerir por onde comear a busca por
explicaes a respeito dos dados (BERRY; LINOFF, 2004).
Recomendao (recommendation), atravs da anlise dos dados, auxilia usurios reco-
mendando itens, que possam vir a ser de interesse (SARWAR et al., 2001).
2.2 Minerao de Dados Distribuda e Escalvel
2.2.1 Conceituao
Em geral, tcnicas de minerao de dados so centralizadas e monolticas. Esse tipo
de abordagem tem se tornado inadequada para diversos cenrios atuais, em virtude da
complexidade das tarefas de minerao e de problemas relacionados segurana dos da-
dos, os quais podem estar distribudos entre vrias organizaes (PREZ et al., 2007).
Neste contexto, verifica-se a necessidade de processos de minerao de dados distribu-
dos e com alto desempenho, permitindo cenrios com volumes de dados cada vez maiores
(WEGENER et al., 2009).
Segundo Wegener et al. (2009), abordagens utilizando o sistema de arquivos distri-
budo Google File System e o modelo de programao MapReduce provaram-se eficazes
na anlise de grandes quantidades de dados paralelamente, em clusters de computadores.
Sendo assim, pode-se construir sistemas de minerao de dados distribuda, os quais uti-
lizam mltiplos processadores e bases de dados para acelerar a execuo do processo de
minerao, possibilitando, tambm, a distribuio dos dados (PREZ et al., 2007).
Sistemas distribudos podem trabalhar em diferentes escalas. Um sistema dito es-
calvel se continua eficiente frente ao aumento do nmero de recursos e usurios (COU-
-
24
LOURIS; DOLLIMORE; TIM, 2000). Segundo Jogalekar e Woodside (2000), um sis-
tema considerado escalvel se pode ser implementado efetiva e economicamente sobre
uma srie de diferentes "tamanhos", devidamente definidos.
Escalabilidade est relacionada com o aumento do desempenho de um sistema, em
virtude de seu crescimento. Em aplicaes de minerao de dados, escalabilidade signi-
fica tirar proveito do gerenciamento de bases de dados paralelas e processadores adicio-
nais, possibilitando trabalhar com volumes maiores de dados, construir mais modelos e
aumentar sua corretude apenas adicionando processadores. Idealmente, a escalabilidade
deveria ser linear: dobrando o nmero de processadores, o processo deveria ser executado
na metade do tempo original (SMALL; EDELSTEIN, 1997).
2.2.2 Ferramentas
Exites vrias ferramentas que implementam algoritmos de minerao de dados de
forma distribuda. Em sua maioria, as ferramentas tentam utilizar a ferramenta Weka
em ambientes distribudos, tornando paralelas algumas de suas operaes (WEGENER
et al., 2009). Em seguida, so listadas algumas ferramentas para minerao de dados
distribuda:
Weka-Parallel, trata-se de uma modificao da ferramenta Weka, permitindo a execu-
o da minerao de dados em ambientes distribudos, atravs da implementao
paralela da metodologia de validao cruzada. Tcnicas de classificao, regresso,
agrupamento e seleo utilizam a metodologia de validao cruzada, a qual ine-
rentemente paralelizvel. Assim como a ferramenta Weka, Weka-Parallel escrita
em linguagem de programao Java (CELIS; MUSICANT, 2002).
Grid-enabled Weka, realiza a minerao de dados de forma distribuda, atravs da dis-
tribuio da execuo das tarefas, em um ambiente de grade. A arquitetura do
Grid-enabled Weka baseada em vrios servidores que realizam a execuo da mi-
nerao de tarefas. Estas tarefas so divididas e distribudas, entre os servidores
disponveis, pelos clientes (KHOUSSAINOV; ZUO; KUSHMERICK, 2004).
Weka4WS, um framework que estende a ferramenta Weka, suportando minerao de
dados distribuda em ambientes de grade, de modo a explorar a distribuio dos
dados e aumentar o desempenho da aplicao. Para permitir a minerao distri-
-
25
buda, cada algoritmo de minerao de dados disponibilizado pela biblioteca Weka
exposto como um Web Service. Embora a minerao seja feita em um ambi-
ente distribudo, as fases de pr-processamento e visualizao dos dados so feitas
localmente (TALIA; TRUNFIO; VERTA, 2005).
MapReduce Weka, trata-se de uma nova arquitetura para sistemas de minerao de gran-
des volumes de dados, apresentada em Wegener et al. (2009). Implementa uma
interface grfica para os usurios, e utiliza o modelo de programao MapReduce,
em clusters ou grades computacionais. A arquitetura baseada em um Data Mining
Client, que realiza requisies, atravs de interface grfica baseada na ferramenta
Weka (Weka Explorer), para o cluster. Para cada requisio, criada uma ins-
tncia de Data Mining Server, responsvel pela execuo da minerao de dados,
executando a parte sequencial do algoritmo e submetendo tarefas paralelizveis ao
framework MapReduce, da ferramenta Apache Hadoop.
GridMiner, um framework que traz como objetivo facilitar a minerao de dados em
um ambiente de grade, provendo uma interface que abstraia a complexidade da
grade, embora permita o controle e a visualizao das tarefas de minerao. Grid-
Miner uma aplicao orientada a servios, implementada sobre a ferramenta Glo-
bus (PETER et al., 2004), uma tecnologia utilizada para a construo de grades
computacionais (GLOBUS, 2010).
2.3 Ferramentas Utilizadas no Trabalho
Nesta seo esto descritas as ferramentas Apache Hadoop e Apache Mahout, utiliza-
das neste trabalho. A ferramenta Apache Mahout realiza a minerao dos dados utilizando
recursos do Apache Hadoop, para que essa minerao possa ser executada em um ambi-
ente distribudo. O Apache Hadoop est descrito primeiramente, pois um requisito para
a execuo distribuda do Apache Mahout.
2.3.1 Apache Hadoop
O projeto Apache Hadoop um conjunto de programas, de cdigo aberto, voltados
computao distribuda e escalvel (The Apache Software Foundation, 2007b). Dentre
os subprojetos do Apache Hadoop, destacam-se o sistema de arquivos distribudo, Ha-
doop Distributed File System (HDFS), e o framework MapReduce, para processamento
-
26
distribudo de grandes volumes de dados.
2.3.1.1 Hadoop Distributed File System
O Hadoop Distributed File System (HDFS) um sistema de arquivos distribudo,
tendo entre seus objetivos ser tolerante a falhas e permitir o armazenamento de grandes
quantidades de dados.
O modelo de arquitetura do HDFS mestre/escravo. Em um infraestrutura que utilize
HDFS, existe um mestre onde h uma instncia de NameNode; alm de vrias instncias
de DataNode, em geral, uma em cada n escravo.
Os arquivos gerenciados pelo HDFS so divididos em blocos, sendo armazenados
pelos DataNodes. As tarefas de manipulao de arquivos e diretrios, como operaes
de abrir, fechar e renomear, e de mapeamento dos blocos aos DataNodes so realizadas
pelo mestre NameNode. As operaes com blocos, como criao, remoo e replicao,
so realizadas pelos escravos DataNodes, a partir das instrues do mestre NameNode.
Tambm responsabilidade dos DataNodes servir requisies de leitura e escrita, a partir
dos sistemas de arquivos dos clientes (The Apache Software Foundation, 2007c).
responsabilidade do NameNode gerenciar o espao de nomes do sistema de arqui-
vos, mantendo a rvore de diretrios. O NameNode deve conhecer em qual DataNode
est cada bloco, possibilitando a localizao dos arquivos. Os DataNodes armazenam e
recuperam blocos, quando solicitado pelos clientes ou pelo NameNode, alm de comu-
nicar ao NameNode, periodicamente, a lista de blocos que est armazenando (WHITE,
2009).
A implementao do HDFS feita em linguagem de programao Java, possibilitando
que qualquer mquina com suporte Java Virtual Machine possa executar tanto DataNode
quanto NameNode.
2.3.1.2 MapReduce
O modelo de programao MapReduce foi introduzido por Dean e Ghemawat (2008),
sendo voltado ao processamento paralelo de grandes volumes de dados, em arquiteturas
distribudas, abstraindo detalhes de paralelizao, tolerncia a falhas, distribuio dos
dados e balanceamento de carga.
Inspirado nas primitivas map e reduce das linguagens funcionais, o modelo MapRe-
duce base-se em aplicar uma operao, map, em cada registro do volume de dados de
-
27
entrada. Dessa forma, gera-se um conjunto intermedirio de pares chave/valor, sendo
aplicada uma operao reduce nos pares que compartilham a mesma chave.
Hadoop MapReduce um modelo de programao e framework (The Apache Soft-
ware Foundation, 2007a); uma implementao de cdigo fonte aberto para o modelo de
programao MapReduce. O processamento de uma tarefa divide a entrada em partes
independentes, as quais so processadas paralelamente pela operao de map. A sada
desta operao utilizada como entrada para a operao reduce. Este modelo promete
escalabilidade em virtude de os processamentos de map e reduce serem feitos de maneira
independente, permitindo a distribuio dessas tarefas em diferentes nmeros de nodos,
presentes no sistema.
O framework Hadoop MapReduce composto por um nodo mestre, onde executado
o JobTracker, e um conjunto de nodos escravos, sendo executada, em cada escravo, uma
instncia de TaskTracker (The Apache Software Foundation, 2007a). Para o framework,
um job uma unidade de trabalho solicitada pelo cliente. O job dividido em tasks, do
tipo map e reduce. O JobTracker coordena os jobs em execuo no sistema, escalonando
as tasks para serem executadas nos TaskTrackers. Os TaskTrackers executam essas tasks,
reportando o progresso da execuo ao JobTracker. Em caso de falha, o JobTracker pode
re-escalonar a task, para ser executada em outro TaskTracker (WHITE, 2009).
2.3.2 Apache Mahout
O Apache Mahout uma biblioteca de algoritmos de minerao de dados e aprendi-
zagem de mquina escalvel, escrita em linguagem de programao Java, de cdigo fonte
aberto (The Apache Software Foundation, 2010a). Esta biblioteca foi implementada uti-
lizando o modelo de programao MapReduce; para tanto, faz uso da infraestrutura ofe-
recida pelo Apache Hadoop, descrito na seo 2.3.1.
Atualmente, a ferramenta Apache Mahout suporta principalmente quatro casos de uso:
(i) recomendao, onde se tenta encontrar itens com potencial interesse dos usurios, a
partir de seus comportamentos; (ii) agrupamento, em que itens so agrupados a partir
de tpicos comuns; (iii) classificao, que, com base em uma categorizao existente,
capaz de escolher em qual grupo incluir determinado item; (iv) minerao por frequncia
de grupos de itens, onde se identifica, a partir de um conjunto de grupos de itens, quais
itens aparecem juntos.
-
28
Em virtude de sua implementao utilizar o framework MapReduce do Apache Ha-
doop e o sistema de arquivos distribudos HDFS, os algoritmos do Apache Mahout podem
ser executados em ambientes distribudos e escalveis, desde que o Apache Hadoop es-
teja configurado. Sem a configurao do Apache Hadoop, a computao ser centralizada
localmente.
O termo escalvel da definio da ferramenta est relacionado com suporte a grandes
conjuntos de dados, em virtude de seus algoritmos de minerao serem implementados
sobre a ferramenta Apache Hadoop, utilizando o paradigma MapReduce; com os casos
de interesse dos usurios, devido ao uso de uma licena comercialmente amigvel; e co-
munidade desenvolvedora e utilizadora da ferramenta (The Apache Software Foundation,
2010a).
A ferramenta Apache Mahout oferece uma Application Programming Interface (API),
para a utilizao de seus algoritmos no desenvolvimento de mineradores de dados. Ela
est implementada em linguagem de programao Java. A ferramenta tambm pode ser
utilizada atravs de um executvel em linha de comando, a partir do qual possvel rea-
lizar a minerao de dados. Ambas formas de utilizao suportam execuo distribuda e
local.
-
3 DESENVOLVIMENTO
Este captulo ir descrever os passos realizados durante o desenvolvimento deste tra-
balho. Com base nas etapas descritas pela metodologia CRISP-DM, para alcanar os
objetivos deste trabalho, devem ser realizados os passos de preparao dos dados e mo-
delagem. Primeiramente, o captulo descrever os requisitos para instalar e configurar as
ferramentas Apache Mahout e Apache Hadoop. Em seguida, sero expostos os algorit-
mos implementados pelo Mahout que foram selecionados para a execuo dos testes, e
justificada essa escolha. Ento, sero tratadas as formas de utilizao do Mahout, como
uma API Java e como um aplicativo em linha de comando. Por fim, sero abordadas as
tarefas executadas para a preparao dos dados a serem minerados.
3.1 Instalao e Configurao
Os requisitos para o correto funcionamento do Apache Mahout esto relacionados
linguagem de programao na qual foi escrito e infraestrutura fornecida pelo Apache
Hadoop. Os requisitos do Hadoop so decorrentes da linguagem de programao em que
foi escrito, e da forma de comunicao entre os nodos do ambiente.
O ambiente distribudo onde o sistema executado pode ser composto por nodos com
diferentes capacidades de processamento e armazenamento, desde que estejam devida-
mente configurados com o Apache Hadoop. Em geral, adota-se um nodo como mestre,
onde se executam instncias de NameNode, gerenciando o HDFS, e JobTracker, geren-
ciando os jobs de MapReduce. Os demais nodos so escravos, em que so executadas
instncias de DataNode e TaskTracker, para o gerenciamento dos blocos do sistema de ar-
quivo e execuo das tarefas de map e reduce, respectivamente. Neste sistema, executa-se
a ferramenta Apache Mahout, ou um sistema desenvolvido a partir de sua API, o qual re-
aliza a minerao em um conjunto de dados presente no HDFS. Dessa forma, so criados
-
30
jobs, contendo tasks de map e reduce, escalonadas pelo JobTracker entre os TaskTrackers.
Por fim, a sada da minerao obtida em um conjunto de arquivos, salvos no HDFS. A
figura 3.1 ilustra esse tipo de situao.
Figura 3.1: Ambiente distribudo com Apache Hadoop executando Apache Mahout
A seguir, so descritos os requisitos necessrios para o correto funcionamento das
ferramentas Apache Mahout e Apache Hadoop.
3.1.1 Requisitos do Apache Mahout
Com relao linguagem de programao, Apache Mahout escrito em Java. Por-
tanto, necessrio que o dispositivo computacional onde ele ser executado possua uma
Mquina Virtual Java (JVM). Recomenda-se o uso de verses superiores a 1.6.0 para a
JVM.
Para que o Mahout seja executado de forma distribuda, necessrio que o ambi-
ente computacional esteja configurado, corretamente, com o Apache Hadoop, em verso
0.20.0 ou superior. Dessa forma, os requisitos so os da ferramenta Apache Hadoop, des-
critos na prxima seo. Para executar o Mahout de forma centralizada, no necessrio
que o Hadoop esteja configurado.
Requisitos de hardware, como processador, tamanho em disco e memria, so de-
pendentes da aplicao que utilizar o Mahout, no havendo padro pr-definido (The
-
31
Apache Software Foundation, 2010a).
3.1.2 Requisitos do Apache Hadoop
O Apache Hadoop tambm escrito em linguagem de programao Java, sendo ne-
cessria a disponibilidade de JVM em cada nodo do ambiente de execuo, em verso
igual, ou superior, a 1.6.0.
Quanto forma de comunicao entre os nodos, Apache Hadoop utiliza o protocolo
de comunicao SSH. Para que no haja a necessidade de autenticao interativa utili-
zando senha, utiliza-se o esquema de chaves pblica para a autenticao. Dessa forma, os
componentes do sistema devem ter suporte ao protocolo e estar devidamente configurados
para que a comunicao seja realizada corretamente.
Apesar de ser suportado tanto pela plataforma GNU/Linux, quanto pela Win32, re-
comenda-se que esta seja utilizada apenas como uma plataforma de desenvolvimento.
Aquela pode ser utilizada como plataforma de desenvolvimento e produo (The Apache
Software Foundation, 2007b).
3.1.3 Configurao
3.1.3.1 Apache Hadoop
A configurao do Apache Hadoop realizada a partir de arquivos, localizados den-
tro do diretrio conf. As alteraes realizadas neste trabalho, para ter-se um ambiente
distribudo, foram nos seguintes arquivos:
core-site.xml definio da URI e porta do NameNode (mestre).
hdfs-site.xml definio do nmero de blocos replicados, definido como o valor unitrio.
mapred-site.xml definio do hostname do JobTracker (mestre).
masters definio do nodo mestre, onde so executados NameNode e JobTracker.
slaves definio dos nodos escravos, onde so executados DataNode e TaskTracker.
Tambm deve-se definir a varivel de ambiente JAVA_HOME, no arquivo hadoop-
env.sh, apontando para o diretrio contendo os arquivos da JVM.
Para que seja possvel realizar a comunicao entre os nodos do sistema, necessrio
que eles estejam aptos a aceitar conexo pelo protocolo SSH, utilizando o esquema de
-
32
autenticao de chave pblica. Para tanto, deve-se criar chave pblica para o nodo mestre
do sistema, onde esto executando NameNode e JobTracker, e adicion-la na lista de
chaves conhecidas pelos nodos escravos.
3.1.3.2 Apache Mahout
O Apache Mahout pode ser executado de duas maneiras: como um aplicativo em linha
de comando, ou como um API para programas escritos em Java.
A configurao necessria para ser utilizado da primeira maneira consiste na definio
das variveis de ambiente HADOOP_HOME, a qual deve conter o diretrio onde esto os
arquivos do Apache Hadoop, e HADOOP_CONF_DIR, contendo o caminho para diret-
rio conf do Hadoop.
Para ser utilizado como uma API, deve-se construir um arquivo JAR, passado como
parmetro ao arquivo executvel do Hadoop, sem necessidade de outros tipos de configu-
rao, alm das necessrias ao Apache Hadoop.
3.2 Escolha dos Algoritmos
Para a realizao do teste de desempenho da ferramenta, escolheram-se trs algorit-
mos de minerao, sendo eles: K-Means, Parallel FPGrowth (FPG), e o algoritmo de
clculo da similaridade de itens. O algoritmo K-Means um algoritmo de agrupamento.
J o FPG um algoritmo de minerao de padres frequentes (Frequent Pattern Mining,
FPM), enquadrando-se na tarefa de associao, enquanto que o algoritmo de similaridade
de itens faz parte dos algoritmos de filtragem colaborativa baseada em itens (Collabora-
tive Filtering, CF), executando uma tarefa de recomendao.
O algoritmo K-Means foi escolhido por ser um algoritmo simples e efetivo para a
tarefa de agrupamento (LAROSE, 2005). A similaridade no cluster medida atravs do
valor mdio dos objetos presentes nele, o que pode ser visto como o centro de gravidade
ou centride. O funcionamento do K-Means segue os seguintes passos (HAN; KAMBER,
2006), os quais esto, parcialmente, ilustrados pela figura 3.2:
1. Definir um nmero k de classes (clusters), em que os dados sero divididos;
2. Escolher k registros, aleatoriamente, para serem os centrides iniciais dos clusters;
3. Encontrar, para cada registro, o centride mais prximo. Para tanto, utiliza-se al-
-
33
guma mtrica para encontrar a distncia do registro analisado em relao aos cen-
trides;
4. Aps agrupar todos os registros, encontrar o novo centride para cada cluster;
5. Repetir os passos 3 a 5 at o limite de execuo, ou convergir.
Figura 3.2: Exemplo de execuo do K-Means
Escolheu-se avaliar o desempenho do algoritmo FPGrowth, por ser considerado um
mtodo eficiente e escalvel para minerao de grandes e pequenos padres, sendo um
dos mais populares algoritmos de minerao de frequncia de padres (HAN et al., 2004)
(BORGELT, 2005). O funcionamento do FPGrowth consiste em verificar, primeiramente,
a frequncia de cada valor dos campos de registros de entrada. Ento, so eliminados os
valores cujas frequncias sejam menores que um mnimo definido. Por fim, encontram-se
os k padres mais altos, para cada um dos n registros resultantes, sem os valores elimi-
nados, gerando-se um total de n x k padres (The Apache Software Foundation, 2010b).
Um exemplo de execuo do algoritmo FPGrowth, contendo os valores de entrada e a
respectiva sada, encontra-se na figura 3.3.
Figura 3.3: Exemplo de execuo do FPGrowth (adaptado de Han e Kamber (2006))
Optou-se por analisar um algoritmo de CF por ser uma tcnica difundida entre empre-
sas de comrcio virtual (INGERSOLL, 2009). Analisando-se histrico de preferncias, e
-
34
tendo como base a similaridade de grupos de usurios, so fornecidas sugestes de itens,
em forma de recomendao (BERRY; LINOFF, 2004). O algoritmo verifica um conjunto
de itens e calcula a similaridade deles, dois a dois, de forma a selecionar os itens mais
similares. Para realizar este clculo, verificam-se os usurios que esto, de alguma forma,
relacionados a ambos os itens, aplicando-se alguma tcnica para determinar a similari-
dade entre eles (SARWAR et al., 2001). A figura 3.4 ilustra um exemplo de entrada e
sada para a aplicao do algoritmo de clculo de similaridade entre itens.
Figura 3.4: Exemplo de execuo do algoritmo de clculo de similaridade
3.3 Utilizao do Mahout
A ferramenta Apache Mahout possui uma API (Application Programming Interface),
contendo um conjunto de classes que implementam os algoritmos de minerao de da-
dos e classes auxiliares. Os algoritmos foram desenvolvidos utilizando recursos da API
fornecida pelo Apache Hadoop, de modo a fazer uso do sistema de arquivos distribudo,
HDFS, e do framework MapReduce.
A listagem 3.1 ilustra um trecho de cdigo de um programa que utiliza a API do
Mahout, para executar o algoritmo de agrupamento K-Means. A classe KMeansDriver
possui um mtodo esttico para a execuo do algoritmo, chamado run. O mtodo recebe
como parmetros os locais onde esto os dados de entrada, os clusters iniciais, o local
onde sero salvos os arquivos de sada do processo, e outros argumentos prprios do
algoritmo. A classe Path originria da API do Apache Hadoop, sendo utilizada para
referenciar a um arquivo, ou diretrio, dentro do HDFS, se executado em um ambiente
configurado com o Hadoop, ou dentro do sistema de arquivos local, se o Hadoop no
-
35
estiver em execuo.
Listing 3.1: Exemplo de cdigo utilizando a API do MahoutPath vectorsPath = new Path("vectors");Path clustersInitPath = new Path("clustersInit");Path saidaPath = new Path("output");DistanceMeasure measure = new EuclideanDistanceMeasure();double convergenceDelta = 0.01;int maxIterations = 5;boolean runClustering = true;boolean runSequential = false;
KMeansDriver.run(vectorsPath, clustersInitPath, saidaPath, measure,convergenceDelta, maxIterations, runClustering, runSequential);
Tambm possvel utilizar o Apache Mahout atravs de um aplicativo em linha de
comando. Trata-se de um script, que faz uso de um aplicativo desenvolvido com base na
API da ferramenta, disponibilizando algoritmos de minerao e funcionalidades de trans-
formao e visualizao de dados. Para utiliz-lo, informam-se a funcionalidade desejada
e os parmetros necessrios para o seu funcionamento. O aplicativo calcula o tempo gasto
durante o processamento e, se configurada a varivel de ambiente HADOOP_HOME, re-
aliza o processamento de forma distribuda.
3.4 Preparao dos Dados
Os dados analisados neste trabalho so provenientes de um sistema de informaes
acadmicas, do Centro de Processamento de Dados (CPD), da Universidade Federal de
Santa Maria (UFSM). Os dados esto em formato Comma-Separated Values (CSV), sendo
referentes a alunos, bolsistas e projetos da instituio; emprstimos realizados pelos alu-
nos nas bibliotecas e candidatos a ingressar na UFSM. Dados de identificao pessoal
foram embaralhados, para preservar a anonimidade.
Conforme mencionado na seo 2.1.3, necessrio pr-processar os dados antes de
executar a minerao. Em especial, necessrio integrar e transformar os dados, gerando
maiores volumes de informao para os testes, e possibilitando a correta utilizao dos
dados como entrada dos algoritmos de minerao implementados pelo Mahout, testados
neste trabalho.
-
36
3.4.1 Integrao
Para a integrao dos dados, desenvolveram-se aplicativos, em linguagem de pro-
gramao Java, que geram um novo conjunto, a partir da juno dos dados iniciais.
Realizaram-se junes entre informaes de alunos e bolsistas, alunos e projetos, alu-
nos e emprstimos e alunos e candidatos. A juno foi realizada atravs de atributos de
relao, existentes nas estruturas dos dados.
O algoritmo utilizado para a integrao dos dados consiste em, dados dois conjuntos
de dados, denominados mestre e escravo, primeiramente, mapear os registros do escravo
atravs de ndices, referentes a cada atributo de relao. A figura 3.5 ilustra esse mape-
amento. A partir da, percorre-se os registros do mestre, verificando, nos ndices de atri-
butos de relao, quais registros de escravos podem ser integrados ao registro do mestre
analisado. Com isso, gera-se um novo conjunto de dados, cujos registros so compostos
pelos valores dos registros do mestre, mais os valores dos registros dos escravos relacio-
nados. A listagem A.2 traz o trecho de cdigo que ilustra esse processo de integrao.
O novo conjunto de dados foi gerado em formato CSV. Utilizou-se a biblioteca Java
CSV (DUNWIDDIE, 2006) para a manipulao dos conjuntos iniciais de informaes.
Figura 3.5: Mapeamento de ndices utilizado para a integrao dos dados
3.4.2 Transformao dos Dados
Algoritmos de minerao necessitam que os dados estejam em formato especfico, o
que vlido para a ferramenta Apache Mahout. Algoritmos de agrupamento e classifi-
cao necessitam que os dados estejam em formato de vetor n-dimensional de nmeros
-
37
reais, onde n indica o nmero de atributos utilizados para descrever os objetos no cluster
(The Apache Software Foundation, 2010a). Dessa forma, para a correta execuo do al-
goritmo K-Means, faz-se necessrio converter os dados de entrada, que esto no formato
CSV, para o formato vetorial aceito pela ferramenta.
Apache Mahout oferece trs formas automticas de transformao dos dados para o
formato vetorial, alm da possibilidade de criao manual dos vetores. Em virtude de o
objetivo deste trabalho no ser o resultado final da minerao, mas o desempenho da fer-
ramenta, optou-se por analisar e selecionar a melhor forma automatizada para criao dos
vetores, ao invs de ger-los manualmente. A seguir so descritas as formas automticas
de criao dos vetores.
A partir de texto, onde os vetores so gerados em funo da frequncia das palavras
presentes em arquivos de texto analisados.
A partir de ndice Lucene. Lucene uma ferramenta para indexao e busca em arqui-
vos texto (The Apache Software Foundation, 2010c). Os vetores podem ser gerados
a partir de um ndice Lucene, de forma semelhante criao a partir de texto. Leva-
se em considerao um atributo de busca do ndice.
A partir de arquivos ARFF. Attribute-Relation File Format (ARFF) o formato de ar-
quivo utilizado pela ferramenta Weka. Trata-se de um arquivo texto que descreve
um conjunto de registros, formados por uma lista de atributos. Um arquivo ARFF
composto por um cabealho, que descreve os atributos, e pelos registros de dados
(ARFF, 2008). Para cada registro, gera-se um vetor. A dimenso dos vetores a
quantidade de atributos presentes.
Optou-se por adotar a forma de gerao dos vetores a partir de arquivos ARFF, por
ser a mais apropriada aos tipos de dados analisados. As outras duas formas de criao de
vetores (a partir de texto e ndice Lucene) so apropriadas para a minerao de arquivos
de texto puro. Foi desenvolvido um aplicativo, em Java, para a transformao dos dados,
do formato CSV, para o formato ARFF.
Para a execuo do algoritmo FPGrowth, os arquivos de entrada devem estar em for-
mato texto, onde cada linha um registro, composto por vrios valores de campos, separa-
dos por algum caractere especial. Dessa forma, desenvolveu-se um aplicativo para trans-
formar os dados do formato CSV para o formato aceito pelo FPGrowth. Basicamente,
-
38
eliminam-se os cabealhos e substituem-se os delimitadores e separadores de campos, do
arquivo CSV, por algum caractere especial especificado, gerando arquivos compatveis
com o formato esperado pela entrada do algoritmo FPGrowth.
A entrada para os algoritmos de CF consiste em um conjunto de registros, cujas tuplas
so formadas por identificador de usurio, identificador de item e um valor de preferncia
do usurio por aquele item. Estes dados devem compor um arquivo CSV, onde cada linha
um registro, e os valores so separados por vrgula. Para a transformao dos dados
para este formato, desenvolveu-se um aplicativo que recebe, alm dos dados dos registros
de entrada, a indicao de qual campo referente ao identificador de usurio, e qual faz
referncia ao item. Dessa forma, gera-se um novo arquivo CSV, onde o primeiro campo
de cada registro o identificador de usurio, o segundo o identificador do item, e o
terceiro a quantidade de vezes que o usurio est relacionado quele item.
-
4 RESULTADOS
A fim de alcanar os objetivos deste trabalho, investigou-se o desempenho da ferra-
menta Apache Mahout em diferentes ambientes distribudos, sendo verificado seu fun-
cionamento em mquinas mono e multiprocessadas. Foram analisados trs algoritmos
implementados pela ferramenta, para verificar o comportamento de diferentes classes de
minerao disponibilizadas. Os testes foram realizados a partir da incluso de ns, ou
aumento da capacidade de processamento, atravs da alterao do nmero de tasks de
map/reduce aceitas, ao sistema distribudo, para verificar o comportamento da ferramenta,
em relao escalabilidade.
4.1 Ambientes de Teste
Para a verificao do desempenho da ferramenta Apache Mahout, utilizaram-se trs
ambientes de teste. Um deles composto por mquinas heterogneas, e os outros dois
so clusters de mquinas idnticas. Conforme recomendao verificada pela seo 3.1.2,
utilizaram-se mquinas com plataforma GNU/Linux para realizao dos testes. A seguir,
so descritas as configuraes de cada ambiente.
Ambiente Heterogneo. Este ambiente composto por duas mquinas heterogneas, co-
nectadas por rede ethernet. As mquinas que compem este ambiente so:
Tabela 4.1: Mquinas - ambiente heterogneo
Nome Mquina Processador Ncleos Clock Cache RAMHaroldo Intel Xeon E5335 8 2.00GHz 4MB 4GBVostro Intel Core 2 Duo CPU T7250 2 2.00GHz 2MB 2GB
Neste ambiente, a mquina Vostro foi definida como mestre, onde se executaram
instncias de NameNode e JobTracker. A mquina Haroldo foi definida como es-
-
40
cravo, executando instncias de DataNode e TaskTracker. Nesta mquina, alterou-
se as configuraes do Apache Hadoop, no arquivo mapred.xml, de forma a suportar
de uma a oito tarefas de map e reduce, possibilitando execues em paralelo, apro-
veitando a quantidade de ncleos disponveis. Mediram-se os tempos de execuo
com cada uma dessas oito configuraes, assim como a execuo local, com a pos-
sibilidade de uso dos oito ncleos.
Cluster Gates. O cluster Gates composto por 6 mquinas idnticas, interligadas. Trata-
se de um cluster do Laboratrio de Alto Desempenho (LAD), da Pontifcia Uni-
versidade Catlica do Rio Grande do Sul (PUCRS). Neste ambiente, alterou-se o
nmero de mquinas testadas, de modo a verificar a escalabilidade em termos de
nmeros de nodos e tempo de execuo. A configurao das mquinas do cluster
Gates a seguinte: processador AMD Opteron Processor 246, 2.00GHz de clock,
1MB de memria cache e 8GB memria RAM.
Cluster Atlntica. O cluster Atlntica composto por 8 mquinas idnticas, interligadas.
Tambm faz parte do LAD, da PUCRS. Assim como no cluster Gates, alterou-se
o nmero de mquinas durante a execuo dos testes no Atlntica. As mquinas
deste cluster possuem processador Intel Xeon E5520, 2.27GHz de clock, 8MB de
memria cache e 16GB de memria RAM.
Para realizar a configurao automtica do Apache Hadoop, em ambos os clusters,
desenvolveu-se um script, em linguagem Shell. Dada uma lista de nodos disponveis para
a realizao da computao, so gerados os arquivos de configurao descritos na seo
3.1.3.1. O primeiro nodo da lista definido como mestre, e os demais, como escravos.
Definiu-se que no haveria replicao de blocos no sistema de arquivos distribudo, ou
seja, h apenas uma cpia de cada bloco de arquivo no HDFS. A listagem A.1 ilustra o
cdigo desse script.
4.2 Casos de Teste e Desempenho
Foram definidos trs casos de teste, nos quais foram executados os algoritmos defini-
dos na seo 3.2, em diferentes ambientes distribudos. Para cada teste de desempenho,
foram realizadas trs execues, sendo informada a mdia entre elas. A seguir, so des-
critos os casos de teste, e os resultados obtidos em cada um deles.
-
41
4.2.1 Caso I
No primeiro caso de teste, executou-se o algoritmo K-Means, para o agrupamento
dos dados em 5 clusters, num total de 5 iteraes mximas. Os dados testados foram
provenientes da integrao entre as informaes de alunos com emprstimos, totalizando
508MB em arquivo texto, e 157.6MB no arquivo de vetores correspondente. O arquivo
formado por 961635 registros, compostos por 45 campos. Os testes foram realizados nos
clusters Gates e Atlntica, sendo realizadas execues local, sem utilizao do Hadoop, e
distribuda. No Gates, fez-se uso de um a seis nodos, enquanto que, no Atlntica, utilizou-
se de um a oito nodos. Em ambos, fez-se uso de um processador em cada nodo.
A tabela 4.2 traz o resultado da execuo do primeiro caso de teste, para a execuo
no cluster Gates. O resultado tambm est resumido no grfico da figura 4.1. Percebe-
se que houve ganho de desempenho adicionando-se nodos ao ambiente. O ganho mais
significativo deu-se entre as trs primeiras situaes, onde se passou da execuo local
para uma execuo distribuda, com dois e trs nodos. A partir da execuo com quatro
nodos, o ganho no foi to significativo. A curva de acelerao, exposta no grfico da
figura 4.1, ilustra a situao, estando mais acentuada no incio, e tendendo a se estabilizar
a partir dos quatro nodos.
Tabela 4.2: Desempenho K-Means - cluster Gates
Nmero de Nodos Tempo de Execuo (ms) Acelerao1 (Local) 399163 1
2 374279 1,06643 299217 1,33404 276054 1,44595 269658 1,48026 261492 1,5264
O desempenho obtido pela execuo no cluster Atlntica, para o primeiro caso de tes-
tes, est resumida na tabela 4.3 e no grfico da figura 4.3. Percebe-se que houve pequeno
ganho ao adicionar nodos ao ambiente, apesar de a execuo com dois nodos ter desem-
penho semelhante execuo local. At a execuo com quatro nodos, houve pequena
melhora, no observada em relao ao quinto nodo, cujo desempenho foi semelhante
execuo com quatro. Com sete e oito nodos, houve ligeira queda no desempenho,
comparadas execuo com seis, verificando uma tendncia de estabilizao, o que est
ilustrado no grfico da acelerao, na figura 4.4.
-
42
Local 1 escravo 2 escravos 3 escravos 4 escravos 5 escravos200000
250000
300000
350000
400000
450000
Figura 4.1: Tempo de execuo do algoritmo K-Means - cluster Gates (em ms)
Local 1 escravo 2 escravos 3 escravos 4 escravos 5 escravos1
1,1
1,2
1,3
1,4
1,5
1,6
Figura 4.2: Acelerao do algoritmo K-Means - cluster Gates
Tabela 4.3: Desempenho K-Means - cluster Atlntica
Nmero de Nodos Tempo de Execuo (ms) Acelerao1 (Local) 207694 1
2 208151 0,99783 193547 1,07304 189230 1,09755 190377 1,09096 185176 1,12167 194152 1,06978 186802 1,1118
4.2.2 Caso II
O segundo caso de teste consistiu na execuo do algoritmo FPGrowth, eliminando
valores de campos com frequncia menor que 2, verificando os 50 padres mais altos.
-
43
Local 1 escravo 2 escravos 3 escravos 4 escravos 5 escravos 6 escravos 7 escravos100000
120000
140000
160000
180000
200000
220000
240000
Figura 4.3: Tempo de execuo do algoritmo K-Means - cluster Atlntica (em ms)
Local 1 escravo 2 escravos 3 escravos 4 escravos 5 escravos 6 escravos 7 escravos
0,6
0,8
1
1,2
1,4
Figura 4.4: Acelerao do algoritmo K-Means - cluster Atlntica
Utilizou-se os dados provenientes da integrao dos dados de alunos com candidatos, to-
talizando 6MB em arquivo, com 9984 registros de 52 campos. Os testes foram realizados
no cluster Gates, sendo realizadas execues local, sem utilizao do Hadoop, e distri-
buda, fazendo uso de dois a seis nodos, utilizando um processador em cada nodo; e no
ambiente heterogneo, distribudo, variando-se a capacidade de execuo de tasks de map
e reduce entre um e oito, alm de uma execuo local, sem utilizao do Apache Hadoop.
A tabela 4.4 e o grfico da figura 4.5 ilustram os resultados obtidos com o segundo
caso de teste, no cluster Gates. Neste caso, verificou-se que o desempenho piorou do
ambiente de execuo local para o distribudo e que o tempo de execuo distribuda,
com diferentes nmeros de nodos, foi semelhante. Isso se deve ao fato de que a execuo,
mesmo no ambiente distribudo, foi realizada de forma sequencial, o que foi verificado
visualizando-se os rastros da execuo, atravs da interface Web disponibilizada pelo
-
44
Hadoop. Nesta interface, ilustrada pela figura 4.7, pode-se verificar os jobs e as tasks
que esto em execuo, a cada instante. Assim, os atrasos da comunicao e o nus
trazido pela distribuio fsica dos dados, no HDFS, fizeram com que o tempo de execuo
distribuda fosse maior que o tempo de execuo local. No houve grandes diferenas
entre as execues distribudas, o que pode ser visualizado pela curva de acelerao, na
figura 4.6, que praticamente constante.
Tabela 4.4: Desempenho FPGrowth - cluster Gates
Nmero de Nodos Tempo de Execuo (ms) Acelerao1 (Local) 2391794 1
2 2553442 0,93663 2551015 0,93754 2515010 0,95105 2574364 0,92906 2565894 0,9321
Local 1 escravo 2 escravos 3 escravos 4 escravos 5 escravos2000000
2200000
2400000
2600000
2800000
3000000
Figura 4.5: Tempo de execuo do algoritmo FPGrowth - cluster Gates (em ms)
Os resultados obtidos pela execuo do segundo caso de teste, no ambiente hetero-
gneo, esto resumidos pela tabela 4.5 e pelo grfico da figura 4.8. Verificou-se que,
assim como no cluster Gates, no houve diferenas na execuo distribuda do algoritmo,
mesmo variando-se o nmero de tarefas de map e reduce suportadas, visto que a execuo
foi feita de forma sequencial. Com isso, o desempenho local foi superior aos desempe-
nhos das execues distribudas. A curva de acelerao das execues distribudas, na
figura 4.9, ilustra a baixa variao de tempo das execues com diferentes nmeros de
tarefas de map/reduce suportadas.
-
45
Local 1 escravo 2 escravos 3 escravos 4 escravos 5 escravos0
0,2
0,4
0,6
0,8
1
1,2
1,4
Figura 4.6: Acelerao do algoritmo FPGrowth - cluster Gates
Figura 4.7: Interface Hadoop - Tasktracker
4.2.3 Caso III
O terceiro caso de teste consistiu na aplicao do algoritmo de clculo de similaridade
de itens, utilizando a classe de similaridade "COOCCURRENCE", limitando o nmero
de itens similares entre si a 50. Utilizou-se como entrada os dados referentes aos emprs-
timos de alunos na biblioteca, cujo arquivo original possui 78.5MB, e o arquivo gerado
pela transformao, 6MB. O arquivo formado por 424844 registros, com 3 campos
-
46
Tabela 4.5: Desempenho FPGrowth - ambiente heterogneo
No de Tasks Suportadas Tempo de Execuo (ms) Acelerao1 2067429 12 2066970 1,00023 2113763 0,97804 2074813 0,99645 2066942 1,00026 2073745 0,99697 2104256 0,98248 2065882 1,0007
8 (Local) 1935254 #
Local 1 tarefa 2 tarefas 3 tarefas 4 tarefas 5 tarefas 6 tarefas 7 tarefas 8 tarefas1000000
1200000
1400000
1600000
1800000
2000000
2200000
2400000
Figura 4.8: Tempo de execuo do algoritmo FPGrowth - ambiente heterogneo (em ms)
1 tarefa 2 tarefas 3 tarefas 4 tarefas 5 tarefas 6 tarefas 7 tarefas 8 tarefas0,4
0,6
0,8
1
1,2
1,4
Figura 4.9: Acelerao do algoritmo FPGrowth - ambiente heterogneo
cada. Realizaram-se testes nos clusters Atlntica e Gates, e no ambiente heterogneo, ha-
vendo execuo local, sem configurao do Hadoop, e execues distribudas. No cluster
Atlntica, utilizou-se de um a oito nodos; no Gates, de um a seis. Em ambas execues,
-
47
utilizou-se um processador por nodo. No ambiente heterogneo, variou-se a capacidade
de execuo de tasks de map e reduce, de forma a suportar de uma a oito tarefas de cada
tipo (map ou reduce).
Os resultados obtidos com as execues do terceiro caso de teste, no cluster Atlntica,
esto ilustrados na tabela 4.6 e no grfico da figura 4.10. Percebeu-se que a execuo local
deste algoritmo foi mais rpida que a execuo distribuda, o que pode ter acontecido em
virtude da relativa baixa quantidade de dados analisada. Com relao ao processamento
distribudo, pode-se verificar que houve ganho de desempenho at as execues com cinco
nodos. As maiores diferenas de ganho esto entre as execues com dois, trs e quatro
nodos. Entre quatro e cinco, no houve diferena significativa na execuo. Entre cinco e
seis, houve ganho de desempenho, que no foi observado com a execuo nos ambientes
com sete e oito mquinas, comparados com a execuo com seis. O grfico de acelerao,
ilustrado na figura 4.11, mostra essa situao.
Tabela 4.6: Desempenho clculo de similaridade de itens - cluster Atlntica
Nmero de Nodos Tempo de Execuo (ms) Acelerao1 (Local) 564605 1
2 756292 0,74653 699585 0,80704 652646 0,86515 656677 0,85976 628270 0,89867 624400 0,90428 629413 0,8970
Local 1 escravo 2 escravos 3 escravos 4 escravos 5 escravos 6 escravos 7 escravos300000
400000
500000
600000
700000
800000
Figura 4.10: Tempo de execuo do algoritmo de clculo de similaridade de itens - clusterAtlntica (em ms)
-
48
Local 1 escravo 2 escravos 3 escravos 4 escravos 5 escravos 6 escravos 7 escravos0,5
0,6
0,7
0,8
0,9
1
1,1
1,2
Figura 4.11: Acelerao do algoritmo de clculo de similaridade de itens - cluster Atln-tica
Para o cluster Gates, o desempenho est ilustrado pela tabela 4.7 e pelo grfico da
figura 4.12. Verificou-se que o desempenho da execuo distribuda, entre dois a quatro
nodos, foi pior que a execuo local, havendo melhora do desempenho relativo entre eles.
Com cinco nodos, o desempenho foi equivalente execuo local, e, com seis, teve-se
ligeira melhora. A curva de acelerao, na figura 4.13, mostra essa queda de desempenho
inicial, no ambiente distribudo, e a crescente melhora.
Tabela 4.7: Desempenho clculo de similaridade de itens - cluster Gates
Nmero de Nodos Tempo de Execuo (ms) Acelerao1 (Local) 1032848 1
2 1209943 0,85363 1118437 0,92344 1044602 0,98875 1027764 1,00496 985982 1,0475
A tabela 4.8 e o grfico da figura 4.14 ilustram os resultados obtidos pela execuo
do terceiro caso de teste, no ambiente heterogneo. Verificou-se ganho de desempenho,
relativo ao aumento da capacidade de execuo de tarefas de map/reduce e, consequen-
temente, uso de vrios ncleos para o processamento. Os ganhos foram obtidos at a
definio de cinco tarefas. A partir da execuo com seis, o desempenho manteve-se
constante, o que pode ser visto na curva do grfico de acelerao, que compara as execu-
es distribudas, na figura 4.15. Ainda assim, a execuo distribuda, com capacidade de
execuo de oito tarefas, foi 14% mais lenta que a execuo local. Isso deve ser observado
-
49
Local 1 escravo 2 escravos 3 escravos 4 escravos 5 escravos600000
800000
1000000
1200000
1400000
Figura 4.12: Tempo de execuo do algoritmo de clculo de similaridade de itens - clusterGates (em ms)
Local 1 escravo 2 escravos 3 escravos 4 escravos 5 escravos
0,6
0,8
1
1,2
1,4
Figura 4.13: Acelerao do algoritmo de clculo de similaridade de itens - cluster Gates
em virtude do custo da comunicao e transferncia dos dados.
Tabela 4.8: Desempenho clculo de similaridade de itens - ambiente heterogneo
No de Tasks Suportadas Tempo de Execuo (ms) Acelerao1 1420529 12 1183433 1,20033 1092270 1,30054 1072038 1,32505 1028090 1,38176 1025862 1,38477 1033030 1,37518 1037381 1,3693
8 (Local) 909959 #
-
50
Local 1 tarefa 2 tarefas 3 tarefas 4 tarefas 5 tarefas 6 tarefas 7 tarefas 8 tarefas
400000
600000
800000
1000000
1200000
1400000
Figura 4.14: Tempo de execuo do algoritmo de clculo de similaridade de itens - ambi-ente heterogneo (em ms)
1 tarefa 2 tarefas 3 tarefas 4 tarefas 5 tarefas 6 tarefas 7 tarefas 8 tarefas
0,8
1
1,2
1,4
1,6
Figura 4.15: Acelerao do algoritmo de clculo de similaridade de itens - ambienteheterogneo - execues distribudas
4.3 Avaliao dos Resultados
A partir dos desempenhos obtidos pela execuo dos trs casos de teste delimitados,
verificou-se que a ferramenta Apache Mahout possui comportamentos diferenciados para
os algoritmos analisados, K-Means, FPGrowth e clculo de similaridade de itens, bem
como em relao ao poder de processamento do ambiente utilizado. A execuo do al-
goritmo K-Means, no primeiro caso de teste, mostrou um ganho mais significativo no
acrscimo de mquinas ao ambiente de processamento do cluster Gates, se comparado
com o Atlntica, sendo que os nodos do primeiro possuem um poder de processamento
menor que os do segundo. Neste caso, a execuo local foi pior que as execues distri-
budas, nos dois clusters, apesar de as diferenas no desempenho terem sido menores no
-
51
Atlntica que no Gates.
Pode-se verificar que o algoritmo FPGrowth, implementado pela ferramenta, no faz
uso da paralelidade e escalabilidade oferecidas pelo modelo de programao MapReduce.
O segundo caso de teste ilustra essa situao, pois no houve diferenas entre as execues
distribudas, com diferentes nmeros de nodos, ou entre as execues com diferentes
capacidades de processamento, em uma mquina com mais de um ncleo. Verificou-se
que o algoritmo FPGrowth tem uma execuo sequencial, uma vez que apenas uma task
de map, ou reduce, lanada pelo JobTracker por vez, sendo escalonada em qualquer um
dos nodos disponveis.
Tambm visualizou-se situaes onde a execuo local foi mais vantajosa que a dis-
tribuda, em termos de desempenho. O terceiro caso de teste, com a execuo do algo-
ritmo de clculo de similaridade de itens, mostra isso. Essa situao pode ter ocorrido
em virtude da pequena quantidade de dados analisada, onde o custo para a distribuio
das tarefas e manuteno dos dados, no HDFS, acabam sendo superiores ao benefcio da
execuo distribuda.
Com exceo do segundo caso de teste, onde a execuo foi realizada de forma se-
quencial, pode-se verificar que houve um comportamento de escalabilidade da ferramenta,
ao adicionar-se nodos ou aumentar a capacidade de processamento em ambientes multi-
processados. Essa escalabilidade tem um limite, o que foi verificado pelos resultados ob-
tidos nos casos de teste I e III. Alm disso, pode-se verificar que possvel tirar proveito
do uso de mquinas com mais de um ncleo, alterando-se as configuraes do Apache
Hadoop. O terceiro caso de teste, quando executado no ambiente heterogneo, mostra
esta situao.
Apesar de a anlise dos resultados da minerao fugir do escopo deste trabalho, pode-
se observar que, para algoritmos de agrupamento e, consequentemente, classificao, o
formato de vetores utilizado dificulta a visualizao dos resultados obtidos. As informa-
es analisadas que, muitas vezes, so oriundas de bases de dados, devem ser transfor-
madas para um formato de vetores, cujos campos so formados por nmeros de ponto
flutuante. Embora haja formas automticas de converso dos arquivos para este formato
vetorial, no se encontraram formas de converso dos vetores resultantes e, consequente-
mente, do resultado obtido, para o formato inicial.
-
5 CONCLUSO
Este trabalho apresentou uma anlise de desempenho do Apache Mahout, para a mine-
rao de dados distribuda e escalvel, utilizando o modelo de programao MapReduce.
Conjuntos de dados, provenientes do sistema de informaes acadmicas de alunos da
UFSM, foram preparados para serem investigados pela ferramenta. Selecionaram-se trs
algoritmos, K-Means, FPGrowth e cculo de similaridade de itens, para a realizao dos
testes. Realizaram-se testes em trs ambientes distintos, um deles composto por duas
mquinas heterogneas, e os outros sendo clusters com diferentes capacidadedes de pro-
cessamento. Verificou-se o comportamento de escalabilidade da ferramenta, em relao
ao desempenho obtido com o aumento do nmero de mquinas disponveis, e variao da
capacidade de processamento, em mquinas multiprocessadas.
Verificou-se que os algoritmos K-Means e de clculo de similaridade de itens, im-
plementados pela ferramenta, so capazes de tirar proveito de uma execuo distribuda.
Tambm observou-se ser possvel utilizar-se mquinas com vrios ncleos de processa-
mento para aumentar o desempenho da execuo destes algoritmos. Identificou-se um
comportamento de escalabilidade neles, embora em pequena escala, devido pequena
quantidade de mquinas disponveis para o processamento, e ao tamanho dos dados. Para
os dois algoritmos, os ganhos, ao adicionar-se nodos ao processamento, foram mais sig-
nificativos em um ambiente formado por mquinas com menor poder de processamento.
Para o K-Means, as execues distribudas obtiveram melhor desempenho que as centra-
lizadas, o que no foi visualizado, em geral, para o clculo de similaridade de itens, pro-
vavelmente em virtude da menor quantidade de dados analisada. Encontrou-se, tambm,
situao onde a execuo realizada de forma sequencial, com o algoritmo FPGrowth.
Embora faa uso do modelo MapReduce, a execuo sequencial do FPGrowth torna indi-
ferente a quantidade de ns, ou ncleos, disponveis para o processamento, uma vez que
-
53
ele no aproveita a paralelidade e escalabilidade promovidas por este modelo.
A ferramenta Apache Mahout uma soluo recente para minerao de dados distri-
buda. A falta de testes do comportamento desta ferramenta torna vlido este trabalho, que
tem como contribuio a exposio do comportamento da ferramenta, para a minerao
de um conjunto real de dados, em diferentes ambientes distribudos.
Como trabalhos futuros, sugere-se uma investigao da ferramenta em ambientes onde
haja a disponibilidade de um nmero maior de mquinas, e com uma quantidade maior
de dados. Tambm pode-se investigar o desempenho da ferramenta em outros tipos de
sistemas distribudos, como em um ambiente de computao em nuvem.
-
54
REFERNCIAS
ARFF. Attribute-Relation File Format (ARFF). Disponvel em: http://www.cs.
waikato.ac.nz/~ml/weka/arff.html. Acesso em: novembro de 2010.
BERNARDI lder. Uma Arquitetura para Suporte Minerao de Dados Paralela
e Distribuda em Ambientes de Computao de Alto Desempenho. 2010. Dissertao
(Mestrado) Pontifcia Universidade Catlica do Rio Grande do Sul.
BERRY, M. J.; LINOFF, G. S. Data Mining Techniques: for marketing, sales, and cus-
tomer relationship management. [S.l.: s.n.], 2004.
BORGELT, C. An implementation of the FP-growth algorithm. In: OSDM 05: PROCE-
EDINGS OF THE 1ST INTERNATIONAL WORKSHOP ON OPEN SOURCE DATA
MINING, 2005, New York, NY, USA. Anais. . . ACM, 2005. p.15.
CELIS, S.; MUSICANT, D. R. Weka-Parallel: machine learning in parallel. [S.l.]: Car-
leton College, CS TR, 2002.
COULOURIS, G.; DOLLIMORE, J.; TIM, K. Distributed Systems - Concepts and
Design. 3.ed. [S.l.: s.n.], 2000.
DATA MINING, C. I. S. P. for. CRISP-DM - Home. Disponvel em: http://www.
crisp-dm.org/ Acesso em: setembro de 2010.
DUNWIDDIE, B. Java CSV Library. Disponvel em: http://sourceforge.
net/projects/javacsv/. Acesso em: novembro de 2010.
FAYYAD, U. M.; PIATETSKY-SHAPIRO, G.; SMYTH, P. From data mining to kno-
wledge discovery: an overview. Advances in knowledge discovery and data mining,
Menlo Park, CA, USA, p.134, 1996.
-
55
GLOBUS. Welcome to the Globus Toolkit Homepage. Disponvel em: http://www.
globus.org/toolkit/. Acesso em: setembro de 2010.
HAN, J.; KAMBER, M. Data Mining: concepts and techniques. [S.l.: s.n.], 2006.
HAN, J.; PEI, J.; YIN, Y.; MAO, R. Mining Frequent Patterns without Candidate Ge-
neration: a frequent-pattern tree approach. Data Mining and Knowledge Discovery,
Hingham, MA, USA, v.8, n.1, p.5387, January 2004.
HAND, D.; MANNILA, H.; SMYTH, P. Principles of Data Mining. [S.l.: s.n.], 2001.
INGERSOLL, G. Introducing Apache Mahout. Disponvel em: http://www.ibm.
com/developerworks/java/library/j-mahout/. Acesso em: novembro de
2010.
KARGUPTA, H.; BYUNG-HOON; HERSHBERGER, D.; JOHNSON, E. Collective
Data Mining: a new perspective toward distributed data analysis. In: ADVANCES IN
DISTRIBUTED AND PARALLEL KNOWLEDGE DISCOVERY, 1999. Anais. . . AA-
AI/MIT Press, 1999. p.133184.
KHOUSSAINOV, R.; ZUO, X.; KUSHMERICK, N. Grid-enabled Weka: a toolk
top related