Uma Abordagem de Classificação não Supervisionada de Carga de Trabalho MapReduce Utilizando Análise de Log



Documentos relacionados
Otimização de Desempenho em Processamento de Consultas MapReduce

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

4 Implementação e Resultados Experimentais

IW10. Rev.: 02. Especificações Técnicas

DATA WAREHOUSE. Introdução

1

SISTEMAS DISTRIBUÍDOS

WHITE PAPER MD2 METABRIDGE KHRONOS

UNIVERSIDADE FEDERAL DE SANTA CATARINA GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA DATA MINING EM VÍDEOS

Documento de Arquitetura

MINERAÇÃO DE DADOS APLICADA. Pedro Henrique Bragioni Las Casas

Banco do Brasil S.A. Consulta ao Mercado - RFP - Request for Proposa Aquisição de Ferramenta de Gestão de Limites Dúvida de Fornecedor

EAGLE TECNOLOGIA E DESIGN CRIAÇÃO DE SERVIDOR CLONE APCEF/RS

TI em Números Como identificar e mostrar o real valor da TI

Universidade Tecnológica Federal do Paraná UTFPR Programa de Pós-Graduação em Computação Aplicada Disciplina de Mineração de Dados

Arquitetura dos Sistemas de Informação Distribuídos

PLANOS DE CONTINGÊNCIAS

VisTrails. Fernando Seabra Chirigati Aluno de Engenharia de Computação e Informação COPPE/UFRJ fernando_seabra@cos.ufrj.br

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

Módulo 15 Resumo. Módulo I Cultura da Informação

Noções de. Microsoft SQL Server. Microsoft SQL Server

Gerenciamento de Projetos Modulo II Ciclo de Vida e Organização do Projeto

TOTVS BA Guia de Customização Linha Logix

Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores

3 SCS: Sistema de Componentes de Software

Database Cloud Service Database Backup para Oracle Cloud

2 Diagrama de Caso de Uso

Gerenciador de Log Documento Visão. Versão 2.0

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos

Engenharia de Software III

Orientação a Objetos

Faculdades Santa Cruz - Inove. Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira.

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

MONITORAMENTO DO AMBIENTE TECNOLÓGICO FoccoMONITOR

Software de segurança em redes para monitoração de pacotes em uma conexão TCP/IP

Diferenças da versão 6.3 para a 6.4

ERP Enterprise Resource Planning

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

Módulo 4: Gerenciamento de Dados

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart.

ADM041 / EPR806 Sistemas de Informação

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

Planejamento Estratégico de TI. Prof.: Fernando Ascani

ISO/IEC 12207: Gerência de Configuração

Banco de Dados - Senado

Esclarecimento: Não, a operação de matching ocorre no lado cliente da solução, de forma distribuída.

Pós-Graduação em Gerenciamento de Projetos práticas do PMI

SERVICE DESK MANAGER SDM. Manual do Sistema - DPOI

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

Manual Módulo Livro Caixa Livro Caixa Atualizada com a versão 1.3.0

Definição do Trabalho da Disciplina. Este documento é muito importante: LEIAM ATÉ O FINAL!

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource Rev: 02

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

ENGENHARIA DE SOFTWARE I

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS

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

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Universidade Paulista

Especificação de Requisitos

Fundamentos de Sistemas Operacionais

A computação na nuvem é um novo modelo de computação que permite ao usuário final acessar uma grande quantidade de aplicações e serviços em qualquer

2 Gerenciamento de Log 2.1 Definições básicas

Sistemas Operacionais

Disciplina de Banco de Dados Introdução

Palavras-chave: On-line Analytical Processing, Data Warehouse, Web mining.

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc.

Processo de Desenvolvimento de Sites

Pontos de Função. André Chastel Lima Andréia Ferreira Pinto Diego Souza Campos. Engenharia de Software Mestrado Ciência da Computação - UFMS

OCOMON PRIMEIROS PASSOS

Servidor de Gerenciamento de Chaves de Encriptação Aérea OTAR

LEIA ISTO PRIMEIRO. IBM Tivoli Configuration Manager, Versão 4.2.1

3 Estratégia para o enriquecimento de informações

Como implementar os processos de Gerenciamento de Demanda e Capacidade de serviços de TI.

Quarta-feira, 09 de janeiro de 2008

gerenciamento de portais e websites corporativos interface simples e amigável, ágil e funcional não dependendo mais de um profissional especializado

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

Modelos. Comunicação com clientes

Cláudia Araújo Coordenadora Diego Macêdo Programador Marcelo Rodrigues Suporte

Oracle Grid Engine. Thiago Marques Soares. Pós-Graduação em Modelagem Computacional Universidade Federal de Juiz de Fora. 8 de abril de 2015

Extração de Requisitos

Proposta de Avaliação de Empresas para o uso do SAAS

INSTRUÇÃO DE TRABALHO PARA INFORMAÇÕES GERENCIAIS

Descubra aqui os benefícios de possuir um sistema de NF-e integrado com o software de gestão de empresas da Indústria da Construção.

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho

Introdução ao Modelos de Duas Camadas Cliente Servidor

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

DIMENSIONANDO PROJETOS DE WEB-ENABLING. Uma aplicação da Análise de Pontos de Função. Dimensionando projetos de Web- Enabling

Laboratório de Redes. Professora Marcela Santos

Aula 01 Introdução ao Gerenciamento de Redes

SNPTEE SEMINÁRIO NACIONAL DE PRODUÇÃO E TRANSMISSÃO DE ENERGIA ELÉTRICA

Sistema de Declaração Pessoal de Saúde Descritivo

**Docentes do Centro Universitário Filadélfia- Unifil.

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

XIII Encontro de Iniciação Científica IX Mostra de Pós-graduação 06 a 11 de outubro de 2008 BIODIVERSIDADE TECNOLOGIA DESENVOLVIMENTO

Transcrição:

paper:37 Uma Abordagem de Classificação não Supervisionada de Carga de Trabalho MapReduce Utilizando Análise de Log Ivan Luiz Picoli¹, Eduardo Cunha de Almeida¹ Nível: Mestrado; Ano de Ingresso: 2013; Data da defesa de proposta: 19/05/2014; Época esperada de conclusão: Início de 2015 1 Programa de Pós-Graduação em Informática Departamento de Informática Universidade Federal do Paraná (UFPR) PR Brasil ilpicoli@inf.ufpr.br, eduardo@inf.ufpr.br Etapas já concluídas: Estudo sobre o estado da arte, definição do tema, definição do problema, definição da solução, desenvolvimento da ferramenta, implementação do algoritmo de classificação K-Means, classificação de logs hadoop/hive, experimentos preliminares, defesa da proposta, implementação da ferramenta. Etapas futuras: Término da implementação do mecanismo proposto; implementação de outros algoritmos de classificação; implementação de outras entradas de dados; classificação de logs de outros sistemas mapreduce; execução de experimentos em base de treinamento, teste e validação; defesa da dissertação. Abstract. Performance tuning in MapReduce query processing systems is a current hot topic in database research. Solutions such as Starfish and AutoConf provide mechanisms to tune MapReduce queries by changing the values of the configuration parameters for each job on the query plan. The goal of this paper is showing an approach for parameter tuning in MapReduce systems by using unsupervised machine learning. With this approach, we can trace the correct use of resources required by MapReduce jobs in order to improve performance tuning of similar upcoming jobs. Resumo. Ajuste de desempenho no processamento de consultas em MapReduce é um tópico crescente na pesquisa em banco de dados. Soluções como Starfish e AutoConf possuem mecanismos que ajustam as consultas modificando os valores dos parâmetros de configuração das tarefas no plano de consulta, melhorando o desempenho. O objetivo do trabalho é apresentar uma abordagem de ajuste de parâmetros de configuração utilizando aprendizagem de máquina não supervisionado. A abordagem será capaz de encontrar o real uso de recursos exigidos pelas tarefas, possibilitando então, o ajuste de parâmetros em futuras execuções de tarefas semelhantes. Palavras-chave: MapReduce, query processing, parameter tuning, machine learning. 1. Introdução O paradigma de programação MapReduce, desenvolvido em 2004 pela Google Inc., [Dean and Ghemawat 2004], foi projetado para simplificar as tarefas de processamento distribuído que necessitavam de escalabilidade linear. As principais características são relacionadas a tornar transparente a programação distribuída. Dentre 353

estas características, encontramos: o gerenciamento de falhas, redundância dos dados, e transferência de informações; balanceamento de carga; e a escalabilidade. O MapReduce é baseado na estrutura de dados em formato de chave/valor, estrutura que vem sendo cada vez mais utilizada entre os novos sistemas de banco de dados. Entre os sistemas baseados em MapReduce estão o Hadoop, Disco, Spark, Hadapt e Impala. Processos de análise de dados e plataformas em nuvem podem ser reduzidas às aplicações MapReduce, juntamente com o seu ecossistema de aplicações. O desempenho das aplicações MapReduce está ligado diretamente aos parâmetros de configuração, e o correto ajuste desses parâmetros faz com que as aplicações aloquem recursos computacionais distribuídos de maneira mais eficiente. Diversos fatores influenciam no desempenho de aplicações MapReduce, como por exemplo a leitura e escrita em disco que torna-se custoso devido ao sistema de arquivos estar fragmentado na rede. Tarefas com diferentes usos de recursos requerem configurações diferentes em seus parâmetros para que haja diminuição no tempo de resposta da aplicação. Um software autoajustável, o qual ajusta parâmetros de acordo com a carga de trabalho é uma solução para a diminuição do tempo de processamento. 2. Fundamentação Teórica O MapReduce auxilia no processamento do tipo OLAP (On-line Analytical Processing), porém há um grande desafio em manter um bom desempenho neste tipo de sistema. Considere várias tarefas chegando a um cluster MapReduce onde cada uma delas possui características diferentes como o tamanho dos dados de entrada e o consumo de recursos de memória, disco, rede e processador. A mudança dos parâmetros ligados ao uso desses recursos afeta diretamente o desempenho da execução das tarefas, pois gerenciam o fluxo de informações entre os nodos do sistema distribuído. O ajuste de parâmetros pode ser aplicado para otimização, e pode ser feito de duas formas, pelo administrador do cluster MapReduce manualmente, ou automaticamente por uma ferramenta de autoajuste. Dentre as abordagens de autoajuste de parâmetros de desempenho do Hadoop, se encontram o StarFish (otimização de parâmetros e geração de perfis de uso de recursos), [Herodotou 2011], Stubby (análise de fluxo de trabalho), [Lim, Herodotou e Babu 2012], e AutoConf (modificação de parâmetros em tempo de execução), [Lucas Filho 2013]. A geração de perfis consiste em coletar informações sobre a execução de uma tarefa e criar o que chamamos de perfil, contendo todas as informações coletadas. Essa abordagem é importante, pois através de buscas e análises nas informações coletadas é possível ajustar os parâmetros de sistemas MapReduce, [Herodotou 2011]. Starfish é um sistema que foi criado para determinar um perfil às tarefas do Hadoop e oferecer ao administrador do sistema melhores configurações de parâmetro, porém, monitora a tarefa durante sua execução, consumindo recursos que seriam utilizados pela tarefa. Sistemas como o Mochi e o Rumen analisam os logs do Hadoop com a finalidade de mostrar ao administrador informações relevantes sobre o ambiente, como: tempo total de execução, volume de dados processados e tarefas falhas. Porém, esses sistemas apenas mostram o uso de recursos, cabendo ao administrador tomar as decisões. Outra ferramenta abordada é o AutoConf, desenvolvido para otimização de consultas do 354

sistema de Data Warehouse Apache Hive, [Thusoo 2009]. O AutoConf realiza a análise dos operadores (TableScan, GroupBy, etc.) utilizados em cada estágio da consulta e extrai uma assinatura de código para esses estágios (i.e. ocorrência de operadores de consulta no código fonte). Cada assinatura possui uma configuração de parâmetros associada, a qual é aplicada em tempo de execução no Hadoop antes das tarefas serem executadas. Os grupos de tarefas classificados a partir das assinaturas de código recebem o nome de grupos de intenção. Nossa abordagem amplia as funcionalidades dos sistemas citados, analisando a tarefa após a execução e possibilitando o ajuste de parâmetros em tarefas futuras, sem consumir recursos para análise durante a execução. Utilizando automaticamente as informações coletadas dos logs, a abordagem proposta visa encontrar o real uso de recursos computacionais de uma tarefa. Figura 1. AutoConf em meio ao ecossistema do Hive e Hadoop [Autoria Própria] A Figura 1 mostra a arquitetura do AutoConf. Em (1) as Interfaces de Usuário submetem uma consulta HiveQL; Após o Hive gerar e otimizar o plano de consulta, em (2) os estágios da consulta (tarefas) são enviados ao Hadoop; O JobTracker antes de ordenar a execução em (3) envia a consulta ao AutoConf; Após a extração da assinatura de código e a associação com a configuração correta, em (4) o AutoConf envia ao Job- Tracker os valores de parâmetros a serem ajustados; Por fim o JobTracker ajusta os parâmetros e ordena a execução da tarefa que agora possui as configurações ajustadas. 3. Caracterização da Contribuição Classificar tarefas MapReduce antes da execução exige a extração de informações através de regras (abordagem AutoConf), resultando em dados menos precisos do que se a análise fosse realizada após a execução. Ao trabalhar com dados incertos, as tarefas MapReduce podem ser classificadas erroneamente, e os parâmetros de configuração receberão valores inapropriados. Para que as tarefas MapReduce sejam ajustadas de forma mais precisa, propomos encontrar o uso real de recursos computacionais que as tarefas exigem do sistema, auxiliando em futuras execuções. Para tal, propomos uma abordagem de classificação de tarefas MapReduce que possuam informações de uso de recursos persistidos em arquivos de log de execução. Realizaremos a análise dos logs através do uso de algoritmos de classificação não supervisionada. Os algoritmos irão gerar como 355

resultado classes que determinam o uso de recursos que foram utilizados pelas tarefas. Nossa hipótese é que grupos de tarefas que possuam o mesmo uso de recursos podem receber a mesma configuração de parâmetros. Então, através de nossa abordagem qualquer tarefa MapReduce submetida para execução e que se assemelhe às tarefas já classificadas, poderão receber o mesmo ajuste de parâmetros. 4. Uma Abordagem de Classificação Não Supervisionada de Análise de Log Propomos as seguintes contribuições nesta dissertação de mestrado: Objetivo: Aumentar a representatividade da classificação das tarefas utilizando algoritmos de classificação não supervisionados; Desafio: Validar o uso do algoritmo K-Means para classificação através da comparação dos valores de uso de recursos encontrados com o real uso encontrado por monitoramento; Objetivo: Viabilizar um mecanismo de troca de algoritmo de classificação e de entradas de log para comparações futuras e implementação em mais de um framework MapReduce; Desafio: Criar uma arquitetura que possibilite a troca do algoritmo e das entradas de log; Objetivo: Auxiliar com mais precisão no ajuste de parâmetros de sistemas MapReduce, como: Hive e PIG, [Olston 2008]; Desafio: Avaliar a qualidade dos parâmetros. 4.1. Algoritmos de Classificação A classificação é uma das técnicas de mineração de dados e sua função é agrupar os dados com características comuns. A classificação supervisionada pode ser utilizada quando se sabe a natureza dos dados a serem analisados e os mesmos encontram-se préclassificados. Quando não se conhece a natureza dos dados utiliza-se classificação não supervisionada, onde não é preciso informar nenhuma informação prévia dos registros (no nosso caso, os logs). 4.2. Abordagem de Classificação de Logs MapReduce Nosso objetivo é apresentar uma abordagem de classificação não supervisionada de uso de recursos de tarefas MapReduce através da análise de logs. A vantagem que propomos nesse trabalho é o possível uso de diversos algoritmos de classificação na análise dos logs, ou seja, uma abordagem extensível de classificação. Também propomos a possível implementação da abordagem em qualquer framework MapReduce que gere arquivos de log. A Figura 2 mostra os componentes de nossa abordagem, destacados pela linha pontilhada. Na Figura 2, podemos visualizar a geração dos chamados grupos de comportamento, esses grupos são encontrados pelo algoritmo de classificação e os valores de seus centróides equivalem ao uso médio de recursos das tarefas pertencentes ao mesmo grupo. Cada grupo de comportamento recebe uma configuração de parâmetros que poderá ser aplicada em tarefas classificadas. 356

Figura 2. Nossa abordagem em meio ao ecossistema MapReduce [Autoria Própria] Neste trabalho nos baseamos no algoritmo de classificação K-means [Aggarwal 2010], e pode ser descrito em cinco passos, descritos pelo Algoritmo 1 no estudo de caso ao analisar logs. Algoritmo 1. Algoritmo K-Means em um estudo ao analisar logs [Autoria Própria] No Algoritmo 1, os vetores C e LC armazenam o resultado final da classificação. C contém as classes que representam o uso dos recursos computacionais, onde os recursos são representados pelas dimensões dim_x. LC contém a referência para os logs e a qual classe eles pertencem após a classificação. 4.3. Protótipo Na implementação do protótipo, integramos nossa abordagem com a arquitetura do AutoConf e nomeamos o novo software de Chameleon. Essa proposta possui apenas a implementação do algoritmo K-Means. Essa estratégia irá complementar o AutoConf na otimização de consultas do Hive não somente pela assinatura de código, mas também através da comparação da tarefa com os grupos de comportamento gerados pela nossa abordagem. A Figura 3 mostra a arquitetura do Chameleon, e podemos visualizar os módulos de análise de log e um banco de dados (Workload Database) que armazena os resultados da classificação inseridos na arquitetura da Figura 1. 357

Figura 3. Chameleon e o ecossistema do Hadoop [Autoria Própria] Tendo como base o funcionamento dos módulos e o objetivo do Chameleon na otimização das consultas do Hive, vê-se necessário uma forma de integração com o AutoConf. A conexão será feita após a identificação da assinatura de código e antes da aplicação da nova configuração. É realizada uma chamada remota ao módulo responsável por determinar a configuração, que será aplicada a partir dos grupos de comportamento e não mais a partir dos grupos de intenção do AutoConf. O método pode ser visualizado no Algoritmo 2, que mostra o processo de ajuste utilizando os grupos de comportamento. Algoritmo 2. Aplicação da configuração pelos grupos de comportamento [Autoria Própria] No Algoritmo 2 ao chamar o método remoto, o AutoConf envia ao método um histórico de tarefas (I={j 0,...,j n }) que utilizaram a mesma configuração da tarefa a ser ajustada (j n +1), ou seja, que possuam a mesma assinatura de código (grupo de intenção). Como essas tarefas de histórico já foram completadas, elas possuem logs que estarão armazenados no Workload Database, e então o Clustering (módulo responsável pela classificação) gera uma lista chave/valor (C) onde a chave é o identificador do grupo de comportamento e o valor é a quantidade de logs que foram enviados pelo AutoConf e que estão relacionados ao grupo. Esses dados são adquiridos ao analisar as duas tabelas citadas (intenção e comportamento) e podemos visualizar a geração da lista no laço entre as linhas 4 e 7 do Algoritmo 2. O retorno do método remoto é o identificador do grupo de comportamento o qual a tarefa a ser ajustada se enquadra, ou seja, o grupo que mais obteve ocorrências de tarefas vindas do grupo de intenção (linha 8 e 9 do Algoritmo 2). Em seguida, o AutoConf aplica a configuração relacionada ao grupo de comportamento encontrado. 358

5. Resultados Preliminares e estado atual do Trabalho O trabalho está na fase inicial dos experimentos. Neste seção apresentamos resultados preliminares da nossa abordagem de classificação não supervisionada. Em nossos experimentos foram extraídos 1505 logs de tarefas executadas em um cluster MapReduce com 10 máquinas idênticas. Os logs foram gerados através da execução do benchmark TPC-H adaptado para HiveQL. O TPC-H foi escolhido por possuir um grupo de consultas capaz de exercitar um data warehouse de formas distintas. Cada tarefa executada possui um arquivo de log contendo mais de 60 tipos de informações, e em nossos testes utilizamos cinco informações que estão descritas na Tabela 1, resultando em cinco entradas para cada um dos 1505 arquivos de log na execução do algoritmo. Foram realizados experimentos variando o número de classes do algoritmo e também as informações utilizadas. A Tabela 1 mostra os resultados de um dos testes. Tabela 1. Algoritmo K-Means agrupando logs Hadoop com 8 grupos [Autoria Própria] Podemos descrever as próximas tarefas de testes e experimentos em: execução de testes com o Hadoop+AutoConf e comparação com Hadoop+Abordagem utilizando K-Means; validação dos resultados comparando o uso de recursos encontrados com dados de monitoramento de uso de hardware no momento da execução das tarefas; repetir o experimento utilizando outra carga de dados além do TPC-H para validação. 6. Referências Aggarwal, Sonali e Phadke, Shashank e Bhandarkar, Milind A. Characterization of hadoop jobs using unsupervised learning. CloudCom, 2010, pages 748 753. Dean, J e Ghemawat, S. MapReduce: Simplified data processing on large clusters. 6 Th OSDI, 2004, pages 137 150. Herodotou, H. e Lim, H. e Luo, Gang e Borisov, N. e Dong, Liang e Cetin, F. B. e Babu, S. Starfish: A self-tuning system for big data analytics. CIDR, 2011. Lim, H e Herodotou, H e Babu, S. A transformation-based optimizer for mapreduce workflows. VLDB, 2012. Lucas Filho, Edson Ramiro. HiveQL self-tuning Curitiba, 2013. 44f. : il. color. ; 30 cm. Dissertation (master) UFPR, Pos-graduate Program in Informatics, 2013. Olston, C. e Reed, B. e Srivastava, U. e Kumar, R. e Tomkins, A. Pig latin: A not-soforeign language for data processing. SIGMOD, 2008. Thusoo, A. e Sarma, J. S. e Jain, N. e Shao, Z. e Chakka, P. e Anthony, S. e Liu, Hao e Wycko, P. e Murthy, R. Hive - a warehousing solution over a mapreduce framework. VLDB, 2009. 359