Orientador : Prof. Dr. Eduardo Cunha de Almeida / Dissertação (mestrado) - Universidade Federal do Paraná, Setor de Ciências Exatas, Programa de Pós-Graduação em Informática. Defesa: Curitiba, 26/02/2015 / Inclui referências / Resumo: MapReduce vem sendo utilizado amplamente na área de processamento de dados e Data Warehouse. Entre as muitas implementações do MapReduce disponíveis nos dias de hoje, o Apache Hadoop é o mais popular e possui código aberto. Hadoop também é usado amplamente como motor de muitos sistemas de processamento de consultas baseados em SQL, como o Apache Hive e PIG. Nesses sistemas, desenvolvedores podem processar consultas baseadas em SQL utilizando a escalabilidade do MapReduce. Neste contexto, desempenho e escalabilidade estão diretamente ligados aos parâmetros de configuração, que determinam o consumo de recursos e a eficiência do processamento. Hoje, as abordagens de ajuste de parâmetros analisam as tarefas durante sua execução e geram configurações de parâmetros baseadas em dados contidos em arquivos de log. Apesar de aumentar o desempenho, essa abordagem não é capaz de associar tarefas MapReduce similares para aplicar a configuração necessária. Assim, se tem dois problemas: (1) tarefas MapReduce recebem otimizações através de regras preestabelecidas sem se preocupar com a melhor alocação de recursos; (2) sequencias de tarefas MapReduce, como planos de consulta do Hive, recebem a mesma otimização mesmo que diferentes tarefas consumam diferentes recursos (problema nomeado de 'otimização uniforme'). A consequência de ambos os problemas _e a perda de desempenho, e o aumento do tempo de resposta e do consumo de recursos. Nesta dissertação apresenta-se uma abordagem que classifica tarefas MapReduce para aplicar otimizações através da similaridade de recursos automaticamente. Essa abordagem _e capaz de gerar grupos de tarefas que possuam consumo de recursos similares. Cada grupo criado _e associado a uma otimização específica que _e aplicada _as novas tarefas MapReduce. As duas principais contribuições são: (1) uma nova tarefa MapReduce recebe uma otimização apropriada sem a intervenção humana; (2) Tarefas de diferentes grupos recebem diferentes otimizações (abordagem chamada de 'otimização granular'). Experimentos mostram que nossa abordagem reduz o tempo de resposta em até 20% no melhor caso quando o benchmark TPC-H _e executado no Hive e Hadoop. Palavras-chave: Apache Hadoop, MapReduce, Otimização de Banco de Dados, Otimização Hive, Aprendizado de Máquina, Análise de Log / Abstract: MapReduce has been extensively used for data processing and analytics over the past years. Among the many MapReduce implementations available to date, the Apache Hadoop is one of the most popular due to its open source nature. Hadoop has been also used as data processing back-end by many SQL-like query processing systems, such as Apache Hive and PIG. In these systems, developers can leverage the declarative nature of query languages with the scalability of MapReduce processing. The scalability of Hadoop directly depends on proper performance tuning in order to squeeze computer resources for efficient data processing. To date, any Hadoop tuning approach relies on monitoring the execution of running programs for computing tuning setups based on execution data in log _les. While this approach can boost performance, it does not allow associating similar Hadoop programs to a similar tuning setup. This leads to two problems: (1) any upcoming program receives a single pre-computed tuning without any concern to what are the best computing resources to be allocated; (2) chains of running MapReduce programs, such as Hive query plans, tend to receive the same tuning setup, even if they eventually consume different computing resources (this problem is called 'uniform tuning'). The direct consequence of both problems is that they lead to poor performance, increase in response time and in resource consumption. This dissertation presents an approach for classifying MapReduce programs with similar resource consumption into groups. For each group, a specific tuning setup is associated that can be then re-applied to any upcoming program. This approach provides two main contributions: (1) an upcoming program receives a proper tuning on-the-y without human intervention; (2) programs from different groups receive different tuning setups (this approach is called '_ne-grained tuning'). Empirical experimentation shows that this approach reduces response time in 20% in the best case scenario when running the TPC-H benchmark on Hive and Hadoop. Keywords: Apache Hadoop, Apache Hive, MapReduce, Database Tuning, HiveQL Tuning, Machine Learning, Log Analysis
Identifer | oai:union.ndltd.org:IBICT/oai:dspace.c3sl.ufpr.br:1884/38134 |
Date | January 2013 |
Creators | Picoli, Ivan Luiz |
Contributors | Almeida, Eduardo Cunha de, Universidade Federal do Paraná. Setor de Ciências Exatas. Programa de Pós-Graduação em Informática |
Source Sets | IBICT Brazilian ETDs |
Language | Portuguese |
Detected Language | Portuguese |
Type | info:eu-repo/semantics/publishedVersion, info:eu-repo/semantics/masterThesis |
Format | 58f. : il., tabs., grafs., algumas color., application/pdf |
Source | reponame:Repositório Institucional da UFPR, instname:Universidade Federal do Paraná, instacron:UFPR |
Rights | info:eu-repo/semantics/openAccess |
Relation | Disponível em formato digital |
Page generated in 0.0114 seconds