Evaluación de la herramienta de código libre Apache Hadoop Universidad Carlos III de Madrid Escuela Politécnica Superior Proyecto Fin de Carrera INGENIERÍA TÉCNICA DE TELECOMUNICACIÓN: TELEMÁTICA Autora: MªCarmen Palacios Díaz-Zorita Tutor: Norberto Fernández García Leganés, Noviembre de 2011 Evaluación de la herramienta de código libre Apache Hadoop Resumen La capacidad de los discos duros ha aumentado en gran medida a lo largo de los años. Las aplicaciones modernas manejan grandes volúmenes de datos y en ocasiones, los usuarios se encuentran con ficheros de varios gigabytes e incluso mayores. Los sistemas de ficheros tradicionales alcanzan pronto sus límites con esta clase de datos y rendimiento. Además, al análisis de estos grandes volúmenes de información resulta complejo, sino irrealizable, en una única computadora o servidor. Como una de las posibles soluciones a este problema se encuentra MapReduce, un modelo de programación diseñado por Google. En concreto en este trabajo se utilizan una implementación código libre de MapReduce llamada Hadoop. Este proyecto trata de hacer un estudio de esta herramienta, Hadoop, en la que se analiza el rendimiento de una aplicación MapReduce escrita en Java. El estudio se realizará sobre varios clusters de máquinas, aprovechando la capacidad de procesamiento de estos y la fiabilidad y tolerancia a fallos que facilita el modelo MapReduce. iii Evaluación de la herramienta de código libre Apache Hadoop Abstract The capacity of hard drives has increased greatly over the years. Modern applications handle large volumes of data, at times, users are faced with multi-gigabyte files and even higher. The traditional file systems soon reach their limits with this kind of data and performance. In addition, the analysis of these large volumes of information is complex and sometimes impossible, on a single computer or server. MapReduce could be considered as a possible solutions to this problema. It is a programming model designed by Google. Specifically, an open source implementation of MapReduce, called Hadoop, is used in this paper. The aim of this project is to study this tool, Hadoop, analising the performance of a Java based MapReduce application. This study will be carried out by using several computer clusters taking advantage of their processing capability, reliability and failover, which make the MapReduce model easier. v Evaluación de la herramienta de código libre Apache Hadoop ÍNDICE DE CONTENIDOS Resumen ..................................................................................................................... iii Abstract........................................................................................................................ v ÍNDICE DE CONTENIDOS ................................................................................... vii ÍNDICE DE FIGURAS .............................................................................................. xi ÍNDICE DE TABLAS .............................................................................................. xvi 1. INTRODUCCIÓN .............................................................................................. 1 1.1. Motivación del Proyecto ............................................................................. 1 1.2. Objetivos ....................................................................................................... 4 1.3. Estructura de la memoria ........................................................................... 4 2. ESTADO DEL ARTE.......................................................................................... 7 2.1. MapReduce................................................................................................... 7 2.1.1. Introducción .......................................................................................... 7 2.1.2. Funcionamiento .................................................................................. 10 2.1.3. Flujo de Datos ..................................................................................... 12 2.1.4. Implementación .................................................................................. 14 2.1.5. Fiabilidad y tolerancia a fallos ......................................................... 17 2.1.6. Implementaciones .............................................................................. 19 2.1.7. Ejemplos de uso .................................................................................. 20 2.2. Google File System .................................................................................... 21 2.2.1. Introducción ........................................................................................ 21 vii Evaluación de la herramienta de código libre Apache Hadoop 2.2.2. Diseño .................................................................................................. 22 2.2.3. Arquitectura ........................................................................................ 22 2.2.4. Máster (Maestro) ................................................................................ 25 2.2.5. Tamaño de los trozos ......................................................................... 25 2.2.6. Metadatos ............................................................................................ 25 2.3. Hadoop ....................................................................................................... 26 2.3.1. Introducción ........................................................................................ 26 2.3.2. Arquitectura ........................................................................................ 28 2.3.3. Modos de ejecución ........................................................................... 29 2.3.4. Ejemplos de uso .................................................................................. 29 2.4. HDFS: Hadoop Distributed File System ................................................ 30 2.4.1. Arquitectura ........................................................................................ 31 2.4.2. Características ..................................................................................... 32 3. DISEÑO E IMPLEMENTACIÓN .................................................................. 35 3.1. Instalación y Configuración de Hadoop ................................................ 35 3.1.1. Java ....................................................................................................... 35 3.1.2. Configuración ssh .............................................................................. 36 3.1.3. Instalación de Hadoop ...................................................................... 37 3.1.4. Configuración de Hadoop ................................................................ 38 3.1.5. Ejecución de Hadoop ......................................................................... 42 3.2. Entorno de pruebas ................................................................................... 43 3.2.1. Máquinas ............................................................................................. 43 3.2.2. Datos .................................................................................................... 44 3.3. Pruebas ........................................................................................................ 46 3.3.1. Prueba 1 ............................................................................................... 50 3.3.2. Prueba 2 ............................................................................................... 51 viii Evaluación de la herramienta de código libre Apache Hadoop 3.3.3. Prueba 3 ............................................................................................... 52 3.3.4. Prueba 4 ............................................................................................... 53 3.3.5. Prueba 5 ............................................................................................... 54 4. VALIDACIÓN .................................................................................................. 55 4.1. Scripts .......................................................................................................... 55 4.2. Escenarios ................................................................................................... 59 4.2.1. Un Nodo .............................................................................................. 61 4.2.2. Dos Nodos ........................................................................................... 69 4.2.3. Tres Nodos .......................................................................................... 77 4.2.4. Cuatro Nodos ..................................................................................... 85 4.3. Interpretación de los Resultados ............................................................. 93 4.4. Resultados .................................................................................................. 95 4.4.1. Prueba 1 ............................................................................................... 95 4.4.2. Prueba 2 ............................................................................................... 97 4.4.3. Prueba 3 ............................................................................................... 99 4.4.4. Prueba 4 ............................................................................................. 101 4.4.5. Prueba 5 ............................................................................................. 103 4.5. Conclusiones de los resultados ............................................................. 105 5. CONCLUSIONES Y LÍNEAS FUTURAS ................................................... 107 5.1. Conclusiones ............................................................................................ 107 5.2. Líneas futuras ........................................................................................... 108 ANEXO A: PRESUPUESTO ................................................................................. 111 A.1. Costes de Personal ............................................................................... 111 A.2. Costes de Materiales ............................................................................ 112 A.3. Presupuesto Total ................................................................................ 113 ix Evaluación de la herramienta de código libre Apache Hadoop ANEXO B: INSTALACIÓN Y CONFIGURACIÓN DE HADOOP EN UN SOLO NODO................................................................................................... 115 B.1. Instalación ............................................................................................. 115 B.3. Configuración ....................................................................................... 116 B.3.1. Hadoop .......................................................................................... 116 B.3.2. Configuración de SSH ................................................................. 117 B.4. Puesta en marcha ................................................................................. 118 B.5. Ejecución de un trabajo MapReduce ................................................. 118 B.6. Uso ......................................................................................................... 120 ANEXO C: DESARROLLO CON ECLIPSE ....................................................... 123 C.1. Plugin de Hadoop para ECLIPSE ...................................................... 123 C.2. Configuración del entorno de desarrollo ......................................... 124 C.3. Crear una nueva aplicación ................................................................ 125 Bibliografía .............................................................................................................. 133 x
Description: