EDUARDO PETRINI SILVA CASTRO UMA PROPOSTA DE IMPLEMENTAÇÃO DO ALGORITMO APRIORI DISTRIBUÍDO UTILIZANDO O ARCABOUÇO HADOOP MAPREDUCE

Tamanho: px
Começar a partir da página:

Download "EDUARDO PETRINI SILVA CASTRO UMA PROPOSTA DE IMPLEMENTAÇÃO DO ALGORITMO APRIORI DISTRIBUÍDO UTILIZANDO O ARCABOUÇO HADOOP MAPREDUCE"

Transcrição

1 EDUARDO PETRINI SILVA CASTRO UMA PROPOSTA DE IMPLEMENTAÇÃO DO ALGORITMO APRIORI DISTRIBUÍDO UTILIZANDO O ARCABOUÇO HADOOP MAPREDUCE LAVRAS MG 2014

2 EDUARDO PETRINI SILVA CASTRO UMA PROPOSTA DE IMPLEMENTAÇÃO DO ALGORITMO APRIORI DISTRIBUÍDO UTILIZANDO O ARCABOUÇO HADOOP MAPREDUCE Monografia de graduação apresentada ao Departamento de Ciência da Computação da Universidade Federal de Lavras como parte das exigências do curso de Sistemas de Informação para obtenção do título de Bacharel em Sistemas da Informação. Orientador Prof. DSc. Denilson Alves Pereira LAVRAS MG 2014

3 EDUARDO PETRINI SILVA CASTRO UMA PROPOSTA DE IMPLEMENTAÇÃO DO ALGORITMO APRIORI DISTRIBUÍDO UTILIZANDO O ARCABOUÇO HADOOP MAPREDUCE Monografia de graduação apresentada ao Departamento de Ciência da Computação da Universidade Federal de Lavras como parte das exigências do curso de Sistemas de Informação para obtenção do título de Bacharel em Sistemas da Informação. APROVADA em 10 de Fevereiro de Prof. DSc. Ahmed Ali Abdalla Esmin UFLA Prof. DSc. Leonardo Andrade Ribeiro UFLA Prof. DSc. Denilson Alves Pereira (Orientador) LAVRAS MG 2014

4

5 Dedico este trabalho a toda a minha família por me darem todas as condições necessárias e, principalmente, apoio incondicional em todos os momentos para que eu realizasse este sonho de me formar em Sistemas de Informação. Dedico, também, ao minha namorada Ana Paula Martins Inácio por toda a força e incentivo repassados para que, em meio de toda adversidade, fizesse com que eu não desistisse e persistisse na realização desse sonho. Peço a Deus que os ilumine e retribua toda dedicação e afetividade que tiveram por mim.

6 AGRADECIMENTOS À Universidade federal de Lavras (UFLA), ao Departamento de Ciência da Computação e ao Departamento de Administração e Economia, pela oportunidade concedida para a realização da graduação. Aos professores do Departamento de Ciência da Computação e do Departamento de Administração e Economia pelos ensinamentos transmitidos e harmoniosa convivência. Ao Prof. Dr. Denilson Alves Pereira pela orientação e pelo auxílio neste projeto como também pela confiança depositada em mim em trabalhos realizados nestes anos de faculdade, que foram de grande relevância para a realização deste trabalho e para meu crescimento pessoal e profissional. A todos os colegas do LI- CESA e amigos do curso, em especial Ana Paula Martins Inácio pela ajuda e pela convivência, que foram de grande importância e significância em meu dia-a-dia na Universidade.

7 RESUMO Com o constante aumento no volume de dados gerados diariamente, surgem problemas de eficiência em muitos algoritmos que trabalham com grandes quantidades de dados. Uma parte desses algoritmos é utilizada em mineração de dados para encontrar padrões ocultos em diversos conjuntos de dados. Dentre eles, existe o algoritmo Apriori, que consiste em uma implementação bem conhecida de regras de associação visando encontrar relações entre itens em uma dada base de transações. É eficiente para pequenos conjuntos de dados, porém seu desempenho diminui a medida que o tamanho da entrada aumenta. Existem várias propostas para melhorar o desempenho de algoritmos, dentre elas estão a paralelização e distribuição do processamento. Este trabalho propõe uma técnica de implementação distribuída que busca aumentar a velocidade de processamento da etapa de geração de conjuntos de itens (itemsets) do algoritmo Apriori perante a um grande volume de dados. Para isso foi utilizado o arcabouço Hadoop MapReduce, um sistema de computação distribuída que permite armazenamento e processamento de dados em diversas máquinas organizadas em um cluster. O algoritmo proposto implementa o conceito de arquivo invertido transformando a base de dados de transações em uma estrutura de dados semelhante a uma tabela hash, onde a chave são os itens e o valor representa o conjunto de transações em que o item ocorreu. O algoritmo é divido em 3 fases fundamentais e dependentes entre si. Cada fase gera um conjunto de dados de saída que é utilizado como entrada para a fase seguinte. Foram realizados experimentos utilizando bases sintéticas e uma base real. Palavras-Chave: Hadoop; MapReduce; Paralelização; Distribuição; Mineração de Dados, Apriori.

8 ABSTRACT With the constant increase in the volume of data generated daily, arise efficiency problems in many algorithms that work with large mounts of data. Some these algorithms are used in mining data to find hidden patterns in different data sets. Among them, there is Apriori algorithm, which consists of a successful implementation known association rules aimed at finding relationships between items in a given transaction database. It is efficient for small data sets, but performance decreases as the input size increases. There are several proposals to enhance the performance of algorithms, among which are parallelization and distribution processing. This paper proposes a technique a distributed implementation that seeks to increase the processing speed of generating sets of items (itemsets) step Apriori Algorithm owed to a large volume of data. To this was Hadoop MapReduce framework used for a computing system allowing distributed storage and data processing in various machines arranged in a cluster. The proposed algorithm implements the concept of inverted file, transforming the database transactions in a structure similar to a hash table data, which the key are items and the value is the set of transactions in which the item occurred. The algorithm is divided into 3 fundamental and interdependent stages. Each step generates a data set output that is used as input to the next stage. Experiments using synthetic bases and a real basis were performed. Keywords: Hadoop; MapReduce; Paralelização; Distribuição; Mineração de Dados, Apriori.

9 SUMÁRIO 1 Introdução Contextualização Objetivos Objetivo Geral Objetivos Específicos Justificativa Organização deste Documento Referencial Teórico MapReduce WordCount Hadoop Arquitetura Hadoop daemons Mineração de dados Mineração de Regras de Associação Algoritmo Apriori Algoritmo Apriori Utilizando o MapReduce Metodologia Classificação do Trabalho Desenvolvimento do Trabalho Algoritmo Apriori MapReduce Descrição do Algoritmo Primeira Fase Segunda Fase Terceira Fase

10 4.2 Configurações para o MapReduce Experimentos e Resultados Ambiente de Experimentos Bases de Dados Estratégia de Execução e Balanceamento de Carga Experimento com as Bases de Dados Conclusão 61 A Instalação e Configuração do Hadoop 68 A.1 Antes da Instalação A.2 Hadoop A.2.1 hadoop-env.sh A.2.2 core-site.xml A.2.3 hdfs-site.xml A.2.4 mapred-site.xml A.2.5 yarn-site.xml A.3 Inicialização do Hadoop

11 LISTA DE FIGURAS 2.1 Etapas do MapReduce (GRONINGEN, 2009) Arquitetura do Hadoop 1.x.x (APACHE, 2011) Arquitetura do Hadoop 2.x.x (APACHE, 2014) Arquitetura do JobTracker Arquitetura YARN (APACHE, 2013) Geração de itemsets Fluxo de execução do processamento das entidades (CRYANS et al., 2010) Fluxo de execução do Apriori MapReduce (LI et al., 2012) Estrutura do Arquivo Invertido Fluxo MapReduce da Primeira Fase Fluxo MapReduce da Segunda Fase Fluxo MapReduce da Terceira Fase Tempo de Execução por Suporte Mínimo Speedup para as bases de dados sintéticas Tempo de execução por suporte mínimo: base real Speedup para a base de dados real

12 LISTA DE TABELAS 2.1 Conjunto de dados de transações Computador Mestre Computadores Escravos Base de Dados Sintéticas

13 11 1 INTRODUÇÃO 1.1 Contextualização Nos últimos anos, a quantidade de dados e informações geradas por empresas e pessoas aumentou a níveis extraordinários. Proporcionalmente também aumentou o custo computacional para o processamento desses dados. Muitos algoritmos que funcionavam bem há uma ou duas décadas atrás, hoje podem não ser tão eficientes perante a quantidade de dados muito maior para qual foram projetados. Grande parte dos algoritmos afetados são da área de mineração de dados, utilizados por diversas organizações para extração de informações. Mineração de dados é a área da computação que busca obter informações implícitas em um determinado conjunto de dados. Os algoritmos de mineração buscam encontrar padrões em dados, e alguns necessitam ler o conjunto de dados mais de uma vez. O problema é que se o volume de dados for muito grande, a execução desses algoritmos tende a ser demorada (WITTEN et al., 2011). O algoritmo Apriori é uma implementação bem conhecida de regras de associação (AGRAWAL; SRIKANT, 1994). O objetivo é gerar regras de acordo com os padrões de relacionamentos entre itens de uma determinada base de dados de transações. Para isso é necessário efetuar diversas combinações desses itens, o que pode resultar em centenas ou milhares de regras dependendo do tamanho da entrada. Para que o algoritmo gere somente um conjunto de regras interessantes para o usuário, é necessário definir um valor para o suporte e a confiança mínima. O suporte se refere à quantidade de ocorrência de um item ou uma combinação de itens na base de dados. Já a confiança é a proporção de um ou mais itens implicarem na ocorrência de outros itens. Muito se tem feito para melhorar o desempenho de algoritmos que trabalham com grandes volumes de dados, utilizando diversas técnicas, inclusive paralelização e distribuição. O método de paralelização permite a execução de vários

14 12 processos ao mesmo tempo em processadores que compartilham a mesma memória. O método de distribuição permite que processos sejam executados em diversos computadores diferentes, com memória independente, interligados por uma rede. A paralelização também pode ser distribuída onde cada processo executado em uma máquina diferente com memória não compartilhada. Com esses métodos é possível obter um ganho de desempenho, permitindo que algoritmos processem grandes volumes de dados em menos tempo. Uma das técnicas utilizadas para o processo de distribuição de processamento é o MapReduce (DEAN; GHEMAWAT, 2004), um paradigma de programação para processar e gerar grandes quantidades de dados de forma distribuída. É fundamentado na ideia de mapear e reduzir, processando dados no formato chave / valor. É uma implementação de um paradigma de programação muito útil para processamento de dados e pode ser usada em diversas áreas (GUNARATHNE et al., 2010). Uma implementação bem conhecida do MapReduce é o Hadoop que foi desenvolvido pela Apache Yahoo. É capaz de gerenciar o armazenamento e o processamento de grandes quantidades de dados de forma distribuída e com eficiência. Possui um sistema de arquivos distribuídos denominado HDFS (HDFS, 2010), inspirado no Google File System (GHEMAWAT et al., 2003). Muitas empresas usam o Hadoop como plataforma base para gerenciar grandes quantidades de dados como o Facebook (BORTHAKUR et al., 2011) e Twitter (LIN; KOLCZ, 2012). 1.2 Objetivos Objetivo Geral Este trabalho tem por objetivo propor uma implementação do módulo de geração dos itemsets do algoritmo de regras de associação, denominado Apriori, utilizando um sistema de programação distribuída.

15 Objetivos Específicos Para desenvolver a aplicação é necessário atingir os objetivos específicos listados: Preparar o ambiente de desenvolvimento executando o sistema Hadoop em um cluster. Pesquisar e compreender o funcionamento do algoritmo Apriori. Mapear o algoritmo Apriori para o paradigma de programação MapReduce. Realizar experimentos com diversas bases de dados. 1.3 Justificativa O campo de computação distribuída cada vez mais abre portas para o desenvolvimento de algoritmos que processe grandes volumes de dados. Com o surgimento do framework Hadoop/MapReduce, muitos pesquisadores implementaram suas propostas de mapeamento de diversos algoritmos para o arcabouço MapReduce. Para o algoritmo de mineração de dados Apriori, existem trabalhos recentes que também propõem o seu mapeamento para o modelo MapReduce, como (CRYANS et al., 2010), (LIN et al., 2012), (YANG et al., 2010) e (LI et al., 2012). Porém, cada um com suas características e limitações. Alguns possuem propósitos específicos, como (CRYANS et al., 2010) que foi projetado para receber o conjunto de dados de entrada, obtidos da Web, a partir de um sistema de armazenamento denominado HBase (APACHE, 2014). Em (LIN et al., 2012) são propostas três versões de algoritmos Apriori mapeados para o paradigma MapReduce, utilizando um processo iterativo, porém ambos necessitam varrer a base de dados de transações original, a cada iteração, para a gerar os conjuntos de itens frequentes. A estratégia de ler a base de transações diversas vezes também é utilizada em (LI et al., 2012) e (YANG et al., 2010), o que torna-se um gargalo quando essa base contém milhares de transações.

16 14 Muito ainda pode ser feito em relação ao desenvolvimento do algoritmo Apriori utilizando o MapReduce, de modo a, reduzir a quantidade de leituras da base de transações originais, que seja mais eficiente e adequada a diversos tipos de bases de dados. Neste sentido, nossa proposta utiliza uma estratégia para efetuar a leitura da base de transações somente uma vez, transformando-a em um arquivo invertido que é utilizado para a geração dos itemsets. 1.4 Organização deste Documento O restante deste documento está organizado a seguinte forma: na Seção 2 é apresentado o referencial teórico. A metodologia é apresentada na Seção 3. Na Seção 4 é apresentado e descrito o algoritmo utilizado neste trabalho. Os resultados são apresentados na Seção 5 seguido pela conclusão na Seção 6. No final há o Apêndice A detalhando o processo de instalação e configuração do framework Hadoop.

17 15 2 REFERENCIAL TEÓRICO 2.1 MapReduce O MapReduce é uma uma técnica de programação distribuída proposta pelo Google para processar dados em grande escala, paralelamente, em um ambiente de computação distribuída (DEAN; GHEMAWAT, 2004). Ele opera exclusivamente com entradas e saídas no formato <chave/valor>. Nesta seção, daremos uma visão geral do funcionamento do MapReduce implementando o algoritmo de teste chamado WordCount (WORDCOUNT, 2011) WordCount O algoritmo WordCount, proposto para fins de teste, é a demonstração do funcionamento básico do MapReduce, e tem como objetivo contar a ocorrência de cada palavra em um arquivo de texto qualquer. O primeiro passo para a execução do código é pegar um arquivo de texto qualquer e armazená-lo no HDFS. Vamos supor que o arquivo de texto tenha o seguinte conteúdo: 1 Deer Beer River 2 Car Car River 3 Deer Car Bear Inicialmente a entrada <chave/valor> do algoritmo é o número da linha e o conteúdo da linha em questão. Essa é a entrada para a primeira função do MapReduce, a função Map. Nesta função o objetivo é processar a linha do arquivo para extrair todas as palavras do texto e, para cada palavra, adicionar um contador com o valor 1. Esse par de dados <palavra/contador(1)> é gerado para cada palavra do texto. Ou seja, após a execução da função Map a saída terá a seguinte forma: 1 Deer 1

18 16 2 Bear 1 3 River 1 4 Car 1 5 Car 1 6 River 1 7 Deer 1 8 Car 1 9 Bear 1 Observe que para cada palavra encontrada no texto, o algoritmo gerou uma chave (a palavra) e um valor (1). Terminado a função Map, uma passo intermediário é executado para efetuar o agrupamendo de ordenação lexicograficamente das chaves emitidas na função Map: 1 Bear 1 2 Bear 1 3 Car 1 4 Car 1 5 Car 1 6 Deer 1 7 Deer 1 8 River 1 9 River 1 A função Reduce é, então, chamada com o objetivo de contar quantas vezes uma determinada chave apareceu. Ou seja, para cada ocorrência da chave, incremente o seu valor por 1. A saída será todas as ocorrências de palavras distintas encontrada no texto e a quantidade de vez que ela apareceu: 1 Bear 2 2 Car 3 3 Deer 2 4 River 2

19 17 A Figura 2.1 ilustra o esquema de funcionamento do MapReduce e todas suas etapas para o exemplo em questão. Figura 2.1: Etapas do MapReduce (GRONINGEN, 2009) Observa-se que há 4 etapas para produzir o resultado final. O arquivo texto armazenado no HDFS é primeiramente divido em blocos e espalhado pelos computadores do cluster. Em seguida a função Map efetua o processamento dos dados de acordo com a implementação feita pelo usuário. Na etapa de Shuffling ocorre o agrupamento dos dados na forma de <chave/valor> de acordo com a chave. Assim a função Reduce processa esses dados e incrementa o contador de cada chave para gerar o resultado final. O MapReduce tem sido usado pelo Google e por diversas outras empresas para muitos diferentes propósitos. Existem diversas razões para a ascensão do MapReduce, dentre elas, destacamos a facilidade de uso, os programadores não precisam ter experiência com sistemas paralelos e distribuídos, já que toda a questão de detalhes da paralelização são invisíveis ao usuário. Uma grande variedade de problemas podem ser facilmente expressados no MapReduce. Por exemplo, o Google utiliza o MapReduce para tratar os dados gerados pelo serviço de busca na Web. Há também implementações para soluções de problemas ou otimização nas áreas de mineração de dados, aprendizagem de máquina, tratamento de texto

20 18 como busca, indexação e tokenização, cloud computing, dentre outras (DEAN; GHE- MAWAT, 2004). 2.2 Hadoop O Hadoop (APACHE, 2011) é uma implementação de código aberto do framework Google MapReduce (DEAN; GHEMAWAT, 2004) que possibilita desenvolver aplicações para serem executadas de forma distribuída. O Hadoop usa o Hadoop Distribuited File System (HDFS) (HDFS, 2010), uma implementação do Google File System (GHEMAWAT et al., 2003), para compartilhar dados em um cluster de computadores. O HDFS é um sistema para armazenamento de dados distribuído e primário usado pelas aplicações do Hadoop. É adequado para armazenamento e processamento distribuído usando computadores comuns, chamados de commodity hardware. As principais características que diferem o HDFS dos demais sistemas de aquivos distribuídos é sua tolerância à falhas, escalabilidade e simplicidade para expandir a capacidade de armazenamento. Recentemente o framework Hadoop passou por uma grande atualização que modificou o funcionamento de alguns dos seus componentes, principalmente os voltados para o gerenciamento de aplicações (APACHE, 2013). Essa nova geração do Hadoop introduz uma nova arquitetura para o gerenciamento de aplicações denominada YARN (Yet Another Resource Negotiator) que foi projetada para solucionar os problemas de escalabilidade presentes na versão anterior do Hadoop/- MapReduce. Foi introduzido na versão 0.23 do Hadoop e já está presente a partir das versões 2.x.x do framework (APACHE, 2013). Nas próximas seções será feito uma descrição de sua arquitetura procurando comparar a diferença entre as versões antiga (Hadoop 1.x.x ou inferior) e a nova (Hadoop 2.x.x).

21 Arquitetura A arquitetura do Hadoop é baseada no paradigma mestre/escravo. Na versão antiga do Hadoop um cluster HDFS poderia possuir somente um NameNode (serviço mestre) e vários DataNodes (escravos) (LAM, 2010). Na nova versão, é possível ter mais de uma NameNode por cluster por meio do novo recurso denominado HDFS Federation (HORTONWORKS, 2014; APACHE, 2014), que fornece melhoria na escalabilidade e opção de isolamento de dados. O NameNode é um serviço mestre que gerencia o sistema de arquivos e o acesso aos dados pelos clientes. No Hadoop 1.x.x, por existir somente um Name- Node por cluster, uma falha no mestre deixaria todo o sistema inoperante até que o NameNode inicie novamente (BORTHAKUR et al., 2011). Já na nova versão, se o cluster possuir mais de um NameNode, o funcionamento dos DataNodes não é prejudicado caso algum nó mestre falhe. Cada máquina de um cluster possui um DataNode que gerencia o armazenamento em cada nó que está rodando. Os arquivos armazenados no HDFS pelos usuários são divididos em um ou mais blocos de 64Mb (padrão) ou um tamanho definido pelo usuário, e são armazenados nos DataNodes. Os DataNodes também executam a criação, exclusão e replicação de blocos no sistema de arquivos. Figura 2.2: Arquitetura do Hadoop 1.x.x (APACHE, 2011)

22 20 A Figura 2.2, ilustra a arquitetura do Hadoop 1.x.x. Apresenta um NameNode e cinco DataNodes com dados armazenados divididos em blocos. Esses blocos são replicados (3 vezes por padrão ou um valor especificado pelo usuário) através dos DataNodes. Essa replicação permite a recuperação de dados caso algum nó falhe. Isso torna o Hadoop um sistema tolerante a falhas. Figura 2.3: Arquitetura do Hadoop 2.x.x (APACHE, 2014) A arquitetura do Hadoop 2.x.x é ilustrado na Figura 2.3. Nota-se que é possível ter vários NameNodes por cluster, cada um responsável por um conjunto de dados, garantindo o isolamento. O Block Pool é uma camada abstrata para facilitar o gerenciamento dos blocos de cada NameNode sem a necessidade de coordenação com os outros NameNodes. Caso algum NameNode venha a falhar, somente os dados o qual gerencia ficará inacessível até que volte a executar. O HDFS também suporta gerenciamento de arquivos para que o usuário possa criar, renomear e excluir arquivos e diretórios do sistema. Para isso, o NameNode fornece uma interface de linha de comando chamada FS Shell (HADOOP, 2009). Nela, o usuário interage com os dados no HDFS criando e removendo arquivos ou diretórios, além de ver conteúdo de arquivos de texto. Também fornece alguns comandos para administrar o cluster, por exemplo, listar e obter informações dos DataNodes ativos no momento.

23 Hadoop daemons Os Hadoop daemons são os serviços que executam quando o Hadoop é iniciado. O NameNode é o daemon principal que controla o HDFS e dirige todos os DataNodes. Há ainda outros daemons fundamentais para sua execução. Como dito anteriormente, o DataNode está presente em cada máquina escrava do cluster Hadoop para executar o trabalho pesado do sistema de arquivo - leitura e escrita no HDFS. Quando é requisitada a leitura de um arquivo no HDFS, o NameNode irá informar quais DataNodes contém cada bloco do arquivo. Os DataNodes irão processar os blocos correspondentes ao arquivo em questão. Um processo semelhante é o de escrita. Quando um arquivo é armazenado no HDFS, ele é divido em blocos que serão replicados através dos DataNodes. Cada DataNode sabe quais blocos de quais arquivos ele está armazenando. Isso permite uma taxa alta de leitura/escrita de dados. Outro daemon importante é o Secondary NameNode (SNN) (LAM, 2010). Trata-se de um daemon assistente para monitoramento do estado do cluster HDFS. A função do SNN é criar pontos de restauração para recuperação de configuração, caso o NameNode venha a falhar. Existem ainda dois outros daemons fundamentais para desenvolvimento de aplicações para processamento de dados no HDFS. Na versão 1.x.x do Hadoop esses daemons eram conhecidos como JobTracker e TaskTracker (LAM, 2010). O JobTracker era a ligação entre uma aplicação MapReduce e o Hadoop. Uma vez executado um código em cima do cluster, o JobTracker determina um plano de execução. Define quais arquivos irá processar, quais nós atribuir para diferentes tarefas, além de monitorar todas as tarefas em execução. Se uma tarefa falhar, o daemon automaticamente realoca a tarefa para outra máquina. O TaskTracker é o daemon escravo do JobTracker que gerencia tarefas individuais em cada nó escravo. Cada TaskTracker executa as tarefas que o JobTracker atribuir. Apesar de existir somente um TaskTracker para cada nó do cluster,

24 22 o daemon pode gerar múltiplas JVMs (Java Virtual Machines) para manipular as tarefas do MapReduce em paralelo. O TaskTracker também tinha a responsabilidade de se comunicar constantemente com o JobTracker. Se a comunicação entre o JobTracker e um TaskTracker específico falhasse, o JobTracker assumiria que esse TaskTracker não está funcionando e logo realocaria a tarefa correspondente a outro nó do cluster. A Figura 2.4 apresenta um esboço do funcionamento do JobTracker e os TaskTracker em um cluster. Figura 2.4: Arquitetura do JobTracker Com a nova arquitetura YARN os antigos JobTracker e TaskTracker foram substituídos por novos serviços que descentralizam as responsabilidades e permite um gerenciamento mais eficiente do cluster. Os demais serviços, Name- Node, DataNode e SecondaryNameNode, foram mantidos e melhorados. O novo gerenciador de recursos, ResoucerManager, é o principal daemon que executada na máquina mestre e sua principal função é atribuir os recursos necessários para todas as aplicações a serem executadas no sistema. Trabalha junto com outros dois serviços que são executados em cada máquina escrava do cluster: NodeManager e ApplicationMaster. O NodeManager recebe as instruções do ResoucerManager e monitora o uso dos recursos (cpu, memória, disco e rede) de sua respectiva máquina escrava. O ApplicationMaster é responsável por negociar os recursos com o ResoucerManager, gerenciar cada instância de uma aplicação executando

25 23 no YARN e trabalha com o NodeManager para alocar e monitorar o conjunto de recursos necessários para a aplicação. Figura 2.5: Arquitetura YARN (APACHE, 2013) O ResoucerManager possui dois componentes principais: um escalonador e um gerenciador de aplicação. O escalonador é responsável por alocar os recursos para todas as aplicações em execução. Os recursos são organizados abstratamente em contêineres de acordo com os requerimentos da aplicação. O gerenciador de aplicação, por sua vez, é responsável por aceitar os jobs submetidos, negociar o contêiner de recursos com o ApplicationMaster e fornecer um serviço que reiniciar o ApplicationMaster em caso de falhas. A Figura 2.5 ilustra a arquitetura YARN. Analisando a Figura 2.5 é possível perceber a importância do Resoucer- Manager para o cluster como um todo. O NodeManager, responsável por monitorar os recursos, reporta o status de cada contêiner de seus respectivos nós. Uma vez que uma aplicação é submetida pelo cliente, inicia-se o processo de negociação de recursos entre o ApplicationMaster e o ResoucerManager para disponibilizar um contêiner necessário para atender os requisitos da aplicação. Enquanto uma aplicação é executada, o NodeManager envia relatórios com status dos recursos utilizados. O ApplicationMaster gerencia a instância da aplicação que está sendo

26 24 executada e, quando finaliza, ele reporta ao ResoucerManager o fim da aplicação e termina. O YARN não é apenas uma atualização melhorada do Hadoop, mas também uma plataforma genérica que fornece um ambiente para outros tipos de paradigmas além do MapReduce, tais como, processamento de grafos, processamento iterativo, machine learning e diversas computações complexas que podem ser executadas em um cluster. 2.3 Mineração de dados Devido ao constante aumento do volume de dados, a necessidade de analisá-los de forma efetiva e rápida se tornou fundamental. Mineração de dados surgiu da necessidade de busca por conhecimento omitido e padrões em diversos conjuntos de dados de forma automatizada para auxiliar na tomada de decisão (WITTEN et al., 2011). Com a tecnologia cada vez mais presente na sociedade torna-se fácil armazenar dados sobre hábitos de compra, hábitos financeiros, entre outros que podem conter algum conhecimento oculto ou algum padrão útil para definir estratégias de empresas. Existem diversas técnicas em mineração de dados, dentre as principais estão regra de associação, classificação e clusterização. Regra de associação é um método usado para encontrar relações entre itens de uma mesma base de dados. Utiliza os conceitos de suporte e confiança para poder gerar regras que sejam interessantes ao usuário. Já para a classificação a estratégia é gerar um modelo baseando-se em dados de treinamento (dados que já possuem a classe conhecida). Esse modelo pode ser em forma de regras (if then), árvore de decisão, fórmulas matemáticas ou redes neurais e será usado para predizer a classe dos dados que serão classificados (HAN; KAMBER, 2011).

27 25 Ao contrário de classificação e regras de associação que predizem atributos, em clusterização o objetivo é agrupar os conjuntos de dados com características semelhantes. Os dados são divididos em grupos baseando-se na similaridade de seus atributos. Assim, cada cluster gerado pode ser visto como uma classe possibilitando a geração de regras. 2.4 Mineração de Regras de Associação Essa técnica gera regras do tipo if then, ou seja, se ocorreu isso, então ocorreu aquilo, por exemplo: em uma base de dados de supermercado descobriu-se que diversos clientes que compraram pão também compraram manteiga. A regra, então, ficaria da seguinte forma: se cliente compra pão, então compra manteiga. Em regras de associação um atributo (comprou pão) pode predizer um ou mais atributos (comprou manteiga e comprou leite, por exemplo). Regras de associação também introduz os conceitos de suporte e confiança para que as regas sejam geradas de acordo com as necessidades do usuário. Para uma base de dados muito grande, a quantidade de regras geradas pode chegar a números exorbitantes. Para limitar a quantidade de regras utiliza-se também o conceito de suporte mínimo e confiança mínima. Suporte é a quantidade de ocorrências de um item ou uma combinação de itens presentes na base de dados de transações. O suporte mínimo é a quantidade mínima, definida pelo usuário, de ocorrência dos itens. Na Tabela 2.1, que representa um banco de dados de transações (onde a primeira coluna é o identificar das transações (TID) e a segunda coluna são os itens), se o suporte mínimo for definido como 2, somente os itens que ocorreram duas ou mais vezes (itens 1, 2, 3 e 5) serão processados pelo algoritmo, os demais serão excluídos. A confiança é a proporção de um ou mais itens implicarem na ocorrência de outros itens. Por exemplo, o item 3 ocorreu três vezes na base de dados de transações assim como o item 5. Porém a proporção de vezes que a ocorrência do

28 26 Tabela 2.1: Conjunto de dados de transações TID Itens item 3 implicou na ocorrência do item 5 é de 66.7%. A confiança mínima, por sua vez, é a proporção mínima, definida pelo usuário, necessária para gerar as regras. No exemplo anterior, se a confiança mínima for 60% a regra se comprou 3, então comprou 5 seria válida. 2.5 Algoritmo Apriori O algoritmo Apriori (AGRAWAL; SRIKANT, 1994) é uma proposta de implementação da técnica de geração de regras de associação e foi projetado inicialmente para encontrar padrões em banco de dados de transações comerciais. Geralmente, cada linha da base de dados consiste de um conjunto de itens pertencentes a uma transação. O objetivo do Apriori é gerar regras de associação baseando-se na quantidade de vezes que dois ou mais itens ocorreram juntos no conjunto de transações, efetuando diversas combinações entre os itens. Para que o algoritmo gere todas as regras interessantes para o usuário, é necessário efetuar diversas leituras na base de dados de transações. Na primeira leitura, o objetivo é efetuar a contagem do suporte dos itens individualmente (1- itemset), identificando quais possuem um suporte maior do que o suporte mínimo definido, para utilizá-los na geração dos próximos conjuntos de itens de tamanho k (k-itemsets), k > 1.

29 27 Para a geração dos conjuntos de itemsets de tamanho k, é realizado um procedimento de junção entre os itens do conjunto de itemsets de tamanho k-1, de acordo com o critério dos prefixo iguais proposto em (AGRAWAL; SRIKANT, 1994). Ou seja, as combinações só são efetivadas entre os itens que possuem o mesmo prefixo, como ilustrado pela Figura 2.6. Observa-se que no conjunto de itemsets de tamanho 2, os itens com o mesmo prefixo são combinados entre si, resultando em um novo conjunto de itemsets de tamanho 3. O mesmo procedimento é executado para a geração do itemset de tamanho 4. Na Figura 2.6, somente os 3-itemsets a b c e a b d possuem o mesmo prefixo. Logo, são combinados gerando o itemset de tamanho 4. Figura 2.6: Geração de itemsets Cada novo conjunto de itens gerados é denominado conjunto de itens candidatos e o suporte é calculado consultando novamente a base de dados de transações. Em seguida os itemsets que não atingirem o valor do suporte mínimo são podados do conjunto candidatos, gerando um novo conjunto de itens denominado conjunto de itens frequentes. O processo continua até que nenhum novo conjunto de itens candidatos seja criado. A próxima e última etapa consiste na geração das regas. Para cada conjunto de itens frequentes gera-se as regras de acordo com o valor de confiança definido pelo usuário. Existem diversas propostas de melhorias para o algoritmo Apriori. No mesmo trabalho que apresentam o algoritmo descrito acima (AGRAWAL; SRIKANT,

30 ), os autores também demostram uma variação do Apriori, denominada AprioriTid cujo a principal características é a leitura da base de dados de transações somente uma vez, na etapa de geração dos itens de tamanho 1. Isso é possível mapeando a base de dados original para uma estrutura semelhante a um array indexado, onde o índice é o identificador da transação (TID) e o valor é o conjunto de k-itemsets presentes na transação. Dessa forma o suporte pode ser calculado contando quantas vezes o mesmo itemset ocorreu para TID diferentes. Outros trabalhos como (CHEN et al., 2011) apresentam uma proposta de melhoria na etapa de poda para evitar a leitura da base de dados diversas vezes. Em (PARK et al., 1995) utiliza-se uma estrutura de tabela hash para otimizar o processo de geração do k-itemsets. Uma técnica de segmentação da base de dados transações também são utilizadas para melhorar o desempenho do Apriori, como apresentado em (SAVASERE et al., 1995). 2.6 Algoritmo Apriori Utilizando o MapReduce Com o surgimento do MapReduce, muitas portas se abriram para soluções de problemas que necessitam processar volumosos conjuntos de dados. É possível mapear algoritmos de mineração de dados para o MapReduce de modo que a quantidade de dados processados não seja uma gargalo para as aplicações. Existem vários trabalhos que propõem implementações do algoritmo Apriori (AGRAWAL; SRIKANT, 1994) para o arcabouço Hadoop/MapReduce, como (YANG et al., 2010), (CRYANS et al., 2010), (LI et al., 2012) e (LIN et al., 2012). Eles se diferem em aspectos como origem dos dados de entrada, estratégia de implementação e o modo de utilização do framework. Em (CRYANS et al., 2010), a origem dos dados é do sistema de armazenamento HBase (APACHE, 2014), enquanto nos demais é utilizado o sistema de arquivos distribuídos do Hadoop. Em (YANG et al., 2010) e (CRYANS et al., 2010), o Hadoop/MapReduce é utilizado principalmente para contagem e poda dos itemsets. Já em (LI et al., 2012) o framework também é utilizado

31 29 para efetuar as combinações entre os itens. No trabalho de (LIN et al., 2012) são apresentadas 3 versões do algoritmo Apriori distribuído utilizando a estratégia de processo iterativo para a geração e poda dos itemsets. O pseudo código da implementação do algoritmo Apriori proposta por (YANG et al., 2010) é apresentado logo abaixo. 1 L 1 = find_frequent_1-itemset(d); 2 for (k = 2; L k 1!= /0; k++){ 3 C k = candidate_gen(l k 1, min_sup); 4 for each row of data t D { 5 C t = map(); 6 } 7 L k = reduce(); 8 } 9 return L = L k L k ; Nessa implementação, a função Map efetua a contagem dos itens no conjunto candidato de entrada, gerando um subconjunto que será a entrada da função Reduce. Esta, por sua vez, irá podar os itens candidatos gerando um subconjunto de itens frequentes com combinações de itens de tamanho k. Depois de todas as combinações possíveis serem feitas, retorna-se o conjunto de todos os itens frequentes L que será utilizado para gerar as regras de associação. Nos experimentos realizados, foram executados testes de Speedup, e observou-se que a proporção é mais relevante para conjunto de dados maiores, enquanto que, para o processamento de quantidade de dados menores, fatores como comunicação entre os nós, troca de dados e inicialização do ambiente tem maior influência no tempo de execução. A proposta de implementação do algoritmo apresentada em (CRYANS et al., 2010) tem como principal objetivo processar um grande volume de dados contendo feeds de notícias para encontrar relações entre entidades. Utiliza o conhecimento contido na Internet para revelar as ligações entre cidades, pessoas, objetos, monu-

32 30 mentos, ou outros conceitos tangíveis. A Figura 2.7 ilustra o fluxo de execução dessa proposta. Figura 2.7: Fluxo de execução do processamento das entidades (CRYANS et al., 2010) A implementação do Apriori tem a tarefa de identificar os conjuntos de itemsets (entidades) que possuem uma quantidade mínima de ocorrências maior do que a definida previamente. Os artigos são coletados da Web e armazenados no HBase. A fase Map consiste em obter os HTML s dos artigos armazenados no HBase e extrair as entidades que contenham um determinado número de ocorrências na página, gerando conjuntos de itemsets que são enviados para a função Reduce. Nessa função, os conjuntos são armazenados novamente em uma nova tabela no HBase. Na próxima etapa, os conjuntos de itemsets armazenados anteriormente são recuperados por meio de outra função Map e enviados para a função Reduce, onde são contados, podados e armazenados no HBase. Foram realizados experimentos em um cluster com 5 máquinas escravas, executando testes adicionando um escravo de cada vez. Percebeu-se que utilizando todas as máquinas o tempo de execução não é 5 vezes mais rápido do que os testes com apenas uma máquina. Os autores atribuíram como motivo a qualidade da distribuição dos dados no sistema de armazenamento de dados HBase. Quando se executa em apenas uma máquinas, todos os dados estão armazenados localmente, não necessitando acessar outras máquinas para obtê-los, algo que demandaria determinado tempo.

BIG DATA: UTILIZANDO A INTERNET PARA TOMADA DE DECISÕES

BIG DATA: UTILIZANDO A INTERNET PARA TOMADA DE DECISÕES BIG DATA: UTILIZANDO A INTERNET PARA TOMADA DE DECISÕES Alex Travagin Chatalov¹, Ricardo Ribeiro Rufino ¹ ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil alex_tr1992@hotmail.com ricardo@unipar.br

Leia mais

Curso de Data Mining

Curso de Data Mining Curso de Data Mining Sandra de Amo Aula 2 - Mineração de Regras de Associação - O algoritmo APRIORI Suponha que você seja gerente de um supermercado e esteja interessado em conhecer os hábitos de compra

Leia mais

Experimentos com a memória cache do CPU

Experimentos com a memória cache do CPU Experimentos com a memória cache do CPU Alberto Bueno Júnior & Andre Henrique Serafim Casimiro Setembro de 2010 1 Contents 1 Introdução 3 2 Desvendando o cache 3 2.1 Para que serve o cache?.....................

Leia mais

1 http://www.google.com

1 http://www.google.com 1 Introdução A computação em grade se caracteriza pelo uso de recursos computacionais distribuídos em várias redes. Os diversos nós contribuem com capacidade de processamento, armazenamento de dados ou

Leia mais

MINERAÇÃO DE DADOS APLICADA. Pedro Henrique Bragioni Las Casas pedro.lascasas@dcc.ufmg.br

MINERAÇÃO DE DADOS APLICADA. Pedro Henrique Bragioni Las Casas pedro.lascasas@dcc.ufmg.br MINERAÇÃO DE DADOS APLICADA Pedro Henrique Bragioni Las Casas pedro.lascasas@dcc.ufmg.br Processo Weka uma Ferramenta Livre para Data Mining O que é Weka? Weka é um Software livre do tipo open source para

Leia mais

Sistemas Operacionais

Sistemas Operacionais 7 Sistemas Operacionais 7.1 Fundamentos da ciência da computação Cengage Learning Objetivos 7.2 Compreender o papel do sistema operacional. Compreender o processo de inicialização para carregar o sistema

Leia mais

Nível 3 Sistema Operacional

Nível 3 Sistema Operacional Nível 3 Sistema Operacional Universidade Tuiuti do Paraná UTP Faculdade de Ciências Exatas - FACET Tecnologia de Análise e Desenvolvimento de Sistemas Organização de Computadores Prof. André Luiz 1 Nível

Leia mais

Estratégia para dentificação dos fatores de maior impacto de aplicações Mapreduce

Estratégia para dentificação dos fatores de maior impacto de aplicações Mapreduce Estratégia para dentificação dos fatores de maior impacto de aplicações Mapreduce Fabiano da Guia Rocha Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso - Campus Cáceres Av. dos Ramires,

Leia mais

Arquiteturas Java Pragmá1cas para usar Big Data na Nuvem. Fabiane Bizinella Nardon (@fabianenardon) Fernando Babadopulos (@babadopulos)

Arquiteturas Java Pragmá1cas para usar Big Data na Nuvem. Fabiane Bizinella Nardon (@fabianenardon) Fernando Babadopulos (@babadopulos) Arquiteturas Java Pragmá1cas para usar Big Data na Nuvem Fabiane Bizinella Nardon (@fabianenardon) Fernando Babadopulos (@babadopulos) Nós e Big Data BigDataTailTargetDataScienceMachineLearningHiveHadoopCrunchMongoDBRedisAWS

Leia mais

Big Table. Valter Henrique

Big Table. Valter Henrique Big Table Valter Henrique O que é BigTable? BigTable Sistema de armazenamento de dados estruturados Motivação Muitas (semi-)estruturas de dados no mundo e no Google URL Conteúdo, rastreamento de metadados,

Leia mais

HadoopDB. Edson Ie Serviço Federal de Processamento de Dados - SERPRO

HadoopDB. Edson Ie Serviço Federal de Processamento de Dados - SERPRO HadoopDB Edson Ie Serviço Federal de Processamento de Dados - SERPRO Motivação Grandes massas de dados precisam ser processadas em clusters: 1 nó: 100TB@59MB/s = 23 dias Cluster com 1000 nós 33 min!!!

Leia mais

EXEMPLO: Processo para atualização da hora Processo para monitoramento da necessidade de proteção de tela. Figura 4-1 - Exemplo

EXEMPLO: Processo para atualização da hora Processo para monitoramento da necessidade de proteção de tela. Figura 4-1 - Exemplo 4 PROCESSOS Os primeiros sistemas operacionais permitiam que apenas um processo fosse executado por vez. Dessa maneira, este processo tinha todo o sistema computacional a sua disposição. Os atuais sistemas

Leia mais

Laboratório do Framework Hadoop em Plataformas de Cloud e. Cluster Computing

Laboratório do Framework Hadoop em Plataformas de Cloud e. Cluster Computing Laboratório do Framework Hadoop em Plataformas de Cloud e Framework Hadoop em Plataformas de Cluster Computing Cloud Computing Eng. André Luiz Tibola. Mst. Raffael Bottoli Schemmer Prof. Dr. Cláudio Fernando

Leia mais

NOMES: Leonardo Claro Diego Lage Charles Tancredo Márcio Castro

NOMES: Leonardo Claro Diego Lage Charles Tancredo Márcio Castro NOMES: Leonardo Claro Diego Lage Charles Tancredo Márcio Castro O MySQL Cluster é versão do MySQL adaptada para um ambiente de computação distribuída, provendo alta disponibilidade e alta redundância utilizando

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 6 Estrutura de Sistemas Operacionais Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso

Leia mais

Seminário: Google File System (GFS)

Seminário: Google File System (GFS) UNIVERSIDADE FEDERAL DE SANTA CATARINA UFSC Disciplina: Sistemas Operacionais I INE5355 Alunos: Armando Fracalossi 06132008 Maurílio Tiago Brüning Schmitt 06132033 Ricardo Vieira Fritsche 06132044 Seminário:

Leia mais

Um sistema é constituído de um conjunto de processos que executam seus respectivos códigos do sistema operacional e processos e códigos de usuários.

Um sistema é constituído de um conjunto de processos que executam seus respectivos códigos do sistema operacional e processos e códigos de usuários. Os sistemas computacionais atuais permitem que diversos programas sejam carregados na memória e executados simultaneamente. Essa evolução tornou necessário um controle maior na divisão de tarefas entre

Leia mais

Prof. Msc. Paulo Muniz de Ávila

Prof. Msc. Paulo Muniz de Ávila Prof. Msc. Paulo Muniz de Ávila O que é Data Mining? Mineração de dados (descoberta de conhecimento em bases de dados): Extração de informação interessante (não-trivial, implícita, previamente desconhecida

Leia mais

MINERAÇÃO DE DADOS: APLICAÇÃO PRÁTICA EM PEQUENAS E MÉDIAS EMPRESAS

MINERAÇÃO DE DADOS: APLICAÇÃO PRÁTICA EM PEQUENAS E MÉDIAS EMPRESAS MINERAÇÃO DE DADOS: APLICAÇÃO PRÁTICA EM PEQUENAS E MÉDIAS EMPRESAS RONALDO RIBEIRO GOLDSCHMIDT RESUMO. O intenso crescimento do volume de informações nas bases de dados corporativas de pequenas, médias

Leia mais

Sistemas Operacionais Cap 3 Estruturas de Sistemas Operacionais. Podemos analisar um sistema operacional sob diversos aspectos:

Sistemas Operacionais Cap 3 Estruturas de Sistemas Operacionais. Podemos analisar um sistema operacional sob diversos aspectos: Estruturas de Sistemas Operacionais Podemos analisar um sistema operacional sob diversos aspectos: Os serviços que o sistema operacional oferece. A interface que o sistema operacional torna disponível

Leia mais

Desenvolvimento de Software no Contexto Big Data

Desenvolvimento de Software no Contexto Big Data Universidade de Brasília - UnB Faculdade UnB Gama - FGA Engenharia de Software Desenvolvimento de Software no Contexto Big Data Autor: Guilherme de Lima Bernardes Orientador: Prof. Dr. Fernando William

Leia mais

Weather Search System

Weather Search System Weather Search System PROJECTO DE COMPUTAÇÃO EM NUVEM RELATÓRIO Grupo 2 Gonçalo Carito - Nº57701 Bernardo Simões - Nº63503 Guilherme Vale - Nº64029 Índice Weather Search System...1 1. A Solução Implementada...3

Leia mais

Hadoop - HDFS. Universidade Federal de Goiás Ciência da Computação

Hadoop - HDFS. Universidade Federal de Goiás Ciência da Computação Hadoop - HDFS Universidade Federal de Goiás Ciência da Computação O que é Hadoop? Um framework para lidar com aplicações distribuídas que fazem uso massivo de dados Originalmente construído para a distribuição

Leia mais

Definindo melhor alguns conceitos

Definindo melhor alguns conceitos Definindo melhor alguns conceitos Processamento Paralelo: processamento de informação concorrente que pertencem a um ou mais processos que resolvem um único problema. Processamento Distribuído: processamento

Leia mais

Capítulo 8 Arquitetura de Computadores Paralelos

Capítulo 8 Arquitetura de Computadores Paralelos Capítulo 8 Arquitetura de Computadores Paralelos Necessidade de máquinas com alta capacidade de computação Aumento do clock => alta dissipação de calor Velocidade limitada dos circuitos => velocidade da

Leia mais

Capítulo 1. Introdução. 1.1 Linguagens. OBJETIVOS DO CAPÍTULO Ao final deste capítulo você deverá ser capaz de:

Capítulo 1. Introdução. 1.1 Linguagens. OBJETIVOS DO CAPÍTULO Ao final deste capítulo você deverá ser capaz de: i Sumário 1 Introdução 1 1.1 Linguagens....................................... 1 1.2 O que é um Compilador?................................ 2 1.3 Processadores de Programas: Compiladores, Interpretadores

Leia mais

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 6 - ALGORÍTIMOS PARALELOS MPI - Parallel Virtual Machine e PVM - Parallel Virtual Machine 1. INTRODUÇÃO Inicialmente é necessário conceber alguns conceitos para entendimento dos algoritmos paralelos:

Leia mais

LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO

LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO LABORATÓRIO DE SISTEMAS OPERACIONAIS PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO Gerenciamento de Memória no Linux O Linux é um sistema operacional com memória virtual paginada, isto quer dizer que

Leia mais

(HDFS) Usando o. hadoop_

(HDFS) Usando o. hadoop_ hadoop_ Usando o Hadoop Distributed File System (HDFS) Hadoop File System (HDFS) é o componente do O Hadoop responsável pela persistência de dados de forma distribuída, constituindo a principal funcionalidade

Leia mais

Desenvolvendo Aplicações Web com NetBeans

Desenvolvendo Aplicações Web com NetBeans Desenvolvendo Aplicações Web com NetBeans Aula 3 Cap. 4 Trabalhando com Banco de Dados Prof.: Marcelo Ferreira Ortega Introdução O trabalho com banco de dados utilizando o NetBeans se desenvolveu ao longo

Leia mais

NoSQL como suporte à análise de dados nãonormalizados. volume

NoSQL como suporte à análise de dados nãonormalizados. volume NoSQL como suporte à análise de dados nãonormalizados e de grande volume Joel Alexandre Orientador: Professor Luís Cavique Motivação Grande quantidade de registos Tudo é registado Internet of things tudo

Leia mais

AULA 13 - Gerência de Memória

AULA 13 - Gerência de Memória AULA 13 - Gerência de Memória omo sabemos, os computadores utilizam uma hierarquia de memória em sua organização, combinando memórias voláteis e não-voláteis, tais como: memória cache, memória principal

Leia mais

4 Conversor EDTV Raw. 4.1 Arquitetura

4 Conversor EDTV Raw. 4.1 Arquitetura 4 Conversor EDTV Raw O conversor EDTV Raw é o programa que lê um documento escrito no perfil NCL EDTV e gera um documento Raw equivalente, i.e. que define a mesma apresentação. Este capítulo, apresenta

Leia mais

ATIVIDADES PRÁTICAS SUPERVISIONADAS

ATIVIDADES PRÁTICAS SUPERVISIONADAS ATIVIDADES PRÁTICAS SUPERVISIONADAS Ciência da Computação 5ª série Sistemas Operacionais A atividade prática supervisionada (ATPS) é um método de ensinoaprendizagem desenvolvido por meio de um conjunto

Leia mais

Processos (Threads,Virtualização e Migração de Código)

Processos (Threads,Virtualização e Migração de Código) Processos (Threads,Virtualização e Migração de Código) Roteiro Processos Threads Virtualização Migração de Código O que é um processo?! Processos são programas em execução. Processo Processo Processo tem

Leia mais

Documento de Instalação e Configuração do InfoGrid

Documento de Instalação e Configuração do InfoGrid Documento de Instalação e Configuração do InfoGrid Tecgraf/PUC Rio infogrid@tecgraf.puc rio.br 1.Introdução O objetivo deste documento é podermos registrar em um único local todas as informações necessárias

Leia mais

Aplicação da Medida TfIdf em Bancos de Dados Relacionais para Ordenação de Consultas por Termos

Aplicação da Medida TfIdf em Bancos de Dados Relacionais para Ordenação de Consultas por Termos Aplicação da Medida TfIdf em Bancos de Dados Relacionais para Ordenação de Consultas por Termos Daniel Pereira Lima 1, Naziane Alves Pinto 2, Carla Oran Fonseca de Souza 3, Francisca Sancha Azevedo da

Leia mais

UFRPE Prof. Gustavo Callou gcallou@gmail.com

UFRPE Prof. Gustavo Callou gcallou@gmail.com UFRPE Prof. Gustavo Callou gcallou@gmail.com 1 Algoritmos Representação Exercícios Linguagens de Programação Compilador Interpretador Ambiente de Desenvolvimento Python Característica Para que serve Onde

Leia mais

GUILHERME STUTZ TÖWS ANIMAÇÃO DE ALGORITMOS

GUILHERME STUTZ TÖWS ANIMAÇÃO DE ALGORITMOS GUILHERME STUTZ TÖWS ANIMAÇÃO DE ALGORITMOS Trabalho de graduação do Curso de Ciência da Computação do Setor de Ciências Exatas da Universidade Federal do Paraná. Professor: André Luiz Pires Guedes CURITIBA

Leia mais

Apresentação do Artigo

Apresentação do Artigo Apresentação do Artigo Web Search for a Planet: The Google Cluster Architecture Publicado em IEEE Micro Março 2003, pg.22-28 Luiz A.Barroso, Jeffrey Dean, Urs Hölze Frank Juergen Knaesel fknaesel@inf.ufsc.br

Leia mais

Notas da Aula 4 - Fundamentos de Sistemas Operacionais

Notas da Aula 4 - Fundamentos de Sistemas Operacionais Notas da Aula 4 - Fundamentos de Sistemas Operacionais 1. Threads Threads são linhas de execução dentro de um processo. Quando um processo é criado, ele tem uma única linha de execução, ou thread. Esta

Leia mais

Estruturas de Armazenamento e Indexação. Rafael Lage Moreira Barbosa 10.1.4217

Estruturas de Armazenamento e Indexação. Rafael Lage Moreira Barbosa 10.1.4217 Estruturas de Armazenamento e Indexação Rafael Lage Moreira Barbosa 10.1.4217 Estruturas de Armazenamento Banco de Dados são armazenados fisicamente como arquivos de registro, que em geral ficam em discos

Leia mais

Sistemas Processadores e Periféricos Aula 9 - Revisão

Sistemas Processadores e Periféricos Aula 9 - Revisão Sistemas Processadores e Periféricos Aula 9 - Revisão Prof. Frank Sill Torres DELT Escola de Engenharia UFMG Adaptado a partir dos Slides de Organização de Computadores 2006/02 do professor Leandro Galvão

Leia mais

Organização de Computadores 1

Organização de Computadores 1 Organização de Computadores 1 SISTEMA DE INTERCONEXÃO (BARRAMENTOS) Prof. Luiz Gustavo A. Martins Arquitetura de von Newmann Componentes estruturais: Memória Principal Unidade de Processamento Central

Leia mais

SISTEMA DE ARQUIVOS DISTRIBUÍDOS

SISTEMA DE ARQUIVOS DISTRIBUÍDOS SISTEMA DE ARQUIVOS DISTRIBUÍDOS Sistemas Distribuídos 331 Arquivo: objeto que existe após criação, é imune a falhas temporárias e é persistente até que seja destruído Propósito de arquivos: armazenamento

Leia mais

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira IFPE Disciplina: Sistemas Operacionais Prof. Anderson Luiz Moreira SERVIÇOS OFERECIDOS PELOS SOS 1 Introdução O SO é formado por um conjunto de rotinas (procedimentos) que oferecem serviços aos usuários

Leia mais

Algoritmos em Javascript

Algoritmos em Javascript Algoritmos em Javascript Sumário Algoritmos 1 O que é um programa? 1 Entrada e Saída de Dados 3 Programando 4 O que é necessário para programar 4 em JavaScript? Variáveis 5 Tipos de Variáveis 6 Arrays

Leia mais

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Conceitos básicos e serviços do Sistema Operacional Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Tipos de serviço do S.O. O S.O.

Leia mais

Boas Práticas em Sistemas Web muito além do HTML...

Boas Práticas em Sistemas Web muito além do HTML... Boas Práticas em Sistemas Web muito além do HTML... Adriano C. Machado Pereira (adrianoc@dcc.ufmg.br) De que Web estamos falando? De que Web estamos falando? A Web foi concebida para ser uma biblioteca

Leia mais

Roteiro. Sistemas Distribuídos. Sistemas de Arquivos Distribuídos. Sistema de arquivos distribuídos

Roteiro. Sistemas Distribuídos. Sistemas de Arquivos Distribuídos. Sistema de arquivos distribuídos Sistemas Distribuídos Sistemas de Arquivos Distribuídos Roteiro Sistema de arquivos distribuídos Requisitos Arquivos e diretórios Compartilhamento Cache Replicação Estudo de caso: NFS e AFS Sistemas Distribuídos

Leia mais

ESTRUTURAS DE DADOS I. Notas de Aula. Prof. Dr. Gilberto Nakamiti

ESTRUTURAS DE DADOS I. Notas de Aula. Prof. Dr. Gilberto Nakamiti ESTRUTURAS DE DADOS I Notas de Aula 1 SUMÁRIO 1. INTRODUÇÃO... 2 1.1 Array (vetores)... 2 2. BUSCA DE ELEMENTOS... 3 2.1 Busca Seqüencial... 3 2.2 Busca Binária... 3 2.3 Busca Indexada... 3 2.4 Busca Hash...

Leia mais

Rational Quality Manager. Nome: Raphael Castellano Campus: AKXE Matrícula: 200601124831

Rational Quality Manager. Nome: Raphael Castellano Campus: AKXE Matrícula: 200601124831 Rational Quality Manager Nome: Raphael Castellano Campus: AKXE Matrícula: 200601124831 1 Informações Gerais Informações Gerais sobre o RQM http://www-01.ibm.com/software/awdtools/rqm/ Link para o RQM https://rqmtreina.mvrec.local:9443/jazz/web/console

Leia mais

23/05/12. Computação em Nuvem. Computação em nuvem: gerenciamento de dados. Computação em Nuvem - Características principais

23/05/12. Computação em Nuvem. Computação em nuvem: gerenciamento de dados. Computação em Nuvem - Características principais Computação em Nuvem Computação em nuvem: gerenciamento de dados Computação em nuvem (Cloud Computing) é uma tendência recente de tecnologia cujo objetivo é proporcionar serviços de Tecnologia da Informação

Leia mais

Programação Concorrente Processos e Threads

Programação Concorrente Processos e Threads Programação Concorrente Processos e Threads Prof. Eduardo Alchieri Processos O conceito mais central em qualquer sistema operacional é o processo Uma abstração de um programa em execução Um programa por

Leia mais

Sistemas Distribuídos: Conceitos e Projeto Threads e Migração de Processos

Sistemas Distribuídos: Conceitos e Projeto Threads e Migração de Processos Sistemas Distribuídos: Conceitos e Projeto Threads e Migração de Processos Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA http://www.lsd.deinf.ufma.br

Leia mais

MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS

MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS Quando falamos em arquitetura, normalmente utilizamos esse termo para referenciar a forma como os aplicativos computacionais são estruturados e os hardwares

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Sistemas de Entrada/Saída Princípios de Software Sistema de Entrada/Saída Princípios de Software Tratadores (Manipuladores) de Interrupções Acionadores de Dispositivos (Device Drivers)

Leia mais

Avaliação do Controle de Acesso de Múltiplos Usuários a Múltiplos Arquivos em um Ambiente Hadoop

Avaliação do Controle de Acesso de Múltiplos Usuários a Múltiplos Arquivos em um Ambiente Hadoop Avaliação do Controle de Acesso de Múltiplos Usuários a Múltiplos Arquivos em um Ambiente Hadoop Eduardo Scuzziato 1, João E. Marynowski 1,2, Altair O. Santin 1 1 Escola Politécnica Ciência da Computação

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Cassandra - Particionamento de Dados Sistemas Distribuídos Douglas Macedo Hugo Lourenço Sumário Introdução Conceito Anel Multíplos Data center Fatores envolvidos Arquitetura do Sistema Módulo de Particionamento

Leia mais

4 Avaliação do Código Gerado

4 Avaliação do Código Gerado Referencial Teórico 4 Avaliação do Código Gerado Nós fizemos alguns exemplos para avaliar a eficiência da especificação proposta, tanto em termos de velocidade de execução quanto de diminuição do tamanho

Leia mais

Fundamentos de Sistemas Computacionais Introdução

Fundamentos de Sistemas Computacionais Introdução Fundamentos de Sistemas Computacionais Introdução Prof. Eduardo Alchieri Sistema Computacional Hardware Software Usuários Um ou mais processadores, memória, discos, impressoras, teclado, mouse, monitor,

Leia mais

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados: MC536 Introdução Sumário Conceitos preliminares Funcionalidades Características principais Usuários Vantagens do uso de BDs Tendências mais recentes em SGBDs Algumas desvantagens Modelos de dados Classificação

Leia mais

Apresentação dos autores

Apresentação dos autores Laboratório do Framework Laboratório do Framework Hadoop Hadoop em Plataformas de em Plataformas de Cloud e Cluster Cloud e Cluster Computing Computing Eng. André Luiz Tibola. Eng. André Luís Tibola. Prof.

Leia mais

Capítulo 8: Gerenciamento de Memória

Capítulo 8: Gerenciamento de Memória Capítulo 8: Gerenciamento de Memória Sobre a apresentação (About( the slides) Os slides e figuras dessa apresentação foram criados por Silberschatz, Galvin e Gagne em 2005. Esse apresentação foi modificada

Leia mais

Banco de Dados Distribuídos

Banco de Dados Distribuídos A imagem não pode ser exibida. Talvez o computador não tenha memória suficiente para abrir a imagem ou talvez ela esteja corrompida. Reinicie o computador e abra o arquivo novamente. Se ainda assim aparecer

Leia mais

BIG DATA INTRODUÇÃO. Humberto Sandmann humberto.sandmann@gmail.com

BIG DATA INTRODUÇÃO. Humberto Sandmann humberto.sandmann@gmail.com BIG DATA INTRODUÇÃO Humberto Sandmann humberto.sandmann@gmail.com Apresentação Humberto Sandmann humberto.sandmann@gmail.com Possui graduação em Ciências da Computação pelo Centro Universitário da Faculdade

Leia mais

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br Java Marcio de Carvalho Victorino www.dominandoti.eng.br 3. Considere as instruções Java abaixo: int cont1 = 3; int cont2 = 2; int cont3 = 1; cont1 += cont3++; cont1 -= --cont2; cont3 = cont2++; Após a

Leia mais

Simulação do Processo de Substituição de Páginas em Gerência de Memória Virtual

Simulação do Processo de Substituição de Páginas em Gerência de Memória Virtual Simulação do Processo de Substituição de Páginas em Gerência de Memória Virtual Fagner do Nascimento Fonseca a, Orientador(a): Flávia Maristela S. Nascimento b a Instituto Federal da Bahia b Instituto

Leia mais

Tabela 4.2 Estatística típica de um sistema em 2007

Tabela 4.2 Estatística típica de um sistema em 2007 4. CONSTRUÇÃO DE ÍNDICE Neste capítulo é mostrado como construir um índice invertido, processo chamado de indexação. O projeto de indexação depende de algumas restrições de hardware, fato que leva a necessidade

Leia mais

Lab 2 MapReduce e o Console Web

Lab 2 MapReduce e o Console Web Lab 2 MapReduce e o Console Web Objetivos do Laboratório Neste laboratório você irá praticar o que você aprendeu nesta lição, mais especificamente você ira praticar as operações de MapReduce e aprender

Leia mais

Extração de Árvores de Decisão com a Ferramenta de Data Mining Weka

Extração de Árvores de Decisão com a Ferramenta de Data Mining Weka Extração de Árvores de Decisão com a Ferramenta de Data Mining Weka 1 Introdução A mineração de dados (data mining) pode ser definida como o processo automático de descoberta de conhecimento em bases de

Leia mais

REPLICAÇÃO E AUTO DISPONIBILIDADE NO SQL SERVER

REPLICAÇÃO E AUTO DISPONIBILIDADE NO SQL SERVER FACULDADE DE ADMINISTRAÇÃO E NEGÓCIOS DE SERGIPE FANESE NÚCLEO DE PÓS-GRADUAÇÃO E EXTENSÃO NPGE CURSO DE PÓS-GRADUAÇÃO LATO SENSU ESPECIALIZAÇÃO EM BANCO DE DADOS REPLICAÇÃO E AUTO DISPONIBILIDADE NO SQL

Leia mais

RELATÓRIO DE ATIVIDADES DISCIPLINA: ARQUITETURAS PARALELAS. Hadoop e QEF: Uma abordagem distribuída para aplicações de Astronomia

RELATÓRIO DE ATIVIDADES DISCIPLINA: ARQUITETURAS PARALELAS. Hadoop e QEF: Uma abordagem distribuída para aplicações de Astronomia UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO (IC) RELATÓRIO DE ATIVIDADES DISCIPLINA: ARQUITETURAS PARALELAS Hadoop e QEF: Uma abordagem distribuída para aplicações de Astronomia Henrique Klôh

Leia mais

2 Trabalhos Relacionados

2 Trabalhos Relacionados 2 Trabalhos Relacionados Nesse capítulo, apresentamos os trabalhos relacionados ao GridFS, entrando em mais detalhes sobre os sistemas citados durante a introdução e realizando algumas considerações sobre

Leia mais

Framework Hadoop em Plataformas de Cloud e Cluster Computing

Framework Hadoop em Plataformas de Cloud e Cluster Computing 4 Framework Hadoop em Plataformas de Cloud e Cluster Computing Raffael B. Schemmer raffael.schemmer@inf.ufrgs.br 1, Julio C. s. Anjos julio.c.s.anjos@gmail.com 2, André L. Tibola altibola@gmail.com 3,

Leia mais

BC 1518 - Sistemas Operacionais Sistema de Arquivos (aula 10 Parte 2) Prof. Marcelo Z. do Nascimento

BC 1518 - Sistemas Operacionais Sistema de Arquivos (aula 10 Parte 2) Prof. Marcelo Z. do Nascimento BC 1518 - Sistemas Operacionais Sistema de Arquivos (aula 10 Parte 2) Prof. Marcelo Z. do Nascimento 1 Gerência de espaço em disco Cópia de segurança do sistema de arquivo Roteiro Confiabilidade Desempenho

Leia mais

Sistema Operacional. Processo e Threads. Prof. Dr. Márcio Andrey Teixeira Sistemas Operacionais

Sistema Operacional. Processo e Threads. Prof. Dr. Márcio Andrey Teixeira Sistemas Operacionais Sistema Operacional Processo e Threads Introdução a Processos Todos os computadores modernos são capazes de fazer várias coisas ao mesmo tempo. Enquanto executa um programa do usuário, um computador pode

Leia mais

FRANCISCO VINHAS NETO EXECUÇÃO PARALELA DE PROGRAMAÇÃO GENÉTICA UTILIZANDO MAPREDUCE

FRANCISCO VINHAS NETO EXECUÇÃO PARALELA DE PROGRAMAÇÃO GENÉTICA UTILIZANDO MAPREDUCE FRANCISCO VINHAS NETO EXECUÇÃO PARALELA DE PROGRAMAÇÃO GENÉTICA UTILIZANDO MAPREDUCE LAVRAS-MG 2013 FRANCISCO VINHAS NETO EXECUÇÃO PARALELA DE PROGRAMAÇÃO GENÉTICA UTILIZANDO MAPREDUCE Monografia de Graduação

Leia mais

RECUPERAÇÃO DE DOCUMENTOS TEXTO USANDO MODELOS PROBABILISTICOS ESTENDIDOS

RECUPERAÇÃO DE DOCUMENTOS TEXTO USANDO MODELOS PROBABILISTICOS ESTENDIDOS ISBN 978-85-61091-05-7 Encontro Internacional de Produção Científica Cesumar 27 a 30 de outubro de 2009 RECUPERAÇÃO DE DOCUMENTOS TEXTO USANDO MODELOS PROBABILISTICOS ESTENDIDOS Marcello Erick Bonfim 1

Leia mais

Processos e Threads (partes I e II)

Processos e Threads (partes I e II) Processos e Threads (partes I e II) 1) O que é um processo? É qualquer aplicação executada no processador. Exe: Bloco de notas, ler um dado de um disco, mostrar um texto na tela. Um processo é um programa

Leia mais

Tecnólogo em Análise e Desenvolvimento de Sistemas

Tecnólogo em Análise e Desenvolvimento de Sistemas Tecnólogo em Análise e Desenvolvimento de Sistemas O conteúdo deste documento tem como objetivos geral introduzir conceitos mínimos sobre sistemas operacionais e máquinas virtuais para posteriormente utilizar

Leia mais

Banco de Dados 1 Prof. MSc Wagner Siqueira Cavalcante

Banco de Dados 1 Prof. MSc Wagner Siqueira Cavalcante Banco de Dados 1 Programação sucinta do curso:. Conceitos fundamentais de Banco de Dados.. Arquitetura dos Sistemas Gerenciadores de Banco de Dados (SGBD ou DBMS).. Características típicas de um SGBD..

Leia mais

Capítulo 11: Implementação de Sistemas de Arquivos. Operating System Concepts 8 th Edition

Capítulo 11: Implementação de Sistemas de Arquivos. Operating System Concepts 8 th Edition Capítulo 11: Implementação de Sistemas de Arquivos Silberschatz, Galvin and Gagne 2009 Sobre a apresentação (About the slides) Os slides e figuras dessa apresentação foram criados por Silberschatz, Galvin

Leia mais

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

11 Conclusão. 11.1 Descobertas

11 Conclusão. 11.1 Descobertas 97 11 Conclusão 11.1 Descobertas Nesse trabalho apresentamos o McCloud Service Framework, um arcabouço para implementação de serviços baseados na Simulação de Monte Carlo na nuvem, disponibilizamos duas

Leia mais

Análises Geração RI (representação intermediária) Código Intermediário

Análises Geração RI (representação intermediária) Código Intermediário Front-end Análises Geração RI (representação intermediária) Código Intermediário Back-End Geração de código de máquina Sistema Operacional? Conjunto de Instruções do processador? Ambiente de Execução O

Leia mais

MapReduce - Conceitos e Aplicações

MapReduce - Conceitos e Aplicações 1. Introdução MapReduce - Conceitos e Aplicações Tiago Pedroso da Cruz de Andrade 1 1 Laboratório de Redes de Computadores Instituto de Computação Universidade Estadual de Campinas tiagoandrade@lrc.ic.unicamp.br

Leia mais

Arquiteturas RISC. (Reduced Instructions Set Computers)

Arquiteturas RISC. (Reduced Instructions Set Computers) Arquiteturas RISC (Reduced Instructions Set Computers) 1 INOVAÇÕES DESDE O SURGIMENTO DO COMPU- TADOR DE PROGRAMA ARMAZENADO (1950)! O conceito de família: desacoplamento da arquitetura de uma máquina

Leia mais

Processando Big Data com Java: Receitas para resolver problemas comuns. Fabiane Bizinella Nardon (@fabianenardon)

Processando Big Data com Java: Receitas para resolver problemas comuns. Fabiane Bizinella Nardon (@fabianenardon) Processando Big Data com Java: Receitas para resolver problemas comuns Fabiane Bizinella Nardon (@fabianenardon) The best minds of my genera3on are thinking about how to make people click ads. That sucks.

Leia mais

um token de requisição garante que o usuário final autorize a aplicação; um token de acesso permite que a aplicação execute as operações da API.

um token de requisição garante que o usuário final autorize a aplicação; um token de acesso permite que a aplicação execute as operações da API. 6 Implementação Este capítulo irá apresentar as tecnologias e os protocolos utilizados no Mobile Social Gateway e explicar de forma mais detalhada o papel de cada componente na arquitetura e o porquê de

Leia mais

AN IN-DEPTH STUDY OF MAP REDUCE IN CLOUD ENVIRONMENT. Sistemas Distribuídos e Tolerância a Falhas Nuno Garcia m6284, Tiago Carvalho m6294

AN IN-DEPTH STUDY OF MAP REDUCE IN CLOUD ENVIRONMENT. Sistemas Distribuídos e Tolerância a Falhas Nuno Garcia m6284, Tiago Carvalho m6294 AN IN-DEPTH STUDY OF MAP REDUCE IN CLOUD ENVIRONMENT Sistemas Distribuídos e Tolerância a Falhas Nuno Garcia m6284, Tiago Carvalho m6294 Sobre o paper Novia Nurain, Hasan Sarwar, Md.Pervez Sajjad United

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelo Cliente-Servidor: Introdução aos tipos de servidores e clientes Prof. MSc. Hugo Souza Iniciando o módulo 03 da primeira unidade, iremos abordar sobre o Modelo Cliente-Servidor

Leia mais

SOA Introdução. SOA Visão Departamental das Organizações

SOA Introdução. SOA Visão Departamental das Organizações 1 Introdução A Organização é a forma pela qual nós coordenamos nossos recursos de todos os tipos para realizar o trabalho que nos propusemos a fazer. A estrutura de nossas organizações manteve-se basicamente

Leia mais

APLICAÇÃO DE MINERAÇÃO DE DADOS PARA O LEVANTAMENTO DE PERFIS: ESTUDO DE CASO EM UMA INSTITUIÇÃO DE ENSINO SUPERIOR PRIVADA

APLICAÇÃO DE MINERAÇÃO DE DADOS PARA O LEVANTAMENTO DE PERFIS: ESTUDO DE CASO EM UMA INSTITUIÇÃO DE ENSINO SUPERIOR PRIVADA APLICAÇÃO DE MINERAÇÃO DE DADOS PARA O LEVANTAMENTO DE PERFIS: ESTUDO DE CASO EM UMA INSTITUIÇÃO DE ENSINO SUPERIOR PRIVADA Lizianne Priscila Marques SOUTO 1 1 Faculdade de Ciências Sociais e Aplicadas

Leia mais

COLETA E MINERAÇÃO DE DADOS DE REDES SOCIAIS

COLETA E MINERAÇÃO DE DADOS DE REDES SOCIAIS Universidade Federal de Ouro Preto - UFOP Instituto de Ciências Exatas e Biológicas - ICEB Departamento de Computação - DECOM COLETA E MINERAÇÃO DE DADOS DE REDES SOCIAIS Aluno: Milton Stiilpen Júnior

Leia mais

Um cluster de servidores de email pode ser usado para servir os emails de uma empresa.

Um cluster de servidores de email pode ser usado para servir os emails de uma empresa. CLUSTERS Pode-se pegar uma certa quantidade de servidores e juntá-los para formar um cluster. O serviço então é distribuído entre esses servidores como se eles fossem uma máquina só. Um cluster de servidores

Leia mais

Documento de Requisitos

Documento de Requisitos UNIVERSIDADE FEDERAL DE PERNAMBUCO CENTRO DE INFORMÁTICA GRADUAÇÃO EM ENGENHARIA DA COMPUTAÇÃO Documento de Requisitos Sistema Gerenciador de Atendimento de Chamados Técnicos Grupo: Luiz Augusto Zelaquett

Leia mais

Análise de Desempenho de um SGBD para Aglomerado de Computadores

Análise de Desempenho de um SGBD para Aglomerado de Computadores Análise de Desempenho de um SGBD para Aglomerado de Computadores Diego Luís Kreutz, Gabriela Jacques da Silva, Hélio Antônio Miranda da Silva, João Carlos Damasceno Lima Curso de Ciência da Computação

Leia mais

Infraestrutura de Hardware. Memória Virtual

Infraestrutura de Hardware. Memória Virtual Infraestrutura de Hardware Memória Virtual Perguntas que Devem ser Respondidas ao Final do Curso Como um programa escrito em uma linguagem de alto nível é entendido e executado pelo HW? Qual é a interface

Leia mais