Network optimizations in software defined networks for data placement in big data systems
Resumo
Resumo: Sistemas de Big Data estao disponiveis por mais de uma decada, com Hadoop/YARN se tornando a plataforma padrao "de facto"para esses sistemas, sendo usados em areas como analise de dados, aprendizado de maquinas e IoT. Esses sistemas sao baseados principalmente em dados distribuidos em clusters de maquinas, que dependem fortemente da infraestrutura de rede para mover dados entre centenas ou milhares de nos. Considerando a movimentacao de dados em um cluster de maquinas, existem cenarios e condicoes em que o desempenho geral pode ser reduzido, devido a contencao de acesso a dados e gargalos de rede. A disposicao de blocos no sistema de arquivos distribuido (Hadoop Distributed File Sytem, HDFS) que suporta a maioria dos sistemas de BigData, tambem tem um impacto significativo no desempenho dos sistemas e da rede. A questao de pesquisa principal a ser respondida por esta tese e: podemos melhorar o desempenho de um sistema de Big Data modificando como os dados serão movidos e posicionados no cluster de acordo com a utilização desses mesmos dados pelo sistema? Nossa hipotese e que isso pode ser realizado por um esforco combinado, usando uma estrategia que permite que a rede entregue de forma mais eficiente os blocos de dados aos nos que precisam deles (com uma nova topologia de rede baseada em SDN - Software Defined Networks) e tambem fazendo com que os dados estejam disponiveis em nos que minimizem os custos de acesso (com um algoritmo de disposicao de dados). Para fazer isso, propomos uma implementacao de uma nova estrategia de distribuicao de dados sobre uma nova topologia de rede chamada Multi-Layer-Mesh e um algoritmo de comutacao de caminhos que utiliza Software Defined Networks. O Multi-Layer-Mesh permite selecionar caminhos de rede, orientando a disposicao de dados distribuidos de arquivos mais utilizados e indexando maquinas, que, quando executados em conjunto, podem reduzir a movimentacao de dados que pode ter um impacto importante no desempenho de sistemas de Big Data. O algoritmo de disposicao de dados proposto difere do algoritmo HDFS classico por direcionar blocos dos arquivos mais usados (dados quentes) para os nos com mais slots de processamento disponiveis, aumentando assim a chance de utilizar dados locais (localidade dos dados) e diminuindo o uso da rede. A topologia de rede Multi-Layer-Mesh e o algoritmo de distribuicao de dados sao as principais contribuicoes desta tese, assim como um simulador de sistemas de Big Data, o BigDataNetSim, desenvolvido para simular a movimentacao de dados em um cluster HDFS. Uma avaliacao extensiva baseada em simulacao de nossos algoritmos mostra uma melhora media no desempenho de 42% e uma diminuicao media na utilizacao de recursos de 36,03% em comparacao com uma topologia Spine-Leaf tradicional e o algoritmo de distribuicao de dados HDFS classico, em cenarios selecionados de teste. Palavras-chave: Big Data. SDN. topologias de rede. disposicao de dados. Abstract: Big Data systems have been around for more than a decade now, with Hadoop/YARN becoming the "de facto" standard platform for these systems, being used in areas like data analysis, machine learning and IoT. These systems are mainly based on data distributed in a cluster of machines, that rely heavily on the network infrastructure to move data around hundreds or thousands of distributed nodes. Considering the movement of data in the distributed nodes, there are scenarios and conditions when the overall performance can be reduced, due to data access contention and network bottlenecks. The placement of blocks in the distributed file system (Hadoop Distributed File System, HDFS) that supports most platforms, also has an important impact on the performance of the system and the network. The main research question to be answered by this thesis is: can we improve the performance of Big Data systems by modifying how the data will be moved and placed in the cluster according to the usage of data by the system? Our hypothesis is that this can be accomplished by a combined effort, using a strategy that allows the network to more efficiently deliver the data blocks to the nodes that need them (with a novel network topology based on SDN - Software Defined Networks) and also making the data available in nodes that minimize the access costs (with a data placement algorithm). In order to do that, we propose an implementation of a novel data distribution strategy over a novel network topology called Multi-Layer-Mesh and a path switching algorithm leveraging Software-Defined Networking. The Multi-Layer-Mesh allows selecting network paths, guiding distributed data placement of hot files and indexing machines that, when running altogether, can reduce data movement which could have an important impact on performance of big data systems. The proposed data placement algorithm differs from the classical HDFS algorithm by directing blocks of the most used files (hot data) to the nodes having more available processing slots, therefore increasing the data locality and decreasing network usage. The Multi-Layer-Mesh network topology and the data distribution algorithm are the main contributions of this thesis, as well as the Big Data system simulator, called BigDataNetSim, developed to simulate the data movement in a HDFS cluster. Athorough simulation-based evaluation of our algorithms shows an average improvement in performance of 42% and an average decrease in resource utilization of 36.03% compared to a traditional Spine-Leaf topology and the classical HDFS data distribution algorithm, in the selected test scenarios. Keywords: Big Data. SDN. network topologies. data placement.
Collections
- Teses [131]